go test fuzz v1
string("ᓿ")
唯讀
的Byte
組成的,而 Byte 的格式都是長這樣\xNN #而NN的範圍從十六進位的00到FF都被包括在裡面
\0xfc\0x13\0xc3 #這樣可能是一個字元
String
以外,還有個咚咚叫做 Runes
runes
的作用,就是把我們前面的 Byte by Byte 變成是有效的字符會弄在一起func main() {
example := "鐵人"
fmt.Println([]rune(example))
fmt.Println([]byte(example))
}
----------------------------------
Output:
[37941 20154]
[233 144 181 228 186 186]
rune
會把鐵
這個字當作一個完整的 UTF-8
來翻 而不是 byte 一個一個字節去翻string
改成 rune
的型態Reverse()
的參數 String
用 Runes
去接起來換掉變成下面這個樣子func Reverse(s string) string {
r := []rune(s)
for i, j := 0, len(r)-1; i < len(r)/2; i, j = i+1, j-1 {
r[i], r[j] = r[j], r[i]
}
return string(r)
}