Rumah >pembangunan bahagian belakang >Golang >Memahami lulus melalui rujukan dalam bahasa Go
Dalam Go, lulus melalui rujukan berlaku apabila menghantar pembolehubah jenis rujukan, dengan simbol * mewakili jenis rujukan. Apabila menghantar pembolehubah jenis rujukan, yang sebenarnya diluluskan ialah alamat yang menunjuk kepada nilai asal Mengubah suai pembolehubah jenis rujukan akan menjejaskan nilai asal.
Memahami lulus melalui rujukan dalam bahasa Go
Pengenalan
Dalam bahasa Go, pembolehubah boleh menyimpan dua jenis nilai: jenis nilai dan jenis rujukan. Jenis nilai menyimpan nilai sebenar, manakala jenis rujukan menyimpan alamat yang menunjuk kepada nilai sebenar. Rujukan lulus berlaku apabila pembolehubah jenis rujukan diluluskan.
Pengetahuan asas lulus rujukan
Dalam bahasa Go, gunakan simbol *
untuk mewakili jenis rujukan. Contohnya: *
符号来表示一个引用类型。例如:
type Point struct { x int y int } func main() { var p1 = Point{1, 2} }
在上面的代码中,p1
是一个对 Point
结构的引用。当您传递一个引用类型的变量时,您实际上是在传递指向原始值的地址。
实战案例
考虑以下示例:
func changePoint(p *Point) { p.x = 10 p.y = 20 } func main() { var p1 = Point{1, 2} changePoint(&p1) fmt.Println(p1) // 输出:{10 20} }
在 changePoint
函数中,我们通过指针接收了一个对 Point
结构的引用。然后,我们修改了指针引用的实际值。由于我们已经修改了原始值,因此在 main
函数中打印 p1
rrreee
p1
ialah rujukan kepada struktur Point
. Apabila anda menghantar pembolehubah jenis rujukan, anda sebenarnya menghantar alamat kepada nilai asal. Contoh Praktikal
changePoint
, kami menerima rujukan kepada struktur Point
melalui penuding. Kemudian, kami mengubah suai nilai sebenar rujukan penunjuk. Oleh kerana kami telah mengubah suai nilai asal, apabila kami mencetak p1
dalam fungsi utama
, ia akan menunjukkan nilai yang dikemas kini. Atas ialah kandungan terperinci Memahami lulus melalui rujukan dalam bahasa Go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!