IsValid
関数について私は興味があります。なぜなら、この関数を使用している間は決してfalse
を返さなかったからです。だから、それはいつ負の結果を返しますか? DOC reflect.IsValid()
としていつreflect.IsValidがfalseを返しますか?
3
A
答えて
6
は言う:
vがゼロ値である場合にはfalseを返します。 [...] ほとんどの関数とメソッドは無効な値を返しません。もしそうであれば、その文書は条件を明示的に述べる。
Value.IsValid()
は(もしあれば)、それはラップ値、reflect.Value
自体が有効であるかどうかではない報告することになっています。
以下のすべての例は、印刷false
です。あなたはGo Playgroundでそれらを試すことができます。
最も簡単な例は、(struct
ある)reflect.Value
のzero valueにIsValid()
を呼び出している:
fmt.Println(reflect.Value{}.IsValid())
reflect.ValueOf()
にnil
を通過するときに第2の最も簡単な例である:
fmt.Println(reflect.ValueOf(nil).IsValid())
別の例:ポインタがnil
で始まります。この場合は、「指し示された」値はありません。nil
ポインターはどこにも指していません。そのIsValid()
方法ゼロreflect.Value
でValue.Elem()
結果を用いて尖った値のreflect.Value
を取得しようとすると、false
を返します。
var i *int
v := reflect.ValueOf(i)
v2 := v.Elem()
fmt.Println(v2.IsValid())
または1行で:
fmt.Println(reflect.ValueOf((*int)(nil)).Elem().IsValid())
同じことあなたがValue.Indirect()
を呼び出す場合上記reflect.Value()
:
fmt.Println(reflect.Indirect(v).IsValid())
それともValue.FieldByName()
を使用して、名前で存在しない構造体のフィールドを取得しよう:
s := struct{}{}
fmt.Println(reflect.ValueOf(s).FieldByName("").IsValid())
またはValue.MethodByName()
を使用して、名前で存在しないメソッドを取得しよう:
fmt.Println(reflect.ValueOf(s).MethodByName("").IsValid())
または値を取得しようValue.MapIndex()
を使用して、非既存のキーマップから:
m := map[int]int{}
fmt.Println(reflect.ValueOf(m).MapIndex(reflect.ValueOf(3)).IsValid())
リスト...
に行きます関連する問題
- 1. Jqueryコンポーネントがfalseを返しますか?
- 2. stream_resolve_include_pathがfalseを返しますか?
- 3. いくつかのファイルでPHPのfile_exists()がfalseを返す
- 4. 2つの値が等しい場合でもfalseを返す
- 5. SugarCRM SubPanel "load_subpanel"がfalseを返します
- 6. jQueryはfalseを返します。チェックボックスが
- 7. $ request-> isXmlHttpRequest()がfalseを返します
- 8. BasicFilter AuthHelper.containsAuthenticationData(httpRequest)がfalseを返します
- 9. PHP json_encodeがfalseを返します
- 10. Exit Functionはfalseを返しますか?
- 11. HTMLアンカーでfalseが返ってもfalseを返さない
- 12. Matplotlib path.contains_pointsは、いくつかのエッジのポイントではfalseを返しますが、他のポイントではfalseを返します。
- 13. mysqli_query()がtrueを返すと、mysqli_fetch_row()はfalseを返します
- 14. intersectsBoxがfalseを返すとtrueを返します
- 15. JQueryはtrueを返した後にfalseを返しますか?
- 16. URLが正しい場合、Uri.IsWellFormedUriString()はfalseを返します。
- 17. jQuery .hasClassはfalseでないときにfalseを返しますか?
- 18. file_exists()はfalseを返しますが、ファイルが存在します。
- 19. javascriptはtrueを返すか、falseを返します。
- 20. containsOnlyElementsOfは2つのオブジェクトを渡すとfalseを返します
- 21. Mysqli Prepare Statement - Falseを返しますが、なぜですか?
- 22. 返信falseが動作しない
- 23. Android mkdirs()がfalseを返す
- 24. openssl_dh_compute_keyがfalseを返す
- 25. PHP strtotimeがfalseを返す
- 26. WordPress - get_post_meta()がfalseを返す
- 27. holder.getSurface()。isValid()がfalseを返す
- 28. File.mkdirs()がfalseを返す
- 29. htmlコードがfalseを返す
- 30. PHPクエリがfalseを返す