Rumah >pembangunan bahagian belakang >Golang >Perbezaan antara penunjuk golang dan rujukan

Perbezaan antara penunjuk golang dan rujukan

下次还敢
下次还敢asal
2024-04-21 00:52:05779semak imbas

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.

Perbezaan antara penunjuk golang dan rujukan

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 ialah pembolehubah yang memegang alamat pembolehubah lain. Ia menunjuk terus kepada pembolehubah.
  • Rujukan ialah alias yang menyimpan penuding kepada pembolehubah lain. Rujukan tidak menunjuk terus kepada pembolehubah.

Penunjuk

  • Gunakan tatatanda * untuk mentakrif dan membatalkan rujukan. * 符号定义和取消引用指针。
  • 指针指向变量的值,而不是直接包含该值。
  • 对指针进行修改会影响被指向的变量。
  • 指针可以指向任何类型的变量,包括其他指针。

引用

  • 使用 & 符号获取变量的地址,使用 * 符号引用已获取的地址。
  • 引用始终指向变量的地址。
  • 修改引用不会影响被指向的变量。
  • 引用只能指向其他变量,不能指向指针。

示例

<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
  • Penunjuk menunjuk kepada nilai pembolehubah, bukannya mengandungi nilai secara langsung.
🎜Mengubah suai penunjuk akan menjejaskan pembolehubah bertitik. 🎜🎜Penunjuk boleh menunjuk kepada pembolehubah dari sebarang jenis, termasuk penunjuk lain. 🎜🎜🎜🎜Petikan🎜🎜🎜🎜Gunakan simbol & 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: 🎜🎜🎜p ialah penunjuk kepada x, untuk *p Pengubahsuaian mengemas kini nilai x. 🎜🎜q ialah rujukan kepada 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!

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
Artikel sebelumnya:Kebaikan dan keburukan golangArtikel seterusnya:Kebaikan dan keburukan golang