- การเปลี่ยนแปลงของภาษา
- ตอนนี้ Go 1.24 รองรับ generic type alias อย่างสมบูรณ์แล้ว โดย type alias สามารถรับพารามิเตอร์ได้เช่นเดียวกับ type ที่นิยามไว้
- การปรับปรุงประสิทธิภาพ
- มีการปรับปรุงประสิทธิภาพหลายด้านใน runtime ทำให้ลด CPU overhead ลงได้เฉลี่ย 2-3% ในเบนช์มาร์กตัวแทน
- รวมถึงการใช้งาน map แบบ built-in ใหม่ การเพิ่มประสิทธิภาพการจัดสรรหน่วยความจำสำหรับอ็อบเจ็กต์ขนาดเล็ก และการใช้งาน mutex ภายใน runtime แบบใหม่
- การปรับปรุงเครื่องมือ
- คำสั่ง
go มี mechanism สำหรับติดตาม tool dependency ของโมดูล โดยสามารถใช้ go get -tool เพื่อเพิ่มคำสั่ง tool ให้กับโมดูลปัจจุบันได้
- ตัววิเคราะห์การทดสอบใหม่ของคำสั่งย่อย
go vet จะรายงานข้อผิดพลาดที่พบบ่อยในประกาศ test, fuzzer, benchmark และ example ของแพ็กเกจทดสอบ
- การเพิ่มใน standard library
- standard library มี mechanism ใหม่สำหรับการรองรับตามข้อกำหนด FIPS 140-3 โดยไม่ต้องแก้ไขซอร์สโค้ดเพื่อใช้อัลกอริทึมที่ได้รับการรับรอง
- ตอนนี้หลายแพ็กเกจที่เคยอยู่ในโมดูล x/crypto สามารถใช้งานได้จาก standard library แล้ว
- ตอนนี้ benchmark สามารถใช้เมธอด
testing.B.Loop ที่เร็วกว่าและเกิดข้อผิดพลาดน้อยกว่าได้
- type
os.Root ใหม่มอบความสามารถในการทำงานกับระบบไฟล์ภายใต้ไดเรกทอรีที่กำหนด
- runtime มี mechanism การ cleanup ใหม่ชื่อ
runtime.AddCleanup ซึ่งยืดหยุ่น มีประสิทธิภาพ และเกิดข้อผิดพลาดน้อยกว่า runtime.SetFinalizer
- การปรับปรุงการรองรับ WebAssembly
- Go 1.24 เพิ่ม directive
go:wasmexport ที่ทำให้โปรแกรม Go สามารถ export ฟังก์ชันไปยังโฮสต์ WebAssembly ได้ และรองรับการบิลด์โปรแกรม Go เป็น WASI reactor/library
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
text/templateรองรับชนิดfuncแล้วrangeสำหรับชนิดfuncเข้ามา แต่เพิ่งจะมาใช้งานได้ใน Go templates ตอนนี้เองgo install -tags 'postgres' github.com/golang-migrate/migrate/v4/cmd/migrate@latestos.RootคืออะไรChrootเลยจินตนาการว่าสุดท้ายคงมีคนหาวิธี escape ออกจาก Root ได้tools.goหน้าตาไม่สวยได้GODEBUG=fips140=onlyอัลกอริทึมเข้ารหัสที่ไม่เป็นไปตาม FIPS 140-3 จะคืนค่า error หรือ panicGOAUTHgo help goauthแล้วก็ไม่ได้คาดหวังมากนัก