การเปิดตัวภาษาการเขียนโปรแกรม Go 1.23 พร้อมรองรับการวัดและส่งข้อมูลทางไกล

หลังจากหกเดือนของการพัฒนา ภาษาโปรแกรม Go 1.23 ก็ได้เปิดตัว ซึ่งกำลังพัฒนาโดย Google โดยการมีส่วนร่วมของชุมชนในฐานะโซลูชันไฮบริดที่รวมเอาประสิทธิภาพสูงของภาษาที่คอมไพล์เข้ากับข้อดีของภาษาสคริปต์เช่น ความง่ายในการเขียนโค้ด ความเร็วในการพัฒนา และการป้องกันข้อผิดพลาด รหัสโครงการเผยแพร่ภายใต้ใบอนุญาต BSD

ไวยากรณ์ของ Go ขึ้นอยู่กับองค์ประกอบที่คุ้นเคยของภาษา C โดยมีการยืมมาจากภาษา Oberon ภาษาค่อนข้างกระชับ แต่โค้ดอ่านและเข้าใจง่าย โค้ด Go ถูกคอมไพล์เป็นไฟล์ปฏิบัติการไบนารีแยกต่างหากที่ดำเนินการแบบเนทีฟโดยไม่ต้องใช้เครื่องเสมือน (การทำโปรไฟล์ โมดูลการดีบัก และระบบย่อยการตรวจจับปัญหารันไทม์อื่น ๆ ถูกรวมเข้าเป็นส่วนประกอบรันไทม์) ซึ่งช่วยให้มีประสิทธิภาพเทียบเท่ากับโปรแกรม C

โปรเจ็กต์นี้ได้รับการพัฒนาในขั้นต้นโดยมุ่งเน้นไปที่การเขียนโปรแกรมแบบมัลติเธรดและการทำงานที่มีประสิทธิภาพบนระบบมัลติคอร์ รวมถึงการจัดเตรียมวิธีการระดับผู้ปฏิบัติงานสำหรับการจัดระเบียบการประมวลผลแบบขนานและการโต้ตอบระหว่างวิธีการดำเนินการแบบขนาน ภาษายังให้การป้องกันในตัวต่อบล็อกหน่วยความจำที่จัดสรรมากเกินไป และให้ความสามารถในการใช้ตัวรวบรวมขยะ

