มาดูความสามารถที่น่าสนใจใน Go 1.22 กัน ว่ามีอะไรบ้าง
- For loop
- math/rand/v2 package ใหม่ สำหรับการ random
- go/version package ใหม่ สำหรับการตรวจสอบ version
- การเปลี่ยนแปลงของ net/http package
มาดูกันเลย
เรื่องที่ 1 การเปลี่ยนแปลงของ For loop
เปลี่ยนเรื่องเดียวของ Go 1.22 กระทบต่อโครงสร้างของภาษา
เพิ่ม range-over-function iterators เข้ามา
ทำให้วน loop ผ่าน range เหมือนภาษา Python ได้
ตัวอย่าง code
ผลการ run เป็นดังนี้
ต่อมาคือ loop variable ใน Go 1.22
จากเดิมเป็น preview feature ใน Go 1.21
จะทำการสร้าง variable ขึ้นมาใหม่ ในแต่ละรอบของ loop
ที่ทำงานกับ go routine
เพื่อแก้ไขปัญหาการทำงานแบบ concurrent และ การ share ข้อมูลกันนั่นเอง
ตัวอย่าง code
มาดูผลการทำงาน
จะพบว่าค่าของตัวแปร i นั้น จะเป็นคนละตัวกัน ไม่ได้ใช้งานร่วมกัน
และใน go vet ก็สนับสนุน loop variable ด้วยเช่นกัน
เรื่องที่ 2 คือ math/rand/v2 package ทำการเพิ่ม global function N() เข้ามา
เรื่องที่ 3 การเปลี่ยนแปลงของ net/http package
สามารถทำการใส่ HTTP methods เข้าในไปการกำหนด router ได้เลย
ไม่ต้องมาเขียน if กันอีกแล้ว
ยกตัวอย่างการเขียนแบบเดิม
มาดู code ในGo 1.22 ที่เปลี่ยนแปลงกัน
ทำการ upgrade และใช้งานกันดูครับ
ขอให้สนุกกับการ coding
Reference Websites