Saya masih bingung mengapa kita harus new
pergi.
Ketika Anda ingin instantiate sebuah struct, Anda lakukan
t := Thing{}
dan Anda bisa mendapatkan pointer ke instance baru dengan melakukan
t := &Thing{}
Tetapi ada juga kemungkinan ini:
t := new(Thing)
Yang terakhir ini tampaknya agak asing bagi seluruh bahasa. &Thing{}
sejelas dan sesingkat new(Thing)
itu dan hanya menggunakan konstruksi yang sering Anda gunakan di tempat lain. Ini juga lebih dapat diperluas karena Anda dapat mengubahnya ke &Thing{3}
atau &Thing{Feets:7}
.
Menurut pendapat saya, memiliki kata kunci tambahan 1 mahal, itu membuat bahasa lebih kompleks dan menambah apa yang harus Anda ketahui. Dan itu mungkin menutupi untuk pendatang baru apa yang ada di balik instantiating sebuah struct.
Itu juga membuat satu kata lagi dilindungi.
Jadi apa alasan di baliknya new
? Apakah terkadang bermanfaat? Haruskah kita menggunakannya?
1 : Ya, saya tahu itu bukan kata kunci di tingkat tata bahasa, Anda bisa membayangi , tetapi itu tidak mengubah fakta itu, untuk pengembang yang masuk akal, kata yang dilindungi undang-undang.