Rumah > pembangunan bahagian belakang > Golang > Mengapakah Nilai Struktur Tidak Dikemas Kini Semasa Lelaran dalam Go?

Mengapakah Nilai Struktur Tidak Dikemas Kini Semasa Lelaran dalam Go?

Susan Sarandon
Lepaskan: 2024-12-09 13:14:15
asal
787 orang telah melayarinya

Why are Struct Values Not Updated During Iteration in Go?

Cara Mengemas kini Nilai Struktur Secara Berkesan Semasa Lelaran

Dalam coretan kod ini, kami mempunyai struct FTR dengan tatasusunan struct Mod. Kami berhasrat untuk mengemas kini medan Jenis elemen Mod berdasarkan kriteria tertentu dalam gelung. Walau bagaimanapun, nampaknya perubahan yang dibuat dalam gelung tidak ditunjukkan dalam struktur FTR selepas gelung selesai.

Isunya

Inti masalah terletak pada hakikat bahawa apabila anda mengulangi kepingan atau tatasusunan menggunakan kata kunci julat, anda hanya mendapat salinan elemen, bukan rujukan kepada elemen asal. Ini bermakna bahawa apa-apa pengubahsuaian yang anda buat pada elemen dalam gelung hanya akan menjejaskan salinan, meninggalkan elemen asal tidak berubah.

Penyelesaian: Lelaran dengan Indeks

Untuk betul kemas kini unsur-unsur struct, kita perlu mengulangi indeksnya dan mengubah suai elemen asal dan bukannya salinannya. Berikut ialah kod yang diperbetulkan:

type FTR struct {
    Id       string     
    Mod      []Mod  
}

for index := range ftr.Mod{
    switch ftr.Mod[index].Type {
    case “aaa”, “bbbb”:
        ftr.Mod[index].Type = "cccc”
    case "htr”:
        ftr.Mod[index].Type = "com"
    case "no":
        ftr.Mod[index].Type = "jnodejs"
    case "jdb”:
        ftr.Mod[index].Type = "tomcat"
    }

}
Salin selepas log masuk

Dalam kod yang dikemas kini ini, kami mengulangi indeks tatasusunan Mod dan mengubah suai medan Jenis terus pada struct FTR asal. Dengan berbuat demikian, kami memastikan bahawa perubahan yang dibuat dalam gelung dikekalkan apabila gelung selesai.

Atas ialah kandungan terperinci Mengapakah Nilai Struktur Tidak Dikemas Kini Semasa Lelaran 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