Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Mengalih Keluar Elemen dengan Selamat daripada Susunan Struktur dalam Go?

Bagaimana untuk Mengalih Keluar Elemen dengan Selamat daripada Susunan Struktur dalam Go?

Mary-Kate Olsen
Lepaskan: 2024-11-29 22:43:09
asal
321 orang telah melayarinya

How to Safely Remove Elements from an Array of Structs in Go?

Mengalih keluar Elemen Tatasusunan Struktur dalam Go

Apabila bekerja dengan tatasusunan struct dalam Go, mungkin perlu mengalih keluar elemen berdasarkan syarat tertentu. Walau bagaimanapun, percubaan untuk melakukan ini dalam gelung boleh membawa kepada ralat "di luar julat".

Pertimbangkan contoh berikut:

type Config struct {
  Applications []Application
}

// config is initialized from a JSON file
config = new(Config)
_ = decoder.Decode(&config)

for i, application := range config.Applications {
  if i == 1 {
    config.Applications = _removeApplication(i, config.Applications)
  }
}

func _removeApplication(i int, list []Application) []Application {
  if i < len(list)-1 {
    list = append(list[:i], list[i+1:]...)
  } else {
    log.Print(list[i].Name)
    list = list[:i]
  }

  return list
}
Salin selepas log masuk

Kod ini cuba mengalih keluar elemen kedua (indeks 1 ) daripada tatasusunan Aplikasi. Walau bagaimanapun, pemadaman elemen dalam gelung ini, terutamanya jika elemen semasa dipadamkan, boleh mengakibatkan pengindeksan yang salah disebabkan oleh peralihan kedudukan elemen selepas pemadaman.

Penyelesaian Disyorkan

Untuk mengelakkan isu pengindeksan, adalah dinasihatkan untuk menggelung dalam susunan terbalik:

for i := len(config.Applications) - 1; i >= 0; i-- {
    application := config.Applications[i]
    // Condition to decide if current element has to be deleted:
    if haveToDelete {
        config.Applications = append(config.Applications[:i],
                config.Applications[i+1:]...)
    }
}
Salin selepas log masuk

Ini ke bawah gelung memastikan bahawa elemen selepas yang dipadamkan dialihkan dengan betul, mengelakkan sebarang isu di luar lingkungan.

Atas ialah kandungan terperinci Bagaimana untuk Mengalih Keluar Elemen dengan Selamat daripada Susunan Struktur 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