ท่ามกลางการเปลี่ยนแปลงในรุ่นใหม่:

  • ในลูป "for" เมื่อกำหนดช่วงของค่า ตอนนี้คุณสามารถระบุฟังก์ชันเป็นอาร์กิวเมนต์ให้กับนิพจน์ "range" เพื่อใช้ฟังก์ชันนี้เป็นตัววนซ้ำ ซึ่งช่วยให้คุณสร้างตัววนซ้ำของคุณเองสำหรับลำดับใดๆ ได้ สามารถระบุฟังก์ชันประเภทต่อไปนี้ได้: func(func() bool), func(func(K) bool) และ func(func(K, V) bool) มีการเพิ่มแพ็คเกจ iter ใหม่ซึ่งมีการดำเนินการพื้นฐานสำหรับการจัดระเบียบการวนซ้ำตามลำดับ นอกจากนี้ คุณลักษณะใหม่สำหรับการทำงานกับตัววนซ้ำได้ถูกเพิ่มให้กับแพ็คเกจสไลซ์และแมป ตัวอย่างเช่น หากต้องการวนซ้ำคีย์ของอาร์เรย์ที่เชื่อมโยงในรูปแบบที่เรียงลำดับ คุณสามารถระบุ “for i, x := range Slices.Sorted(maps.Keys(m)) {…}” ได้
  • เพิ่มการสนับสนุนเบื้องต้น (เปิดใช้งานผ่าน GOEXPERIMENT=aliastypeparams) สำหรับการใช้นามแฝงประเภทด้วยพารามิเตอร์ของตนเองในฟังก์ชันทั่วไป ซึ่งคุณสามารถสร้างฟังก์ชันเพื่อทำงานกับหลายประเภทพร้อมกันได้
  • ชุดเครื่องมือนี้มีฟังก์ชันในตัวสำหรับการส่งข้อมูลทางไกลไปยัง เซิร์ฟเวอร์ telemetry.go.dev เก็บข้อมูล telemetry ไว้ในไฟล์ที่ตรวจสอบได้ในเครื่อง และครอบคลุมเฉพาะข้อมูลเกี่ยวกับการใช้งาน toolkit เท่านั้น (ข้อมูล telemetry จะไม่ถูกเพิ่มเข้าไปในแอปพลิเคชันของผู้ใช้ที่รวบรวมโดยใช้ toolkit) โดยค่าเริ่มต้น การส่งข้อมูล telemetry ไปยังเซิร์ฟเวอร์ภายนอกจะถูกปิดใช้งาน (ต้องเลือกเปิดใช้งาน) และต้องเปิดใช้งานโดยใช้คำสั่งใหม่ "go telemetry on" การส่งข้อมูล telemetry จะช่วยระบุความผิดปกติและพฤติกรรมที่ผิดปกติ ประเมินการโต้ตอบของนักพัฒนาซอฟต์แวร์กับ toolkit และทำความเข้าใจว่าฟีเจอร์ใดเป็นที่ต้องการมากที่สุดและฟีเจอร์ใดที่ใช้งานน้อย คาดว่าสถิติที่สะสมไว้จะช่วยให้สามารถปรับปรุง toolkit ให้ทันสมัยขึ้น เพิ่มประสิทธิภาพและใช้งานง่ายยิ่งขึ้น
    การเปิดตัวภาษาการเขียนโปรแกรม Go 1.23 พร้อมรองรับการวัดและส่งข้อมูลทางไกล
  • เพิ่มคำสั่ง "go env -changed" เพื่อแสดงเฉพาะการตั้งค่าที่มีค่าแตกต่างจากค่าเริ่มต้น
  • เพิ่มคำสั่ง "go mod tidy -diff" ซึ่งช่วยให้คุณสามารถส่งออกการเปลี่ยนแปลงในรูปแบบของแพตช์ในรูปแบบ diff แทนที่จะทำการเปลี่ยนแปลงไฟล์
  • เพิ่มตัววิเคราะห์เวอร์ชันให้กับคำสั่ง "go vet" โดยแสดงรายการใหม่เกินกว่าที่จะใช้ใน Go เวอร์ชันที่เลือก ตัวอย่างเช่น เครื่องวิเคราะห์จะออกคำเตือนเกี่ยวกับการใช้ฟังก์ชันflect.TypeForที่นำมาใช้ในเวอร์ชัน 1.22 เมื่อพยายามใช้ในโมดูลที่อ้างว่ารองรับเวอร์ชัน 1.21
  • การใช้งานประเภท time.Timer และ time.Ticker ได้รับการปรับปรุง โดยมีการเปลี่ยนแปลงที่เกี่ยวข้องกับการบัฟเฟอร์และการเพิ่มประสิทธิภาพการรวบรวมขยะ
  • เพิ่มแพ็คเกจ structs ซึ่งกำหนดประเภทสำหรับการเปลี่ยนแปลงคุณสมบัติโครงสร้าง
  • เพิ่มแพ็คเกจที่ไม่ซ้ำใครพร้อมฟังก์ชั่นสำหรับการกำหนดค่าที่เทียบเคียงได้
  • เพิ่มการรองรับคำสั่ง godebug ให้กับไฟล์ go.mod และ go.work เพื่อควบคุมการดีบัก
  • เพิ่มการสนับสนุนแบบทดลองสำหรับ OpenBSD บนระบบ RISC-V 64 บิต (openbsd/riscv64) ปรับปรุงการสนับสนุนให้ดียิ่งขึ้น Linux, macOSARM64, RISC-V และ WASI
  • ประสิทธิภาพบนสถาปัตยกรรม i386 และ amd64 ได้รับการปรับปรุงเมื่อเปิดใช้งาน PGO (การเพิ่มประสิทธิภาพตามโปรไฟล์) เพื่อคำนึงถึงคุณสมบัติที่กำหนดระหว่างการทำงานของโปรแกรม

ที่มา: opennet.ru

ซื้อโฮสติ้งที่เชื่อถือได้สำหรับไซต์ที่มีการป้องกัน DDoS เซิร์ฟเวอร์ VPS VDS 🔥 ซื้อบริการเว็บโฮสติ้งที่เชื่อถือได้ พร้อมระบบป้องกัน DDoS และเซิร์ฟเวอร์ VPS/VDS | ProHoster