My External Storage

Sep 1, 2019 - 4 minute read - Comments - go

[Go] gofmtコマンドの-rオプションの使い方

Goでは標準ツールとして公式からgofmtコマンドというフォーマッタが提供されている。
このコマンドはコードのインデントなどをフォーマットしてくれるほかに、-rオプションでASTベースの置換も行える。
実装ベースから使い方を追ってみたのでメモする。

Jul 7, 2019 - 5 minute read - Comments - go

[Go]Sliceを含んだ構造体が等値演算子(==)でpanicを引き起こすのを回避する #golang

Goにはcomparableが定義されておらず、比較できない型としてSlice, Mapなどがある。
interfaceがそのような型(フィールドにそのような型を持った構造体)を値に持っていたときに==を利用するとpanicが発生する可能性がある。
行儀の悪い構造体を定義しないテクニックがあったのでメモしておく。