Go の hashicorp/go-multierror 使ったら訳わからん挙動に遭遇してしまった
基本的な Go の挙動が理解できてないのかもしれないですが、なぜ以下のコードで (2) err != nil: true
となるのかが分かりません。
誰か教えて… (g()
がメソッドなのはなるべく元のコードと似せたせいです)
追記
KoRoN さんとりんだんさんに教えてもらいました。
型なしの nil はほぼ存在しないんです。で、型が異なる同士のnilは比較しちゃいけないではなくて、比較しても常に異なってしまうから実質役に立ちません。
— MURAOKA Taro (@kaoriya) 2018年4月1日
— ドッグ (@Linda_pp) 2018年4月1日
というわけで教えてもらった記事の最初に「Goのinterfaceの実体は参照と型情報のペア」と書いてありました。 Go 公式の FAQ にも書いてあります。 こっちのが私のコードより問題と解決策が一目で分かりやすかったので皆さんもハマる前にぜひ。