ポインターが空かどうかを判断する Golang の方法:
1. 型がわかっていれば、自然に型アサーションを使用して、それが空かどうかを判断できます。たとえば、ai, ok := i.(*int) の場合、ai == nil と判断します。
2. ポインターの種類がわからない場合は、リフレクション vi :=reflect.ValueOf(i) を使用してから、vi.IsNil() を使用して判断する必要があります。ただし、i がポインターではない場合、IsNil を呼び出すときに例外が発生します。null を検出するには、このような関数を記述する必要があるかもしれません
func IsNil(i interface{}) bool { defer func() { recover() }() vi := reflect.ValueOf(i) return vi.IsNil() }
しかし、このように遅延回復を強制するのは、実際には見栄えがよくありません
func IsNil(i interface{}) bool { vi := reflect.ValueOf(i) if vi.Kind() == reflect.Ptr { return vi.IsNil() } return false }
Golang の詳細については、PHP 中国語 Web サイトの golang チュートリアル 列に注目してください。
以上がgolangでポインタがnullかどうかを判断する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。