Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Asterisk (*) berfungsi dengan Penunjuk dalam Go?

Bagaimanakah Asterisk (*) berfungsi dengan Penunjuk dalam Go?

Susan Sarandon
Susan Sarandonasal
2024-12-02 14:26:11696semak imbas

How Does the Asterisk (*) Work with Pointers in Go?

Memahami Peranan Asterisk dalam Go

Bahasa pengaturcaraan Go menggunakan asterisk (*) untuk melaksanakan beberapa operasi kritikal. Ini termasuk menandakan penunjuk kepada pembolehubah, memudahkan tugasan tidak langsung dan mendayakan penyahrujukan penuding.

Penunjuk dan Tugasan Tidak Langsung

Dalam kod contoh yang disediakan:

s := "hello"
var p *string = &s

Asterisk '', apabila digunakan sebelum jenis (rentetan), mengisytiharkan penunjuk kepada jenis itu. Dalam kes ini, 'p' menjadi alamat memori yang menghala ke rentetan 's'.

Tugasan 'p = &s' menggunakan operator '&' untuk mengambil alamat 's' dan menyimpannya dalam 'p'. Ini mewujudkan hubungan antara 'p' dan 's', di mana perubahan yang dibuat melalui satu akan mencerminkan yang lain.

Penyahrujukan Penunjuk

Asterisk '*', apabila digunakan sebelum pembolehubah atau ungkapan, memberikan akses kepada nilai yang ditunjukkannya. Contohnya:

*p = "ciao"

Dalam baris ini, asterisk sebelum 'p' menyahrujuk penuding dan memberikan nilai "ciao" kepada rentetan yang ditunjuk 'p'. Tugasan tidak langsung ini mengubah suai rentetan asal 's'.

Rujukan

Operator ampersand '&' juga boleh dilihat dalam kod yang disediakan, dengan tujuan yang berbeza.

&s

Apabila diawalan pada pembolehubah atau ungkapan, '&' mengembalikan rujukan kepadanya. Dalam contoh ini, '&s' menyediakan cara untuk mendapatkan alamat memori rentetan 's'.

Jadi, sementara asterisk '*' terlibat terutamanya dalam penciptaan penunjuk dan penyahrujukan, ampersand '&' memudahkan penjanaan rujukan.

Atas ialah kandungan terperinci Bagaimanakah Asterisk (*) berfungsi dengan Penunjuk dalam 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