Google ได้เปิดตัวตัวอย่างภาษาการเขียนโปรแกรม Go เวอร์ชันใหม่ เวอร์ชัน 1.18 เพิ่มฟังก์ชันสำหรับการเขียนโปรแกรม 'ทั่วไป' ด้วยประเภทที่เรียกว่า 'parameterized'
ในคำพูดของพวกเขาเอง มันคือการเปลี่ยนแปลงที่สำคัญที่สุดและยิ่งใหญ่ที่สุดสำหรับภาษาการเขียนโปรแกรมนับตั้งแต่เปิดตัว Go เวอร์ชัน 1 แนวคิดเบื้องหลังยาสามัญก็คือขณะนี้ช่วยให้ฟังก์ชันการทำงานสำหรับการแสดงฟังก์ชันและโครงสร้างข้อมูลโดยการปรับเปลี่ยนประเภท ซึ่งไม่รวม 'ความทั่วไป' ที่อนุญาตโดยการกำหนดประเภทอินเทอร์เฟซเป็นวิธีการแยกข้อมูลจริงไปยังฟังก์ชัน
Google ระบุว่านักพัฒนา Go ควรตระหนักว่าฟังก์ชันการทำงานนี้จะนำไปสู่จุดบกพร่องใหม่ๆ อย่างไม่ต้องสงสัย ดังนั้นพวกเขาจึงควรเข้าหา 'ยาสามัญ' เหล่านี้ด้วยความระมัดระวัง
ฟังก์ชันอื่นๆ ใน Go 1.18 Beta
นอกเหนือจากฟังก์ชันการทำงานข้างต้นแล้ว การแสดงตัวอย่างใหม่ยังรองรับการเขียนการทดสอบแบบฟัซซิ่งในตัวอีกด้วย การทดสอบเหล่านี้สามารถค้นหาอินพุตที่ทำให้โปรแกรมหยุดทำงานหรือส่งคืนคำตอบที่ไม่ถูกต้องได้โดยอัตโนมัติ Go 1.18 Beta ยังมี 'โหมดพื้นที่ทำงาน' ใหม่ สิ่งนี้ทำให้โปรแกรมเมอร์สามารถทำงานกับโมดูล Go หลายโมดูลพร้อมกันได้ สิ่งนี้มีประโยชน์อย่างยิ่งสำหรับโครงการขนาดใหญ่ตามที่ Google กล่าว
นอกจากนี้ เวอร์ชัน 1.18 Beta ยังเพิ่มฟังก์ชันการทำงานด้วยคำสั่ง go version -m แบบขยาย คำสั่งนี้จัดเก็บรายละเอียดเป็นแฟล็กของคอมไพเลอร์ ขณะนี้โปรแกรมสามารถสืบค้นรายละเอียดการสร้างของตัวเองด้วยคำสั่ง debug.ReadBuildInfo
นอกจากนี้ยังมีการเพิ่มแบบแผนการโทรแบบลงทะเบียนซึ่งมีให้ตั้งแต่ Go 1.17 ในการแสดงตัวอย่าง ในเวอร์ชันก่อนหน้า ฟังก์ชันนี้เหมาะสำหรับการเร่งโค้ด Go บนระบบ x86 และ x64 เท่านั้น ขณะนี้ยังเหมาะสำหรับระบบที่ใช้ ARM64 และ PPC64 สิ่งนี้ควรให้ความเร็วเพิ่มขึ้นถึง 20 เปอร์เซ็นต์