Vérifier si la chaîne est de type int golang
Comment puis-je vérifier si une chaîne de valeur est un entier ou pas dans Golang?
Quelque chose comme
v := "4"
if isInt(v) {
fmt.Println("We have an int, we can safely cast this with strconv")
}
Note: je sais que strconv.Atoi
renvoie une erreur, mais est-il une autre fonction pour faire cela?
Le problème avec strconv.Atoi
est qu'il sera de retour 7
pour "a7"
strconv.Atoi
renvoie une erreur pour "7a". play.golang.org/p/MTfQSOqPW3- Vous avez raison, j'ai foiré dans mes tests
Vous devez vous connecter pour publier un commentaire.
Comme vous l'avez dit, vous pouvez utiliser strconv.Atoi pour cela.
Vous pouvez utiliser
scanner.Scanner
(à partir detext/scanner
) en modeScanInts
, ou d'utiliser une expression régulière pour valider la chaîne, maisAtoi
est le bon outil pour le travail.c'est mieux, vous pouvez vérifier les services de renseignements jusqu'à 64 ans ( ou moins ) de bits
strconv.Atoi prend uniquement en charge 32 bits
essayer avec v := "12345678900123456789"
Vous pouvez utiliser
unicode.Appel isdigit()
:IsDigit
dit oui maisstrconv.Atoi
ne parvient pas à analyser play.golang.org/p/aLfLfwDgfrVous pouvez utiliser
govalidator
.Code
Exemple Complet
De sortie:
cela peut aider
a-z
n'est pas nécessairement un nombre.