卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章35261本站已运行394

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

无法使用 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,
}
卓越飞翔博客
上一篇: gin 的 Context.Redirect 的单元测试适用于 GET 响应代码,但不适用于 POST 响应代码 (golang)
下一篇: 返回列表
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