Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Mengubah Suai Nilai Asal Semasa Lelaran Julat dalam Go?

Bagaimana untuk Mengubah Suai Nilai Asal Semasa Lelaran Julat dalam Go?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-30 12:34:14589semak imbas

How to Modify Original Values During Range Iterations in Go?

Mengalamatkan Nilai dalam Lelaran Julat

Apabila mengulang julat nilai, adalah perkara biasa untuk mengubah suai nilai asal dan bukannya menggunakan salinan sahaja. Walau bagaimanapun, secara lalai, binaan julat mengembalikan salinan setiap nilai.

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("--")
    }
}

Dalam kod di atas, medan "medan" setiap elemen dalam tatasusunan tidak diubah suai kerana julat menyalin nilai ke dalam pembolehubah e.

Penyelesaian

Untuk mengubah suai nilai asal, anda tidak boleh menggunakan binaan julat untuk mengulang nilai. Sebaliknya, anda mesti menggunakan indeks tatasusunan.

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("--")
    }
}

Dengan menggunakan indeks tatasusunan, anda mengakses terus nilai asal dalam tatasusunan dan boleh mengubah suainya mengikut keperluan.

Atas ialah kandungan terperinci Bagaimana untuk Mengubah Suai Nilai Asal Semasa Lelaran Julat dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn