Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Memahami lulus melalui rujukan dalam bahasa Go

Memahami lulus melalui rujukan dalam bahasa Go

WBOY
WBOYasal
2024-04-03 13:12:011019semak imbas

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

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 函数中打印 p1rrreee

Dalam kod di atas, p1 ialah rujukan kepada struktur Point. Apabila anda menghantar pembolehubah jenis rujukan, anda sebenarnya menghantar alamat kepada nilai asal.

Contoh Praktikal

  • Pertimbangkan contoh berikut:
  • rrreee
  • Dalam fungsi 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.
  • Nota
🎜🎜🎜Apabila anda melepasi pembolehubah jenis rujukan, anda perlu memastikan bahawa penunjuk sentiasa menunjuk ke alamat memori yang sah. 🎜🎜Mengubah suai pembolehubah jenis rujukan akan menjejaskan nilai asal, jadi sila ubah suai dengan berhati-hati. 🎜🎜Untuk mengelakkan perubahan tidak sengaja kepada nilai asal, anda boleh membuat salinan jenis rujukan dan mengubah suai salinan. 🎜🎜

Atas ialah kandungan terperinci Memahami lulus melalui rujukan dalam bahasa Go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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