penggunaan penunjuk golang

WBOY
Lepaskan: 2023-05-19 09:02:36
asal
913 orang telah melayarinya

Golang ialah bahasa pengaturcaraan sumber terbuka dengan ciri seperti kecekapan, kesederhanaan dan keselamatan Oleh itu, ia digunakan secara meluas dalam pembangunan web, pengkomputeran awan, pengaturcaraan rangkaian, sistem pengendalian dan bidang lain. Di Golang, penunjuk adalah konsep yang sangat penting. Sangat penting bagi pembangun untuk menguasai penggunaan penunjuk Golang.

1. Definisi dan pengisytiharan penunjuk

Di Golang, penunjuk ialah pembolehubah yang digunakan untuk menyimpan alamat pembolehubah lain. Oleh kerana penunjuk menyimpan alamat pembolehubah, bukan nilai pembolehubah itu sendiri, nilai pembolehubah penunjuk haruslah alamat. Penunjuk juga mempunyai jenisnya sendiri, dan jenisnya bergantung pada jenis pembolehubah yang ditunjukkannya. Di Golang, cara untuk mentakrif dan mengisytiharkan pembolehubah penunjuk adalah seperti berikut:

var ptr *int             // 定义一个指向整型的指针变量
var ptr1 *string         // 定义一个指向字符串的指针变量
Salin selepas log masuk

Peraturan penamaan pembolehubah penunjuk adalah sama seperti pembolehubah lain, bermula dengan huruf atau garis bawah, dan boleh mengandungi huruf, nombor, dan menggariskan.

2. & dan * operator

Di Golang, pengendali & dan ialah teras operasi penunjuk. Operator & digunakan untuk mendapatkan alamat pembolehubah, dan operator digunakan untuk mendapatkan nilai pembolehubah yang ditunjuk oleh pembolehubah penunjuk. Kod berikut menunjukkan cara menggunakan operator & dan *:

var num int = 10          // 定义一个整型变量
var ptr *int               // 定义一个指向整型的指针变量
ptr = &num               // 将num的地址赋值给ptr
fmt.Println("num的值:", num)            // 输出:10
fmt.Println("ptr的值:", ptr)            // 输出:0xc042036018
fmt.Println("ptr指向的值:", *ptr)      // 输出:10
Salin selepas log masuk

mula-mula mentakrifkan nombor pembolehubah integer, dan kemudian mentakrifkan pembolehubah penunjuk ptr yang menunjuk ke integer. Gunakan operator & untuk mendapatkan alamat num dan berikannya kepada pembolehubah ptr. Akhir sekali, gunakan operator * untuk mendapatkan nilai pembolehubah yang ditunjuk oleh ptr.

3. Penunjuk nol

Di Golang, jika pembolehubah penunjuk tidak dimulakan, nilainya akan ditetapkan kepada nil, menunjukkan bahawa ia menunjuk ke alamat yang tidak sah. Berikut ialah contoh mudah menggunakan penunjuk nil:

var ptr *int          // 定义一个指向整型的指针变量
if ptr == nil {
   fmt.Println("ptr是一个空指针")
}
Salin selepas log masuk

Dalam kod contoh ini, kami mentakrifkan ptr pemboleh ubah penunjuk yang menunjuk kepada integer. Oleh kerana tiada alamat memori diberikan kepadanya, ia ditetapkan secara automatik kepada nil. Dalam pernyataan if, kami menyemak sama ada pembolehubah penunjuk dimulakan dengan menilai sama ada ptr kosong.

4. Penunjuk sebagai parameter fungsi

Dalam Golang, penunjuk boleh digunakan untuk menghantar parameter fungsi. Dengan cara ini nilai pembolehubah asal boleh diubah suai dalam fungsi dan bukannya hanya menyalinnya. Berikut ialah contoh menggunakan penunjuk sebagai parameter fungsi:

func main() {
   var num int = 10
   fmt.Println("调用函数前 num 的值:", num)    // 输出:10
   changeNum(&num)
   fmt.Println("调用函数后 num 的值:", num)    // 输出:20
}

func changeNum(p *int) {
   *p = 20
}
Salin selepas log masuk

Dalam contoh ini, kami mentakrifkan fungsi yang dipanggil changeNum, yang mempunyai parameter penunjuk integer p. Dalam fungsi utama, kami mentakrifkan nombor pembolehubah integer dan menghantar alamatnya kepada fungsi changeNum. Dalam fungsi changeNum, kami mengubah suai nilai pembolehubah nombor asal menggunakan penunjuk p.

5. Fungsi baharu

Di Golang, anda boleh menggunakan fungsi baharu untuk memperuntukkan ruang memori untuk pembolehubah penunjuk pada timbunan. Fungsi baru mengembalikan penunjuk ke memori yang baru diperuntukkan. Berikut ialah contoh penggunaan fungsi baharu:

ptr := new(int)            // 为整型指针变量分配内存空间
*ptr = 10                // 给它指向的整数变量赋值
fmt.Println("ptr的值:", ptr)          // 输出:0xc042036030
fmt.Println("ptr指向的值:", *ptr)    // 输出:10
Salin selepas log masuk

Dalam contoh ini, kami menggunakan fungsi baharu untuk memperuntukkan ruang memori untuk pembolehubah penunjuk integer ptr. Kami kemudian mengendalikannya, memberikan nilai kepada pembolehubah integer yang ditunjukkannya, dan mencetak nilainya.

Ringkasnya, penunjuk ialah konsep yang sangat penting di Golang dan mempunyai pelbagai aplikasi dalam pengaturcaraan sistem dan struktur data. Menguasai penggunaan penunjuk Golang boleh membantu pembangun lebih memahami mekanisme pengendalian Golang dan menulis program Golang dengan lebih cekap.

Atas ialah kandungan terperinci penggunaan penunjuk golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!