在下面的代碼中,我通過符文遍歷了一個string
符文,但實際上我需要一個int
來執行一些校驗和計算。我真的需要將rune
編碼爲[]byte
,然後將其轉換爲string
,然後使用Atoi
從rune
中獲得int
?這是做到這一點的慣用方法嗎?將rune轉換爲int?
// The string `s` only contains digits.
var factor int
for i, c := range s[:12] {
if i % 2 == 0 {
factor = 1
} else {
factor = 3
}
buf := make([]byte, 1)
_ = utf8.EncodeRune(buf, c)
value, _ := strconv.Atoi(string(buf))
sum += value * factor
}
操場:http://play.golang.org/p/noWDYjn5rJ
謝謝,但那不是我想要的。你正在使用42初始化符文 - 根據我的ASCII表格可以產生'*'字符。我得到的是一個字符串和'範圍'產生的符文,代表了角色。在符文上使用int會給我表示的價值,而不是我需要的* display *值。我做了一小段代碼,提示了區別:http://play.golang.org/p/JLlmKnddGv – miku
@miku:查看我修改後的答案。 – peterSO
啊,好戲。我不知道你的答案爲什麼被低估。 – miku