Category Archives: Go

kintone-go

コード

import (
    kintone "github.com/kintone/go-kintone"
)

// app生成
app := &kintone.App{
    Domain:   "string型",
    User:     "string型",
    Password: "string型",
    AppId:    "int型",
}

// レコード取得
records, err := app.GetRecords(nil, "limit 10")
if err != nil {
    log.Fatal(err)
}

// 全レコード取得
records, err := app.GetAllRecords(nil)
if err != nil {
    log.Fatal(err)
}
fmt.Println(len(records))

// レコードの作成
records := make([]*kintone.Record, 0)
record := make(map[string]interface{})
record["name"] = kintone.SingleLineTextField("yohei")
records = append(records, kintone.NewRecord(record))
app.AddRecords(records)

// フォーム設定取得
fields, err := app.Fields()
if err != nil {
    log.Fatal(err)
}
for k, v := range fields {
    fmt.Println(k)
    fmt.Printf("name: %s,type: %s", k, v.Type)
}

参考

github
qiita

json parse

// User ...
type User struct {
    Name string `json:"name"`
    Age  int    `json:"age"`
}

func main() {
    jsonBlob := []byte(`{"name":"yohei","age":"10"}`)
    user := User{}
    json.Unmarshal(jsonBlob, &user)
    fmt.Println(user.Name)
}

gin bodyの内容を取得

func (f Form) Create(c *gin.Context) {
    ctx := appengine.NewContext(c.Request)
    c.Request.ParseForm()
    for k, v := range c.Request.Form {
        log.Debugf(ctx, k)
        log.Debugf(ctx, v[0])
    }
    c.String(200, "posted")
}

goroutin chへの送受信

func main() {
    ch := make(chan int) // チャンネルを作成
    go func() {
        ch <- 1 // channelに"1"を送信
    }()
    v := <-ch // chから"1を受信"
    fmt.Println(v) // "1"がプリントされる
}

funcを構造体に

コード

// Myfunc ...
type Myfunc func(string) string

func main() {
    myfunc := func(str string) string { return str + "!" }
    tests := []Myfunc{myfunc, myfunc} // 関数の配列
    for _, v := range tests {
        fmt.Println(v("hello"))
    }
}

結果

hello!
hello!