範囲参照の値の代わりにアドレスを返す
範囲ステートメントが元のアドレスの代わりに値のコピーを返す状況を考慮してください。これは、次のGOコードに見られるように、予期しない動作につながる可能性があります。 タイプmytype struct { フィールド文字列 } func main(){ var array [10] mytype _、e:=範囲配列{ e.field = "foo" } _、e:=範囲配列{ fmt.println(e.field) fmt.println( " - ") } }
import "fmt" type MyType struct { field string } func main() { var array [10]MyType for _, e := range array { e.field = "foo" } for _, e := range array { fmt.Println(e.field) fmt.Println("--") } }
func main(){ var array [10] mytype idxの場合、_:=範囲配列{ array [idx] .field = "foo" } _、e:=範囲配列{ fmt.println(e.field) fmt.println( " - ") } }
for loopの値の代わりにインデックスを使用することにより、「フィールド」プロパティに加えられた変更が元の配列に反映されるようにします。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3