utf8文字列を比較するには、そのrunevalueを確認する必要があります。 Runevalueはutf8文字のint32値です。標準パッケージ "unicode/utf8"を使用してください。パス「の文字列[0:]」最初の文字
test := "春节"
runeValue, width := utf8.DecodeRuneInString(test[0:])
fmt.Println(runeValue,width)
fmt.Printf("%#U %d", runeValue, runeValue)
を取得するために今、あなたはまた、あなたが文字列を格納する必要が==演算子
を使って2つの文字列の最初の文字のruneValueを比較することができます文字全体を保存したい場合は文字列で指定します。これを証明する
type ds struct {
char string // What should Char be so that I can safely compare two ds?
}
完全なコード:Volkers、答えから
package main
import (
"fmt"
"unicode/utf8"
)
type ds struct {
char string // What should Char be so that I can safely compare two ds?
}
func main() {
fmt.Println("Hello, playground")
ds1 := ds{"春节"}
ds2 := ds{"春节"}
runeValue1, _ := utf8.DecodeRuneInString(ds1.char[0:])
runeValue2, _ := utf8.DecodeRuneInString(ds2.char[0:])
fmt.Printf("%#U %#U", runeValue1, runeValue2)
if runeValue1 == runeValue2 {
fmt.Println("\nFirst Char Same")
} else {
fmt.Println("\nDifferent")
}
}
Golang Playground
を行うことができます最初のUnicode文字を取得します。 – khrm