Convertir rune d'int?

Dans le code suivant, j'ai effectuer une itération sur un string rune par rune, mais je vais effectivement besoin d'un int pour effectuer certaines calcul de checksum. Ai-je vraiment besoin d'encoder les rune dans un []byte, puis de le convertir en un string et ensuite utiliser Atoi pour obtenir un int de la rune? Est-ce la idiomatiques façon de le faire?

//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
}

Sur l'aire de jeux: http://play.golang.org/p/noWDYjn5rJ

OriginalL'auteur miku | 2014-01-24