Maison > Article > développement back-end > Impossible d'utiliser userId (variable de type chaîne) comme valeur int dans un littéral de structure
En programmation PHP, on constate souvent que des variables de type chaîne sont utilisées comme valeurs entières. Cependant, selon les règles de syntaxe de PHP, nous ne pouvons pas utiliser directement une variable de type chaîne comme valeur entière, ce qui entraînerait des résultats incorrects. Cette question déroute souvent les débutants. L’éditeur PHP Yuzi vous apporte donc une solution à ce problème. Ensuite, nous expliquerons en détail comment convertir correctement une variable de type chaîne en valeur entière afin qu'elle puisse être utilisée correctement dans le programme.
J'apprends à utiliser go pour créer une API de repos. C'est là que je suis coincé.
Structure utilisateur
type user struct { id int `json:"id"` firstname string `json:"first_name"` lastname string `json:"last_name"` }
La logique est la suivante
params := httprouter.paramsfromcontext(r.context()) userid := params.byname("id") user := &user{ id: userid, }
Erreur
cannot use userid (variable of type string) as int value in struct literal
Lorsque l'utilisateur envoie une demande d'obtention :
/user/:id
J'ai essayé la même chose mais cela a également renvoyé une erreur
user := &user{ id: strconv.atoi(int(userid)), }
Erreur
2-valued strconv.Atoi(int(userId)) (value of type (int, error)) where single value is expected
J'ai trouvé la solution ! J'ai utilisé strconv.atoi()
userId, err := strconv.Atoi(params.ByName("id")) if err != nil { fmt.Println(err) } user := &user{ ID: userId, }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!