golang のルーン型
golang では、ルーンは int32 に相当しますが、通常は文字変換に使用されます。 golang の len() メソッドは主に配列の長さを計算します。
golang のデフォルトのストレージ文字列は utf8 形式であり、utf8 は可変長バイトストレージを使用し、英語の文字は 1 バイトで格納され、中国語は 3 バイトで格納されるため、-1 と - の実行結果は2 16 と 15 です。 golang には 2 つの方法があります。utf8.RuneCountInString と []rune() を使用して、utf8 を 4 バイトの int32 ストレージに変換し、int32 配列の長さを計算します。
-1 address := "this is shanghai" fmt.Println("len(address):",len(address)) -2 address := "this is shanghai" fmt.Println("len(address):",len(address)) -3 addressThree := "这是在上海" fmt.Println("len(address):",utf8.RuneCountInString(addressThree)) -4 fmt.Println("len(address):",len([]rune(addressThree))) -5 unicode.Is(unicode.Han, c) //可以判断字符是否是汉语
結果
-1 len(address): 16 -2 len(address): 15 -3 len(address): 5 -4 len(address): 5