Maison  >  Article  >  développement back-end  >  Impossible d'utiliser userId (variable de type chaîne) comme valeur int dans un littéral de structure

Impossible d'utiliser userId (variable de type chaîne) comme valeur int dans un littéral de structure

PHPz
PHPzavant
2024-02-10 19:21:19703parcourir

无法使用 userId(字符串类型的变量)作为结构文字中的 int 值

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.

Contenu de la question

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

Solution

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer