Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Mengulangi Rentetan oleh Runes dalam Go?

Bagaimana untuk Mengulangi Rentetan oleh Runes dalam Go?

Susan Sarandon
Susan Sarandonasal
2024-11-13 11:19:02851semak imbas

How to Iterate Over a String by Runes in Go?

Lelaran Melalui Rentetan oleh Rune dalam Go

Dalam Go, anda mungkin menghadapi situasi di mana anda ingin mengulangi rentetan dengannya rune individu, atau mata kod Unicode. Anda mungkin tergoda untuk menggunakan gelung for tradisional dengan indeks i untuk mengakses setiap aksara:

for i := 0; i < len(str); i++ {
    dosomethingwithrune(str[i]) // takes a rune
}

Walau bagaimanapun, pendekatan ini tidak akan berfungsi dengan betul kerana str[i] mengembalikan bait (uint8) dan bukannya rune. Untuk mengulangi rentetan mengikut rune, anda perlu menggunakan sintaks julat:

for pos, char := range "日本語" {
    fmt.Printf("character %c starts at byte position %d\n", char, pos)
}

Kod ini akan mencetak output berikut:

character 日 starts at byte position 0
character 本 starts at byte position 3
character 語 starts at byte position 6

Seperti yang dijelaskan oleh dokumentasi untuk Effective Go, sintaks julat "melakukan lebih banyak kerja untuk anda, memecahkan titik kod Unicode individu dengan menghuraikan UTF-8." Ini membolehkan anda bekerja dengan rune secara langsung, menjadikannya lebih mudah untuk melaksanakan operasi berkaitan Unikod pada rentetan anda.

Atas ialah kandungan terperinci Bagaimana untuk Mengulangi Rentetan oleh Runes dalam 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