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

PHPz
Lepaskan: 2024-02-10 19:21:19
ke hadapan
703 orang telah melayarinya

无法使用 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"`
}
Salin selepas log masuk

Logiknya seperti berikut

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

user := &user{
  id: userid,
}
Salin selepas log masuk

Ralat

cannot use userid (variable of type string) as int value in struct literal
Salin selepas log masuk

Apabila pengguna menghantar permintaan pengambilan:

/user/:id
Salin selepas log masuk

Saya mencuba perkara yang sama tetapi ia juga mengembalikan ralat

user := &user{
  id: strconv.atoi(int(userid)),
}
Salin selepas log masuk

Ralat

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

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,
}
Salin selepas log masuk

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!

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!