Kedua-dua penunjuk dan rujukan digunakan untuk mengakses pembolehubah secara tidak langsung: penuding menghala ke alamat pembolehubah dan pembolehubah diakses secara langsung. Rujukan ialah alias yang menyimpan penunjuk kepada pembolehubah dan mengakses pembolehubah secara tidak langsung. Penunjuk ditakrifkan dan dinyahrujuk dengan *, dan pengubahsuaian penunjuk mempengaruhi pembolehubah. Untuk merujuk, menggunakan & untuk mendapatkan alamat, * untuk merujuk alamat, dan mengubah suai rujukan tidak menjejaskan pembolehubah. Penunjuk boleh menunjuk kepada mana-mana pembolehubah, termasuk penunjuk hanya boleh menunjuk kepada pembolehubah.
Golang Penunjuk dan Rujukan
Perbezaan antara penunjuk dan rujukan
Kedua-dua penunjuk dan rujukan adalah mekanisme dalam Golang untuk akses tidak langsung kepada pembolehubah. Perbezaan utama ialah:
Penunjuk
*
符号定义和取消引用指针。引用
&
符号获取变量的地址,使用 *
符号引用已获取的地址。示例
<code class="go">package main import "fmt" func main() { // 创建一个变量 x := 10 // 创建一个指向 x 的指针 p := &x // 创建一个引用 x 的引用 q := &x // 通过指针修改变量 *p = 20 // 引用不会影响变量 *q++ // 打印结果 fmt.Println("x:", x) // 输出: 20 }</code>
在这个示例中:
p
是一个指向 x
的指针,对 *p
的修改会更新 x
的值。q
是指向 x
的引用,对 *q
的修改不会更新 x
&
untuk mendapatkan alamat pembolehubah dan gunakan simbol *
untuk merujuk alamat yang diperoleh. 🎜🎜Rujukan sentiasa menunjuk kepada alamat pembolehubah. 🎜🎜Mengubah suai rujukan tidak akan menjejaskan pembolehubah bertitik. 🎜🎜Rujukan hanya boleh menunjuk kepada pembolehubah lain, bukan penunjuk. 🎜🎜🎜🎜Contoh🎜🎜rrreee🎜Dalam contoh ini: 🎜🎜🎜x
, untuk *p
Pengubahsuaian mengemas kini nilai x
. 🎜🎜x
dan pengubahsuaian kepada *q
tidak akan mengemas kini nilai x
. 🎜🎜Atas ialah kandungan terperinci Perbezaan antara penunjuk golang dan rujukan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!