首页  >  文章  >  后端开发  >  无法使用 userId(字符串类型的变量)作为结构文字中的 int 值

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

PHPz
PHPz转载
2024-02-10 19:21:19705浏览

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

在PHP编程中,经常会遇到将字符串类型的变量用作整数值的情况。然而,根据PHP的语法规则,我们无法直接将一个字符串类型的变量作为整数值来使用,这将导致错误的结果。这个问题常常会让初学者感到困惑。因此,php小编柚子为大家带来了解决这个问题的方法。接下来,我们将详细介绍如何正确地将字符串类型的变量转换为整数值,以便在程序中正确地使用。

问题内容

我正在学习使用 go 创建 rest api。这就是我被困住的地方。

用户结构

type user struct {
  id         int    `json:"id"`
  firstname  string `json:"first_name"`
  lastname   string `json:"last_name"`
}

逻辑如下

params := httprouter.paramsfromcontext(r.context())
userid := params.byname("id")

user := &user{
  id: userid,
}

错误

cannot use userid (variable of type string) as int value in struct literal

当用户发送获取请求时:

/user/:id

我尝试了同样的操作,但它也返回错误

user := &user{
  id: strconv.atoi(int(userid)),
}

错误

2-valued strconv.Atoi(int(userId)) (value of type (int, error)) where single value is expected

解决方法

我找到了解决方案!我使用了 strconv.atoi()

userId, err := strconv.Atoi(params.ByName("id"))
if err != nil {
  fmt.Println(err)
}

user := &user{
  ID: userId,
}

以上是无法使用 userId(字符串类型的变量)作为结构文字中的 int 值的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文转载于:stackoverflow.com。如有侵权,请联系admin@php.cn删除