Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Tidak boleh menggunakan userId (pembolehubah rentetan jenis) sebagai nilai int dalam literal struct

Tidak boleh menggunakan userId (pembolehubah rentetan jenis) sebagai nilai int dalam literal struct

PHPz
PHPzke hadapan
2024-02-10 19:21:19703semak imbas

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

Dalam pengaturcaraan PHP, selalunya ditemui pembolehubah jenis rentetan digunakan sebagai nilai integer. Walau bagaimanapun, mengikut peraturan sintaks PHP, kita tidak boleh terus menggunakan pembolehubah jenis rentetan sebagai nilai integer, yang akan membawa kepada hasil yang salah. Soalan ini sering mengelirukan pemula. Oleh itu, editor PHP Youzi membawakan anda penyelesaian kepada masalah ini. Seterusnya, kami akan menerangkan secara terperinci cara menukar pembolehubah jenis rentetan dengan betul kepada nilai integer supaya ia boleh digunakan dengan betul dalam atur cara.

Kandungan soalan

Saya sedang belajar menggunakan go untuk mencipta api rehat. Di sinilah saya terperangkap.

Struktur pengguna

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

Logiknya seperti berikut

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

user := &user{
  id: userid,
}

Ralat

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

Apabila pengguna menghantar permintaan pengambilan:

/user/:id

Saya mencuba perkara yang sama tetapi ia juga mengembalikan ralat

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

Ralat

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

Penyelesaian

Saya jumpa penyelesaiannya! Saya menggunakan strconv.atoi()

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

user := &user{
  ID: userId,
}

Atas ialah kandungan terperinci Tidak boleh menggunakan userId (pembolehubah rentetan jenis) sebagai nilai int dalam literal struct. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam