Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah anda mengakses bait dan rune dalam rentetan Go?

Bagaimanakah anda mengakses bait dan rune dalam rentetan Go?

Barbara Streisand
Barbara Streisandasal
2024-11-19 03:39:02568semak imbas

How do you access bytes and runes in Go strings?

Pengaksesan dan Penukaran Byte dalam Rentetan Go

Dalam Go, rentetan menyimpan bait berkod UTF-8, bukan aksara atau rune. Mengakses elemen rentetan, yang dilambangkan sebagai str[i], mengembalikan bait (bait atau uint8) dan bukannya menukarnya kepada rune.

Apabila mengulangi rentetan menggunakan binaan julat untuk ..., anda boleh mengakses sama ada bait atau rune. Mengindeks rentetan (cth., str[i]) mengakses bait secara langsung, manakala gelung tanpa penukaran (untuk i := julat str) berulang melalui rune.

Pertimbangan Prestasi

Menukar rentetan kepada kepingan bait menggunakan []bait(str) tidak melaksanakan salinan sebenar; ia dioptimumkan. Oleh itu, tiada perbezaan prestasi antara dua kaedah yang dibentangkan:

str := "large text"
for i := range str {
  // use str[i]
}
str := "large text"
str2 := []byte(str)
for _, s := range str2 {
  // use s
}

Walau bagaimanapun, untuk prestasi maksimum dan kejelasan kod, adalah disyorkan untuk menggunakan kaedah yang sepadan dengan niat kod:

  • Lelaran lebih bait menggunakan kaedah pertama jika anda secara khusus perlu mengakses bait.
  • Lelaran lebih rune menggunakan kaedah kedua jika anda perlu mengakses aksara.

Lelaran Aksara

Apabila lelaran ke atas aksara rune dalam rentetan, adalah penting untuk ambil perhatian bahawa aksara multibait, seperti aksara Unicode, mungkin diwakili menggunakan berbilang bait dalam pengekodan UTF-8 yang mendasari . Sintaks untuk ... julat str mengendalikan ini secara automatik, mengembalikan indeks bait dan nilai aksara (rune) pada setiap lelaran.

Sumber Tambahan

  • [ Blog Go: Rentetan, bait, rune dan aksara dalam Go](https://blog.golang.org/strings)
  • [golang: []bait(rentetan) lwn []bait(*rentetan) ](https://go.dev/issue/22847)

Atas ialah kandungan terperinci Bagaimanakah anda mengakses bait dan rune dalam rentetan 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