Pointer adalah variabel yang menyimpan alamat memori variabel lain. Ada beberapa operasi penting, yang sering kita lakukan dengan pointer: (a) kita mendefinisikan variabel pointer, (b) menetapkan alamat variabel ke pointer, dan (c) mengakses nilai pada alamat yang disimpan dalam variabel pointer . Semua operasi ini dilakukan menggunakan operator unary * yang mengembalikan nilai variabel yang terletak di alamat yang ditentukan oleh operan-nya.
Contoh berikut menunjukkan bagaimana melakukan operasi ini –
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
package main import "fmt" func main() { var a int = 20 /* deklarasi variabel aktual*/ var ip *int /* pointer variable deklarasi */ ip = &a /* menyimpan alamat variabel dalam pointer*/ fmt.Printf("Address of a variable: %x\n", &a ) /* alamat disimpan dalam variabel pointer */ fmt.Printf("Address stored in ip variable: %x\n", ip ) /* mengakses nilai menggunakan pointer */ fmt.Printf("Value of *ip variable: %d\n", *ip ) } |
Ketika kode di atas dikompilasi dan dieksekusi, ia menghasilkan hasil sebagai berikut –
1 2 3 |
Address of var variable: 10328000 Address stored in ip variable: 10328000 Value of *ip variable: 20 |
Nil Pointers dalam Go
Go compiler menetapkan nilai Nil ke variabel pointer jika Anda tidak memiliki alamat yang tepat untuk ditugaskan. Ini dilakukan pada saat deklarasi variabel. Pointer yang ditugaskan nil disebut pointer nil.
Pointer nil adalah konstanta dengan nilai nol yang didefinisikan dalam beberapa library standar. lihat program berikut –
1 2 3 4 5 6 7 8 9 |
package main import "fmt" func main() { var ptr *int fmt.Printf("The value of ptr is : %x\n", ptr ) } |
Ketika kode di atas dikompilasi dan dieksekusi, ia menghasilkan hasil sebagai berikut –
1 |
The value of ptr is 0 |
Pada sebagian besar sistem operasi, program tidak diizinkan untuk mengakses memori pada alamat 0 karena memori itu dicadangkan oleh sistem operasi. Namun, alamat memori 0 memiliki arti khusus; itu menandakan bahwa pointer tidak dimaksudkan untuk menunjuk ke lokasi memori yang dapat diakses. Tetapi dengan konvensi, jika sebuah pointer berisi nilai nihil (nol), itu dianggap tidak menunjuk apa-apa.
Untuk memeriksa nil pointer, Anda dapat menggunakan pernyataan if sebagai berikut –
1 2 |
if(ptr != nil) /* succeeds if p is not nil */ if(ptr == nil) /* succeeds if p is null */ |
Oke itulah tadi pembahasan saya tentang Fungsi Pointer Bahasa Pemrograman Golang Part 2, semoga bermanfaat.