ทาง Go นั้นทำการปล่อย Go 1.21 RC 2 ออกมาให้ใช้งานแล้ว
จากที่เคยแนะนำไปใน blog ก่อนหน้านี้
เช่น standard package ใหม่ ๆ ดังนี้
- log/slog
- slices
- maps
- cmp
รวมทั้งมี build-in function ใหม่ ๆ มาให้อีก คือ min, max และ clear
แต่ก็มี preview feature ที่น่าสนใจ ที่จะเพิ่มเข้ามาใน Go 1.22 นั่นเอง
ซึ่งถือว่า เข้ามาเปลี่ยนตัวภาษา Go เลย
นั่นก็คือ Loop variable
เพื่อไม่ให้ทำการ share variable ข้ามรอบของ loop !!
รวมทั้ง loop กับ go routine อีก
โดยมีกรณีที่ก่อให้เกิดข้อผิดพลาดตาม Common Mistakes
มาดูตัวอย่างการใช้งานกัน
เป็นการเขียน test เพื่อตรวจสอบค่าเป็นเลขคู่ หรือ คี่
แล้วให้ run แบบ parallel
จะพบว่า ผ่านทั้งหมด ซึ่งไม่ถูกต้อง
[gist id="5ee74a6b88e0d7c21bc71cf970bd2bf0" file="1.txt"]การแก้ไขง่าย ๆ ก็เพียงสร้างตัวแปรมารับ เพราะว่าใน IDE ก็จะแจ้งเตือนด้วยนะ !!
[gist id="5ee74a6b88e0d7c21bc71cf970bd2bf0" file="2.go"]แต่ถ้าไม่แก้ไข code ก็ทำการเปลี่ยน experimemt feature ไปเลย คือ loopvar ดังนี้
[gist id="5ee74a6b88e0d7c21bc71cf970bd2bf0" file="3.txt"]และยังมี Profile Guided Optimization (PGO) ที่เป็น preview feature ใน Go 1.20
ตอนนี้คือตัว final แล้ว
ลอง Download มาใช้งานกันดูครับ
หรือผ่าน command line ก็ได้