[解決済み] 値の代わりに参照する範囲
2022-09-17 19:09:52
質問
rangeはキーと値のコピー("copy")を返すと見ました。そのレンジがアイテムのアドレスを返す方法はありますか?例
package main
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("--")
}
}
http://play.golang.org/p/AFOGG9NGpx
ここで、"field" は、範囲がフィールドのコピーを送信するため、変更されません。 indexを使用しなければならないのでしょうか、それとも他に値を変更する方法があるのでしょうか?
どのように解決するのですか?
簡単で直接的な答えです。 いいえ、値ではなく、配列のインデックスを使用します。
というわけで、上のコードはこうなります。
package main
import "fmt"
type MyType struct {
field string
}
func main() {
var array [10]MyType
for idx, _ := range array {
array[idx].field = "foo"
}
for _, e := range array {
fmt.Println(e.field)
fmt.Println("--")
}
}
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン