โครงการภาษา Go ออกเวอร์ชั่น 1.22 ปรับปรุงย่อยโดยมีความเปลี่ยนแปลงสำคัญคือการแก้ไขระบบ for-loop ให้รองรับการรันตามจำนวนรอบที่ต้องการอย่างเดียวโดยไม่ต้องสร้าง collection อีก แนวทางนี้ทำให้โค้ดภาษา Go ใกล้เคียงกับไพธอนยิ่งขึ้น
ในเวอร์ชั่นนี้ยังมีการแก้ปัญหาตัวแปรใน loop ที่ภาษา Go เคยแชร์ตัวแปรระหว่างรอบการวน loop ให้เป็นตัวแปรเดียวกัน ซึ่งทำให้โปรแกรมเมอร์หลายคนเจอบั๊กโดยไม่ได้ตั้งใจ หลังจากนี้จะทำให้ตัวแปรถูกสร้างใหม่ทุกครั้งที่วน loop แม้พฤติกรรมจะเปลี่ยนไปบ้างแค่คาดว่าจะแทบไม่กระทบแอปพลิเคชั่นส่วนใหญ่ โดยมีเครื่องมือช่วยตรวจสอบ loop ที่ได้รับผลกระทบให้
สำหรับไลบรารีมาตรฐานเวอร์ชั่นนี้โครงการ Go ใส่ไลบรารี math/rand/v2
เข้ามาเนื่องจากมีการปรับ API จำนวนมากจากเวอร์ชั่นเดิม หลังจากนี้จะมีเครื่องมือสำหรับย้ายไลบรารีเดิมไปเวอร์ชั่นใหม่ให้ โดยยังไม่มีแผนที่จะถอดเวอร์ชั่นเดิมออก
ที่มา - Golang.org
Comments
เยี่ยมเลย อัพเกรดไปละ
..: เรื่อยไป
ไปดูผ่านๆ มาพอมี generic แล้ว syntax โคตรรก
ถ้าใส่ generic แล้ว จะทำยังไงไม่ให้มันรกดีครับ ?
Generics ไม่ได้ใช้บ่อยขนาดนั้นนะครับ ส่วนมากก็ใช้ slice ซะมากกว่า
ต้องไปเจอ C++ ที่เขียน Template หนักๆ
lewcpe.com , @wasonliw
https://tip.golang.org/wiki/RangefuncExperiment#how-is-iterpull-used
go:
c++:
ไม่แน่ใจผมว่าของ c++ มันอ่านง่ายกว่า แล้วมัน newline ได้ไม่มีปัญหา
ไม่แน่ใจ Go นี้ newline ได้หรือเปล่า
และ GO ใช้ square backet สำหรับ generic เหมือน array ดูผ่านๆ ผมก็นึกว่า array
น่าสนใจ ผมว่าต้องลองเทียบดูกับตอนเรียกใช้ด้วยครับ
ผมไม่เคยใช้ Template ใน Go เพราะเขียนแค่ใช้งานเอง พอมาเห็น syntax ใช้เป็น [] นี่ เห็นด้วยว่ามันไม่ค่อยเหมาะเท่าไหร่ เพราะ [] ใช้กับ Array และ Slice ไปละ
แต่ก็นะ หวังว่าคงไม่ได้ใช้งานมันเท่าไหร่ 555
ปล. ส่วน Template ของ C++ ตอนแรก ผมก็ว่ามันดูเข้าใจยากกว่า Generic ในภาษาอื่นนิดๆ (เห็นในภาษาอื่นทีหลัง C++) แต่ไปๆมาๆ ก็แอบคิดว่ามันไม่ได้อ่านยากไปกว่าของชาวบ้านเท่าไหร่
..: เรื่อยไป