構造体のプロパティ割り当ての決定
プログラミングの多くのシナリオでは、構造体とそのプロパティの操作が必要になります。よく発生する質問の 1 つは、構造内の特定のプロパティに値が割り当てられているかどうかを確認する方法です。この記事では、この問題の解決策を検討します。
Go では、構造体は値型です。つまり、構造体のプロパティに新しい値を割り当てると、構造体の新しいコピーが作成されます。この動作により、プロパティが設定されているかどうかの確認が複雑になる可能性があります。
提供された回答で dyoo が示唆しているように、1 つのアプローチは nil 値を使用することです。プロパティがポインターの場合は、それが nil かどうかをチェックして、プロパティが設定されているかどうかを判断できます。ただし、この方法は、プロパティがポインターでない場合には適用できません。
あるいは、プロパティ値を空の文字列などのデフォルト値と比較することもできます。次の例は、このアプローチを示しています。
package main import "fmt" type MyStruct struct { Property string } func main() { s1 := MyStruct{ Property: "hey", } s2 := MyStruct{} if s1.Property != "" { fmt.Println("s1.Property has been set") } if s2.Property == "" { fmt.Println("s2.Property has not been set") } }
この例では、s1 の Property フィールドが空でない場合、コードは設定されていることを出力します。逆に、s2 の Property フィールドが空の場合、コードは設定されていないことを出力します。
このアプローチにより、プロパティが であるかどうかに関係なく、構造体のプロパティに値が割り当てられているかどうかを判断できます。ポインターかどうか。プロパティ値をデフォルト値と比較することで、割り当てを効果的に確認できます。
以上がGo で構造体のプロパティに値が割り当てられているかどうかを確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。