Menetapkan Penunjuk Int kepada Nilai Int dalam Go
Apabila memberikan nilai integer kepada penunjuk int dalam Go, adalah penting untuk memastikan penunjuk itu sendiri tidak sifar. Ralat ini timbul apabila cuba menyahrujuk penuding sifar, yang membawa kepada panik masa jalan.
Penyelesaian terletak pada memulakan penuding untuk menunjuk ke lokasi memori yang sah. Ini boleh dicapai menggunakan fungsi terbina dalam new(), yang memperuntukkan memori untuk int baharu dan mengembalikan penunjuk kepadanya. Berikut ialah contoh:
var guess *int fmt.Println(reflect.TypeOf(guess)) // Outputs: *int guess = new(int) // Allocates memory for a new int *guess = 12345 // Dereferences the pointer and sets the value to 12345 fmt.Println(guess) // Outputs: 0x10414028 (address of the allocated memory)
Pengubahsuaian ini memastikan bahawa penuding menghala ke lokasi memori yang diperuntukkan sebelum mengakses nilai yang ditunjuk. Sebagai alternatif, anda boleh menetapkan alamat pembolehubah secara langsung kepada pembolehubah penunjuk:
value := 12345 guess = &value // Assigns the address of value to guess pointer
Dalam kes ini, penunjuk menunjuk ke lokasi memori pembolehubah nilai, membolehkan anda memanipulasi nilai melalui penuding .
Ingat bahawa mengubah suai nilai ditunjuk melalui penunjuk juga mempengaruhi nilai pembolehubah yang dirujuknya. Sebaliknya, mengubah nilai pembolehubah yang dirujuk secara langsung juga mengubah nilai yang ditunjuk. Hubungan dwi antara penunjuk dan pembolehubah dirujuk ini merupakan konsep penting untuk difahami dalam penggunaan penunjuk.
Atas ialah kandungan terperinci Bagaimana untuk Menetapkan Nilai Integer dengan Selamat kepada Penunjuk Int dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!