Je veux convertir une chaîne en int64. Ce que je trouve dans le package strconv
est la fonction Atoi
. Il semble lancer une chaîne sur un int et le renvoyer:
// Atoi is shorthand for ParseInt(s, 10, 0).
func Atoi(s string) (i int, err error) {
i64, err := ParseInt(s, 10, 0)
return int(i64), err
}
Le ParseInt renvoie en fait un int64:
func ParseInt(s string, base int, bitSize int) (i int64, err error){
//...
}
Donc, si je veux obtenir un int64 à partir d'une chaîne, dois-je éviter d'utiliser Atoi, utilisez plutôt ParseInt? Ou y a-t-il un Atio64 caché quelque part?
Non, il n'y a pas d'Atoi64. Vous devez également transmettre le paramètre 64 en dernier lieu à ParseInt, sinon la valeur attendue pourrait ne pas être générée sur un système 32 bits.
Analyse de chaîne en exemple int64:
// Use the max value for signed 64 integer. http://golang.org/pkg/builtin/#int64
var s string = "9223372036854775807"
i, err := strconv.ParseInt(s, 10, 64)
if err != nil {
panic(err)
}
fmt.Printf("Hello, %v with type %s!\n", i, reflect.TypeOf(i))
sortie:
Bonjour, 9223372036854775807 avec le type int64!