เห็นว่า Go เพิ่มปล่อย version 1.16 RC 1 มาให้ลองใช้งานกัน
ก็เลยลองเล่นกันหน่อยว่า มีอะไรที่เปลี่ยนแปลงไปบ้าง
ในการใช้งานทั่วไป มาดูกัน
โดยก่อนหน้าที่อธิบายเรื่อง Embed package ไปแล้ว
ในการทดสอบ ถ้าเจอ code ใช้ในงาน os.Exit(int) แล้ว การทดสอบนั้นจะ fail ทันที
ซึ่งแตกต่างจากเดิมคือ ไม่สนใจ
ทำให้การทดสอบนั้น ๆ ผ่าน
รวมทั้งการ run test ได้ต้อง runใน project ที่เป็น go module เท่านั้น
[gist id="f9f4bca9a3bad0909b8a3e7587a62b1f" file="2.txt"]เพิ่ม env ตัวใหม่ชื่อว่า GOVCS เข้ามา
สำหรับกำหนดว่า จะทำการ download source code ของ library ต่าง ๆ มาจากไหน
โดยค่า default คือ git และ hg
เพิ่ม Package ใหม่ชื่อว่า io/fs เข้ามา สำหรับการอ่านไฟล์และ directory เท่านั้น
โดยการใช้งานผ่าน interface ชื่อว่า fs.FS ดังนี้
[gist id="f9f4bca9a3bad0909b8a3e7587a62b1f" file="fs.go"]
ยังไม่พอนะ ได้เตรียม package testing/fstest ใช้สำหรับการทดสอบให้อีกด้วย
ซึ่งจะทำการจำลองในหน่วยความจำให้แทน
ทำให้การทดสอบง่ายขึ้นไปอีก
ส่วน package io/ioutil นั้นถูก deprecated แล้ว
ใครใช้งานอยู่หรือคิดจะใช้งาน ก็เปลี่ยนได้แล้ว
จากที่ทดสอบการ build พบว่า ขนาดของไฟล์ binary ที่ได้เล็กลงอีกแล้ว !!
อ่านการเปลี่ยนแปลงเพิ่มได้ที่ Go 1.16 Release Notes