Rumah >pembangunan bahagian belakang >Golang >Tidak boleh menggunakan userId (pembolehubah rentetan jenis) sebagai nilai int dalam literal struct
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.
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
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!