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
Lepaskan: 2024-12-30 12:34:14
asal
573 orang telah melayarinya

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("--")
    }
}
Salin selepas log masuk

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("--")
    }
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan