Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Menetapkan Penunjuk Int dengan Selamat kepada Nilai Int dalam Go?

Bagaimana untuk Menetapkan Penunjuk Int dengan Selamat kepada Nilai Int dalam Go?

Patricia Arquette
Lepaskan: 2024-12-08 12:15:11
asal
594 orang telah melayarinya

How to Safely Set an Int Pointer to an Int Value in Go?

Menetapkan Penunjuk Int kepada Nilai Int dalam Go

Dalam Go, penunjuk ialah pembolehubah yang menyimpan alamat pembolehubah lain. Ia membenarkan anda mengakses nilai pembolehubah yang dirujuk secara tidak langsung dengan menyahrujuknya menggunakan operator *.

Walau bagaimanapun, apabila menggunakan penunjuk, anda mungkin menghadapi masalah jika anda cuba menyahrujuk penuding sifar. Ini kerana penunjuk sifar tidak ditetapkan untuk menunjuk ke mana-mana lokasi memori yang sah.

Pertimbangkan kod berikut:

package main

import (
    "fmt"
    "reflect"
)

func main() {
    var guess *int
    fmt.Println(reflect.TypeOf(guess))
    *guess = 12345
    fmt.Println(guess)
}
Salin selepas log masuk

Kod ini cuba menetapkan nilai *penunjuk teka ke 12345. Walau bagaimanapun, ini akan mengakibatkan panik masa jalan kerana alamat memori yang tidak sah atau penyahrujukan sifar.

The sebab ralat ini ialah penunjuk tekaan adalah sifar secara lalai. Apabila anda cuba menyahrujuk penuding sifar, atur cara akan ranap.

Untuk menyelesaikan isu ini, anda perlu menetapkan penuding ke lokasi memori yang sah dahulu. Anda boleh menggunakan fungsi new() terbina untuk mencipta pembolehubah int baharu dan menetapkan alamatnya kepada penunjuk tekaan:

var guess *int
guess = new(int)
*guess = 12345
Salin selepas log masuk

Sekarang, penunjuk tekaan menghala ke pembolehubah int yang sah, dan anda boleh membatalkan rujukan dengan selamat ia untuk menetapkan atau mendapatkan nilainya.

Cara lain untuk menetapkan nilai pada penunjuk adalah dengan menggunakan operator & untuk mendapatkan alamat yang sedia ada pembolehubah:

value := 12345
guess := &value
Salin selepas log masuk

Di sini, penunjuk tekaan kini menunjuk kepada pembolehubah nilai. Sebarang perubahan yang dibuat pada nilai yang ditunjuk melalui penunjuk tekaan juga akan mempengaruhi pembolehubah nilai asal.

Dengan memahami konsep penunjuk nil dan cara untuk menetapkannya ke lokasi memori yang sah, anda boleh menggunakan penunjuk dalam Go anda dengan berkesan. atur cara untuk mengakses dan memanipulasi data secara tidak langsung.

Atas ialah kandungan terperinci Bagaimana untuk Menetapkan Penunjuk Int dengan Selamat kepada Nilai Int dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan