Go

http.Response を返すような関数は作らないのが賢明

go Go

Go 1.7 から本体に入った context パッケージは便利、というより今や必須の道具です。以下のように書くことで、一定時間で処理をキャンセルできたりします。 func slowOperationWithTimeout(ctx context.Context) (Result, error) { ctx, cancel := context.…

「みんなの Go 言語」は忙しいプログラマこそ読むべき本

@songmu 氏からご恵贈いただいた「みんなの Go 言語」(みんGo)、早速拝読しました。 書評としてはタイトル通り、なのですがそれではあんまりなのでもう少し。 本書でも述べられている通り、Go 言語は早ければ一日で大体学べてしまう学習効率の良さが魅力で…

Go のポインタメソッドとバリューメソッドのどちらが良いのか

Go

TL; DR ほとんどの場合ポインタメソッドにしておけば良い。 Go のメソッドは、レシーバーとして値(value)を受け取るかポインタを受け取るか選択できます。

手軽に Go スクリプトを実行する

Go

Linux 限定ですが、binfmt_misc を使えば shell script や Python と同じように実行ビットを立てるだけで実行できるようになります。 以下のスクリプトを /usr/local/bin/gorun とでもして保存 #!/bin/sh exec go run "$@" Debian/Ubuntu なら update-binfmt…