func TestRuneType(tt *testing.T) {
    var str = "你好" //思考下 len(str) 的长度是多少?
    fmt.Println([]byte(str)) //[228 189 160 229 165 189]

    //golang中string底层是通过byte数组实现的,直接求len 实际是在按字节长度计算
    //所以一个汉字占3个字节算了3个长度
    fmt.Println("len(str):", len(str)) // len(str): 6

    //通过rune类型处理unicode字符
    fmt.Println([]rune(str)) //[20320 22909]
    fmt.Println("rune:", len([]rune(str))) //rune: 2
}

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

Captcha Code