В следующем коде я перебираю руну string
по руне, но мне действительно понадобится int
для выполнения вычисления контрольной суммы. Мне действительно нужно кодировать rune
в []byte
, а затем преобразовать его в string
, а затем использовать Atoi
, чтобы получить int
из rune
? Это идиоматический способ сделать это?
// 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