読者です 読者をやめる 読者になる 読者になる

goroutineのテストを同期的に行う

とある関数の評価値 ― 例えばファイルに文字列を書き込む ― をテストしたい場合、 その評価がgoroutine内だと、テスト側から実行しても、タイミングによって取得できないことがあります。 そこで、テスト側から評価するときにはchanelを渡す用にして、そのch…

Golangでエレガントだと思うこと

@kana さんとハッカソンしていて、Golangのどこが好きか? と聞かれた時にうまく説明できなかったのでまとめておきます。 よく、Golangはgoroutineとchannelが取り上げられることが多いと思いますが、 それよりも、僕がGolangをGolangたらしめていると考えて…

JSONを扱うときにkeyとfieldを対応づける

Goの、encoding/json の Unmarshal で、例えばJSONデータのkeyが小文字の場合、自動でcapitalizeしてくれる。 pakcage main import( "encoding/json" ) type A struct { A_Id int Field string } func main() { jsonBlob := []byte(` {"a_id": 100, "field":…

effective-goではない何か

去年からGolangを書き散らかしてみて、だいぶセンス感じとれるようになってきたので、Golangを書くときのイディオムのようなものをまとめてみる。 Golangをコーディングするディレクトリ 簡単な、10行20行くらいで済むコードであればどこで書いてもいいのだ…