エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
Goでオブジェクト生成の返り値にinterfaceを使うとnil Pointer Receiverができないという話 - Qiita
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
Goでオブジェクト生成の返り値にinterfaceを使うとnil Pointer Receiverができないという話 - Qiita
package main import ( "fmt" "reflect" ) type Fooer interface { Foo() } type Fooo struct{} func (f... package main import ( "fmt" "reflect" ) type Fooer interface { Foo() } type Fooo struct{} func (f *Fooo) Foo() { if f == nil { fmt.Println("nil!!") } else { fmt.Println("not nil!!") } } func newFooer() Fooer { return &Fooo{} } func bar(f Fooer) { f.Foo() } func main() { // 型を代入したあとnilを入れても型情報は消えない z := &Fooo{} fmt.Println(reflect.TypeOf(z)) // *main.Fooo z = nil fmt.Println(reflect.TypeOf(z)) // *