Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Mewakili Rentetan Pilihan Terbaik dalam Go?

Bagaimanakah Saya Boleh Mewakili Rentetan Pilihan Terbaik dalam Go?

Susan Sarandon
Lepaskan: 2024-12-20 06:01:09
asal
316 orang telah melayarinya

How Can I Best Represent Optional Strings in Go?

Idiomatik Go: Mewakili Rentetan Pilihan

Ketiadaan jenis varian dalam Go menimbulkan cabaran untuk nilai pemodelan yang boleh wujud sama ada tanpa kehadiran atau bentuk sekarang. Ini amat relevan untuk rentetan, yang tidak boleh menerima nol sebagai ahli.

Pilihan untuk Memodelkan Rentetan Pilihan

  1. rentetan: Walaupun menggunakan penuding ke rentetan (rentetan) boleh berfungsi, ia menimbulkan kejanggalan dalam operasi seperti merujuk literal rentetan.
  2. Pembungkus: Merangkum rentetan dan status kehadirannya dalam pembungkus ialah penyelesaian yang berdaya maju, tetapi ia menyimpang daripada matlamat menggunakan hanya rentetan.
  3. rentetan dengan Nilai Nul Khusus:

    a. Rentetan Kosong (""): Menetapkan rentetan kosong sebagai elemen nol memberikan kemudahan untuk pemulaan dan pengendalian nilai yang tiada daripada peta.

    b. Urutan UTF-8 Bait Tidak Sah: Untuk kes di mana rentetan kosong adalah sah, urutan UTF-8 bait pendek yang tidak sah (cth., "xff") boleh digunakan untuk mewakili nilai nol sambil membenarkan rentetan teks yang sah.

Menggunakan UTF-8 Byte Tidak Sah Jujukan

  1. Tentukan pemalar, seperti const Null = "xff", untuk mewakili nilai nol.
  2. Pendekatan ini membenarkan kedua-dua rentetan kosong dan teks yang sah sebagai nilai pilihan .
  3. Fungsi utf8.ValidString() boleh digunakan untuk menyemak sama ada rentetan adalah sah teks.

Contoh:

const Null = "\xff"

func main() {
    fmt.Println(utf8.ValidString(Null)) // false

    s := Null
    fmt.Println([]byte(s)) // [255]
    fmt.Println(s == Null) // true
    s = "notnull"
    fmt.Println(s == Null) // false
}
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mewakili Rentetan Pilihan Terbaik 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