DEV Community

Discussion on: ทำไม Go ต้องมี pointer และเราใช้ pointer ใน Go ตอนไหนบ้าง

Collapse
 
dtonna profile image
Noppadol Anuroje

Pass by value และ Pass by reference

Collapse
 
iporsut profile image
Weerasak Chongnguluam

ไม่ถูกต้องครับ Go และ C ไม่เคยมี pass by reference

Collapse
 
dtonna profile image
Noppadol Anuroje

ขอบคุณครับ เรื่องนี้ทำให้ผมเข้าใจผิดอยู่นาน
เพราะสาเหตุที่เราส่ง pointer เข้าไปใน function นั้น มันดูเหมือนกับการ pass by reference แต่จริงๆแล้วมันคือ การ copy address ไว้ใน object ใหม่ ไม่ได้มีการส่ง object มาที่ function จริงๆ ที่ถูกควรเป็น pass by value
ที่น่าตลกก็คือ สิ่งที่ทำให้ผมคิดว่าเป็น pass by reference อีกอย่างคือ ตัว pointer มันเป็น reference type ก็เลยคิดว่ามัน pass by reference

Collapse
 
iporsut profile image
Weerasak Chongnguluam

อันนี้ครับเว็บทางการ Go ก็บอกเอาไว้
golang.org/doc/faq#Pointers