golang

gowrtr で名前付き戻り値を扱う

先日リリースされた gowrtr が非常に便利でめちゃくちゃ助かってます。buf に自分で fmt.Fprintf とかしてたのが懐かしいです。 お気に入りポイントは、immutable なつくりになっているところと、goimports とかをかけた状態で出力できるところです。マジで…

gocode での補完をやめるが vim-go は使う

どうも vim 界隈でも lsp の機運が高まっており gocode ではなく golsp などを使うことを推奨されているっぽい。 一方で今はもうすでに vim-go に手が馴染んでいるわけだが、と思って腰が重かったのだけど、補完部分だけを golsp にすることができた(気がす…

signal.Notify したチャンネルを close すると死ぬ(可能性がある)

TL; DR signal.Stop しよう https://golang.org/pkg/os/signal/#Stop 検証 ダメな例 package main import ( "fmt" "os" "os/signal" "syscall" "time" ) func main() { c := make(chan os.Signal, 1) signal.Notify(c, syscall.SIGINT, syscall.SIGTERM) clo…

オフラインリアルタイムどう書く E29 の回答 (Golang)

yhpg.doorkeeper.jp 問題 : http://nabetani.sakura.ne.jp/hena/orde29unes/ 実装リンク集 : https://qiita.com/Nabetani/items/f2db9b916c0a301b744f 勝ちました。珍しく Golang で。 なんかかっこいいやり方あんのかなーと思ったけど、1文字ずつ素直に読ん…

読了: 『Go言語による並行処理』

読みました。ちょっと駆け足気味だけど。 全体的に良書でこういったことが知りたかったんだということが書いてあってよかったです。一方で悪い点もほんのちょっとありました。先に悪いと思っている点について書いておこうと思います。 悪かったと思った点 ま…

go のパッケージで特定の型のメンバをもった構造体が定義されていないことを確認したい

モチベ swagger 定義から go client を生成するときに、 type: "number" はデフォルトでは float32 型として定義される。これは type: "number", format: "double" とすることにより float64 型に変更可能である。 該当プロジェクトでは精度的な観点から flo…