มีการนำเสนอภาษาการเขียนโปรแกรม Go 1.22 ซึ่งพัฒนาโดย Google โดยการมีส่วนร่วมของชุมชนในฐานะโซลูชันไฮบริดที่รวมเอาประสิทธิภาพสูงของภาษาที่คอมไพล์เข้ากับข้อดีของภาษาสคริปต์เช่นความง่ายในการเขียนโค้ด ความเร็วในการพัฒนาและการป้องกันข้อผิดพลาด รหัสโครงการเผยแพร่ภายใต้ใบอนุญาต BSD
ไวยากรณ์ของ Go ขึ้นอยู่กับองค์ประกอบที่คุ้นเคยของภาษา C โดยมีการยืมมาจากภาษา Oberon ภาษาค่อนข้างกระชับ แต่โค้ดอ่านและเข้าใจง่าย โค้ด Go ถูกคอมไพล์เป็นไฟล์ปฏิบัติการไบนารีแยกต่างหากที่ดำเนินการแบบเนทีฟโดยไม่ต้องใช้เครื่องเสมือน (การทำโปรไฟล์ โมดูลการดีบัก และระบบย่อยการตรวจจับปัญหารันไทม์อื่น ๆ ถูกรวมเข้าเป็นส่วนประกอบรันไทม์) ซึ่งช่วยให้มีประสิทธิภาพเทียบเท่ากับโปรแกรม C
โปรเจ็กต์นี้ได้รับการพัฒนาในขั้นต้นโดยมุ่งเน้นไปที่การเขียนโปรแกรมแบบมัลติเธรดและการทำงานที่มีประสิทธิภาพบนระบบมัลติคอร์ รวมถึงการจัดเตรียมวิธีการระดับผู้ปฏิบัติงานสำหรับการจัดระเบียบการประมวลผลแบบขนานและการโต้ตอบระหว่างวิธีการดำเนินการแบบขนาน ภาษายังให้การป้องกันในตัวต่อบล็อกหน่วยความจำที่จัดสรรมากเกินไป และให้ความสามารถในการใช้ตัวรวบรวมขยะ
ท่ามกลางการเปลี่ยนแปลงในรุ่นใหม่:
- เพิ่มการรองรับการกำหนดช่วงของจำนวนเต็มในลูป "for" แล้ว ตัวอย่างเช่น หากต้องการวนซ้ำค่าตั้งแต่ 0 ถึง 9 คุณสามารถใช้ลูป "for i := range 10 {...}" ได้แล้ว
- เพิ่มการรองรับการทดลองสำหรับฟังก์ชันช่วงในลูป "for" (GOEXPERIMENT=rangefunc) ช่วยให้คุณสามารถกำหนดฟังก์ชันเป็นตัววนซ้ำได้ ตัวอย่างเช่น "for i, x := range slices.Backward(s) {…}"
- ปัญหาที่เกิดขึ้นมานานเกี่ยวกับลูป for ที่ทำให้การเรียกใช้ goroutine เพื่อแชร์ตัวแปรลูประหว่างการวนซ้ำได้รับการแก้ไขแล้ว ตัวอย่างเช่น ค่าโค้ด := []string{"a", "b", "c"} สำหรับ _, v := ช่วงค่า { go func() { fmt.Println(v) done
ที่มา: opennet.ru
