Rumah >pembangunan bahagian belakang >Golang >Penunjuk Pergi: Bila hendak menggunakan `&` (Alamat) lwn. `*` (Penyahrujukan) dalam Fungsi?
Memahami Penggunaan & dan * Penunjuk dalam Fungsi Go
Dalam pembangunan Go, kadangkala perlu menghantar pembolehubah sebagai argumen kepada fungsi. Walau bagaimanapun, senario tertentu mungkin mencetuskan ralat pengkompil. Ini boleh diselesaikan dengan menggunakan sama ada & (alamat) atau * (dereference) petunjuk. Memahami perbezaan antara mereka adalah penting.
Perbezaan antara & dan * Penunjuk
Pengendali & mengembalikan alamat pembolehubah, manakala pengendali * menafikan penunjuk, menunjuk kepada data yang dirujuk alamat.
Penggunaan
Contoh
Mari kita pertimbangkan kod berikut:
func SendNotification(rw http.ResponseWriter, req *http.Request, p httprouter.Params) { decoder := json.NewDecoder(req.Body) var u User if err := decoder.Decode(&u); err != nil { http.Error(rw, "could not decode request", http.StatusBadRequest) return } }
Dalam contoh ini, kami menggunakan fungsi Nyahkod daripada pakej json. Fungsi ini mengharapkan penunjuk kepada struct Pengguna sebagai hujah. Tanpa operator &, pengkompil akan menimbulkan ralat.
Kesimpulan
Memahami perbezaan antara & dan * penunjuk adalah penting untuk pengaturcaraan Go yang berkesan. Dengan menerapkannya dengan betul, pembangun boleh menyelesaikan ralat pengkompil dan berfungsi dengan cekap dengan pembolehubah sebagai argumen dalam fungsi, membolehkan manipulasi data dan komunikasi dalam aplikasi Go.
Atas ialah kandungan terperinci Penunjuk Pergi: Bila hendak menggunakan `&` (Alamat) lwn. `*` (Penyahrujukan) dalam Fungsi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!