π¬ Π§ΡΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ len() Π² Go, Π΅ΡΠ»ΠΈ Π΅ΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π° ΡΡΡΠΎΠΊΠ° Π² ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ΅ UTF-8?
πΈΠ€ΡΠ½ΠΊΡΠΈΡ
πΈΠΡΠ»ΠΈ ΡΡΡΠΎΠΊΠ° Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½Π° Π² UTF-8, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π½ΠΈΠΌΠ°ΡΡ ΠΎΡ 1 Π΄ΠΎ 4 Π±Π°ΠΉΡΠΎΠ².
πΈΠ’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π΅ΡΠ»ΠΈ Π² ΡΡΡΠΎΠΊΠ΅ UTF-8 ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠ±Π°ΠΉΡΠΎΠ²ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, ΡΡΠ½ΠΊΡΠΈΡ
πΈΠ Π΅Π·ΡΠ»ΡΡΠ°Ρ:
Byte length: 6
Rune count: 2
πΈΠ€ΡΠ½ΠΊΡΠΈΡ
len()
Π² Go Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π±Π°ΠΉΡΠΎΠ² Π² ΡΡΡΠΎΠΊΠ΅, Π° Π½Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠ½ (ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Unicode).πΈΠΡΠ»ΠΈ ΡΡΡΠΎΠΊΠ° Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½Π° Π² UTF-8, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π½ΠΈΠΌΠ°ΡΡ ΠΎΡ 1 Π΄ΠΎ 4 Π±Π°ΠΉΡΠΎΠ².
πΈΠ’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π΅ΡΠ»ΠΈ Π² ΡΡΡΠΎΠΊΠ΅ UTF-8 ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠ±Π°ΠΉΡΠΎΠ²ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, ΡΡΠ½ΠΊΡΠΈΡ
len()
Π²Π΅ΡΠ½Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π±ΠΎΠ»ΡΡΠ΅Π΅, ΡΠ΅ΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π² ΡΡΡΠΎΠΊΠ΅.
import (
"fmt"
"unicode/utf8"
)
func main() {
s := "δΈη"
fmt.Println("Byte length:", len(s))
fmt.Println("Rune count:", utf8.RuneCountInString(s))
}
πΈΠ Π΅Π·ΡΠ»ΡΡΠ°Ρ:
Byte length: 6
Rune count: 2