[ Golang ] หัดเขียน Golang | Part.2 [ Pointer ]

Siriwat J.
1 min readJan 26, 2021

--

สวัสดีครับทุกคนน เรามา Note Golang 💕 กันต่ออ สำหรับ Part .1 ลิ้งค์ตามด้านล่างเลยย 👇

[ Golang ] หัดเขียน Golang | Part.1 | by Siriwat J. | Jan, 2021 | Medium

โดยคร่าวๆ ตัวแปร Pointer คือตัวแปรที่เก็บค่า Address ของตัวแปร (?)

การเข้าถึงค่า Address ใน Go

เราจะใช้ ampersand (&) ในการแสดงค่า address เช่น

var myInt int = 8

สมมุติเราให้ myInt อยู่ที่ Address ที่ 0xc0000b4008

fmt.Println(&myInt) //output จะได้ 0xc0000b4008

การประกาศตัวแปร Pointer

var ชื่อตัวแปร *<type>

เช่น

var myPointerOfInt *int
var myPointOfFloat *float64

Note : ค่า zero value ของ pointer คือ <nil>

เราสามารถเก็บค่า Address ได้ดังนี้

ในที่นี้เราสมมุติให้ myInt อยู่ที่ Address 0xc0000b4008

var myInt int = 8 // สร้างตัวแปร intvar myPointerOfInt *int // สร้าง Pointer myPointerOfInt = &myInt // ให้ Pointer ที่ชื่อ myPointerOfInt เก็บ Address ของ myIntfmt.Println(myPorinterOfInt)//Output 0xc0000b4008

การเปลี่ยนค่าของตัวแปร ที่ Pointer ชี้อยู่

เราสามารถเปลี่ยนค่าตัวแปรได้โดยใช้ (*) วางไว้หน้า Pointer

จากด้านบน myInt = 8

เราสามารถเข้าถึงค่า myInt จาก pointer ได้โดยใช้ *myPointerOfInt

var myInt int = 8 var myPointerOfInt *int myPointerOfInt = &myInt fmt.Println(myInt) // Output 8fmt.Println(*myPointerOfInt) // output (มันคือค่าของ myInt)
*myPointerOfInt = 9 // กำหนดค่าใหม่
fmt.Println(myInt) // Output 9fmt.Println(*myPointerOfInt) // Output 9

ไว้เจอกันใน Part ต่อไปค้าบบ 👋

--

--