ฉันยังงงเหมือนว่าทำไมเราถึงnew
ไปกัน
เมื่อคุณต้องการสร้างอินสแตนซ์ของโครงสร้างให้ทำ
t := Thing{}
และคุณสามารถรับตัวชี้ไปยังอินสแตนซ์ใหม่โดยการทำ
t := &Thing{}
แต่ยังมีความเป็นไปได้นี้:
t := new(Thing)
อันสุดท้ายดูเหมือนว่าคนต่างด้าวตัวเล็ก ๆ กับภาษาที่เหลือ &Thing{}
มีความชัดเจนและรัดกุมเหมือนกันnew(Thing)
และใช้โครงสร้างที่คุณมักใช้ที่อื่นเท่านั้น นอกจากนี้ยังขยายมากขึ้นในขณะที่คุณอาจจะเปลี่ยนไปหรือ&Thing{3}
&Thing{Feets:7}
ในความคิดของฉันการมีคำหลักเสริม1นั้นมีค่าใช้จ่ายสูงมันทำให้ภาษามีความซับซ้อนมากขึ้นและเพิ่มในสิ่งที่คุณต้องรู้ และมันอาจปิดบังผู้มาใหม่ว่ามีอะไรอยู่เบื้องหลังอินสแตนซ์ของโครงสร้าง
นอกจากนี้ยังทำให้คำที่สงวนไว้อีกหนึ่งคำ
ดังนั้นเหตุผลที่อยู่เบื้องหลังnew
คืออะไร? บางครั้งมันมีประโยชน์หรือไม่ เราควรใช้มันหรือไม่?
1 : ใช่ฉันรู้ว่าไม่ใช่คำหลักในระดับไวยากรณ์คุณสามารถเงาได้แต่นั่นไม่ได้เปลี่ยนความจริงสำหรับนักพัฒนาที่เหมาะสมคำที่สงวนไว้