go
github.com % go test -v === RUN TestCaller 2015/09/14 17:57:33 375167 /Users/otiai10/proj/go/src/covsample/sample.go 9 true --- PASS: TestCaller (0.00s) PASS ok covsample 0.004s % go test -v -cover === RUN TestCaller 2015/09/14 17:57:39 37…
github.com 経過を待つ ついでに http://hack.aipo.com/archives/1495/hack.aipo.com DRY
The Go Playground see this code in play.golang.org なんかいい響きだったので、つい
しれっと可能だったのでメモ The Go Playground package main import ( "encoding/json" "fmt" ) func main() { // 無名structの初期化 dest := &struct { Name string `json:"name"` Age int `json:"age"` Langs []string `json:"langs"` }{} json.Unmarsha…
なんかこうするっぽい type Foo struct { Bar string `gorm:"primary_key"` Baz int `gorm:"primary_key"` } で、gorm.DBのAutoMigrateかCreateTableを叩けばいいわけで、LogMode(true)で発行されてるSQLを確認すると CREATE TABLE "foos" ( "bar" varchar(2…
や、ハマったってほどでもないんだけど、まあそうだよね、って感じたメモ。 以下のように書いて、barとquxをlistから排除しようとした see this code in play.golang.org barは排除できてるけど、quxは排除できてないことがわかる。 原因 Remove(e)を呼んだ…
前回 go templateで、スライスの特定インデックスにアクセスしたい - DRYな備忘録otiai10.hatenablog.com {{index .myslice 1}} で出力できることを知ったけど、出力するだけならまだしも、それがstructでさらにプロパティがある場合どうすんねん的なことを…
あかんやつ Can I access index directly? the second is: {{.Bars[1]}} panic: template: :2: unexpected bad character U+005B '[' in command ヒィィ うごくやつ Can I access index directly? the second is: {{index .Bars 1}} The Go Playground リファレ…
だめ1 if err := foo(); err != nil { return err } // どこがやねん、ってなる だめ2 if err := foo(); err != nil { return fmt.Errorf("failed to do foo") } // なんでやねん、ってなる すき if err := foo(); err != nil { return fmt.Errorf("failed…
GOROOT, GOPATH is empty or not detected このエラーが消せなくて困っていたのだが、 IntelliJ14でGolang PluginがGOROOT, GOPATHを認識しないja.stackoverflow.com 2015/06/02開催のGunosy.goで、LTという名の他力本願で、その場で教えてもらった(ライブ…
「なんかのスライス」を「interface{}のスライス」にしたい。 スライスでなければ、「なんか」を「interface{}」にするのは単に抽象度の増すキャストなので超簡単なわけだけど。 s := "hoge" i := interface{}(s) これがスライスとなるとだめ ss := []string…
問題 cgoを使ってGoのコードからC/C++のライブラリを使いたいので、手始めにHello, World書いて実行したけど、以下のエラーが出る。 % go run main.go # command-line-arguments could not determine kind of name for C.foo 可能性1) そこ、空行いれちゃだ…
そんなものは無い。設計を見直そう。 There is no ternary form in Go. Frequently Asked Questions (FAQ) - The Go Programming Language それでも、クライアントがAPIレスポンスに、ゼロ値じゃなくてnullが欲しい、と要求してくるケースがある。この場合は…
Goのプロジェクトの依存パッケージをどうするかという問題があります。 package myapp import ( "gopkg.in/hoge/fuga" "myserver.com/foo/bar" "buz" ) func main() { // ... } などのアプリケーションをサーバにデプロイするとき、fugaパッケージやbar、buz…
runtime.Caller runtime - The Go Programming Language func Caller(skip int) (pc uintptr, file string, line int, ok bool) Callerはgoroutineのスタックから呼び出された関数のファイルと行数に関する情報をレポートします. 引数skipは、スタックフレー…
メモ source := []int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12} fmt.Println(source) u := 2 for i := u; len(source) > 0; { if len(source) < u { i = len(source) } target := source[:i] source = source[i:] fmt.Println(target) } もっといい方法あ…
1番、よくやるやつ(やばめ) for _, user := range users { go func() { user.SomeHeavy() }() } 非同期で生成されるクロージャの中で、参照されるuserはループ内スコープのそれなので、たとえばループのn番目とn+1番目の処理において、同じn+1番目のユーザ…
こうです arr := [4]byte{10, 20, 30, 40} slc := arr[:] fmt.Printf("%T\n%T\n", arr, slc) Go Playground 参考 Go Slices: usage and internals - The Go Blog ここにちゃんと書いてあった This is also the syntax to create a slice given an array: x :…
Go言語からSQLを使うときは Go言語からSQL(or SQL-like)データベースを使うときは、Go言語標準のsql - The Go Programming Languageが定めるinterfaceを実装したdriverを実際は使っています. たとえばdriverはここに列挙されてたりします. SQLDrivers - go-w…
Go言語は、必要なものを提供し、必要じゃないものは削ぎ落とし、明示的でとても学びやすい言語だと思ってます。好きです。「なるほど、ここからは自分でやれ、ということか、面白い」「おーこんなこともしてくれちゃうのかー」という発見こそあれ、「なんで…
Goでmongodb使うときは mgo - Rich MongoDB driver for Go まあこれ使うと思う しりたいこと embedしたstruct込みでポインタ渡すとキャストしてくれるのかという件 というのも package main import ( "fmt" mgo "gopkg.in/mgo.v2" "gopkg.in/mgo.v2/bson" ) …
コネクションプーリングとは コネクションプーリングとは 【 connection pooling 】 〔 コネクションプール 〕 - 意味/解説/説明/定義 : IT用語辞典 「コネクションを張る/切る」というコストを削減することが主な目的。1つのDBに対するコネクション総数を…
Go Playgroundとは Go Playground http://play.golang.org/ どんな言語でも用意しているような、ブラウザ上でGoを書いて実行できる実行環境。 キーボードショートカットがあるっぽい (公式ドキュメント探し中) キーバインド アクション Shift + ⏎ ビルド&…
問題 net/httpパッケージでRequestインスタンスを得るためにNewRequestを使う 第三引数を指定するもBodyができない なーぜー 問題のコード package main import ( "bytes" "encoding/json" "fmt" "net/http" ) func main() { data := map[string]interface{}…
メモ template.Template型のstructを扱う Newなどして得る Parseメソッドでテンプレート部分を解釈させる Executeで変数を当て込める サンプル package main import "html/template" import "fmt" import "bytes" func main() { // *template.Templateのオブ…
fmt.Println( sprime.Factorize(329).List(), sprime.Factorize(329).Dict(), ) // [7 47] // map[7:1 47:1] otiai10/sprime · GitHub 雑感 なんか車輪の再発明感がとてつもないんですけど 既存の方法とか誰かおしえてください ホリデーコーディングとしては…
golangのnet/httpパッケージにあるRequestオブジェクトにはFormとPostFormというフィールドがある。この違いはなんだ? ドキュメント見る http - The Go Programming Language // Form contains the parsed form data, including both the URL // field's qu…
問題 res, err = db.Exec( "INSERT INTO table001 (name,age) VALUES (?, ?);", "otiai10", 17, ) で、以下のように叱られる pq: syntax error at or near "," なお当方、 import "database/sql" import _ "github.com/lib/pq" の構成です 解決 ?じゃなくて$…
さっきマックで女子高生が「えーまだ生net/http使ったことないのーw マジウケるんですけどー」って話してた。やばい。 最小限 とりあえず、HandleFuncやHandleを用いた最小限のサーバ package main import ( "fmt" "net/http" // "io/ioutil" ) // ResponseW…
io.Readerを使った読み込み ファイルの読み込みやTCPコネクションのメッセージ読み込みに、io.Readerインターフェースを実装したstructのReadメソッドを使う 以下その例 package main import "fmt" import "os" func main() { file, _ := os.Open("sample.tx…