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