Menetapkan Penunjuk Int kepada Nilai Int dalam Go
Apabila cuba memberikan nilai kepada pembolehubah penunjuk, adalah penting untuk memastikan penunjuk bukan nol. Percubaan untuk menyahrujuk penuding sifar boleh menyebabkan panik masa jalan, seperti yang anda alami.
Penyelesaian:
Untuk menetapkan nilai yang ditunjuk, penuding mesti menunjuk kepada sesuatu yang sah . Anda boleh mendapatkan penuding kepada int bernilai sifar menggunakan fungsi new():
guess := new(int) *guess = 12345
Ini memperuntukkan memori untuk pembolehubah int dan menetapkan penuding untuk menghala ke memori tersebut. Kini anda boleh mengubah suai nilai bertitik melalui penuding.
Pengisytiharan Ringkas:
Anda boleh memudahkan pengisytiharan dan permulaan menggunakan pengisytiharan pembolehubah pendek:
guess := new(int) *guess = 12345
Alternatif Pendekatan:
Anda juga boleh menetapkan alamat pembolehubah sedia ada kepada penuding:
value := 12345 guess := &value
Ini mengubah suai nilai penunjuk, bukan nilai yang ditunjuk. Walau bagaimanapun, dalam contoh mudah ini, kesannya adalah serupa.
Pengubahsuaian Nilai Rujuk:
Menukar nilai yang ditunjuk melalui penuding juga akan mengubah nilai pembolehubah ia menunjuk kepada. Sebaliknya, mengubah suai nilai pembolehubah akan mempengaruhi nilai yang ditunjuk:
var value int guess := &value value = 12345 fmt.Println(*guess) // Prints: 12345
Menggunakan penuding menyediakan cara yang mudah untuk mengubah suai nilai pembolehubah secara tidak langsung. Walau bagaimanapun, adalah penting untuk memulakan penunjuk dengan betul untuk mengelakkan ralat penunjuk tiada dan memastikan integriti data.
Atas ialah kandungan terperinci Bagaimana untuk Menetapkan Nilai Integer dengan Selamat kepada Penunjuk Integer dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!