Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Ruby

ไฮไลท์การเปิดตัว Ruby 3.4:คุณสมบัติหลักและการอัพเดต

ตามธรรมเนียมของ Ruby ทีมหลักได้เปิดตัว Ruby 3.4 ในวันที่ 25 ธันวาคม 2024! หากคุณรัก Ruby เช่นเดียวกับเรา คุณอาจสงสัยว่ามีอะไรใหม่ใน Ruby 3.4 ไม่มีการเปลี่ยนแปลงครั้งใหญ่ในข่าวประชาสัมพันธ์ฉบับนี้ แต่คุณจะต้องการรับทราบถึงสิ่งดีๆ บางประการ

ไฮไลท์การเปิดตัว Ruby 3.4:คุณสมบัติหลักและการอัพเดต

มาเจาะลึกถึงการเปลี่ยนแปลงภาษากันก่อน

การเปลี่ยนแปลงภาษา

การเปลี่ยนแปลงภาษาเป็นการเปลี่ยนแปลงที่เกี่ยวข้องกับนักพัฒนา Ruby ส่วนใหญ่ในทันที มาดูแต่ละอันกันอย่างรวดเร็ว!

ตัวอักษรสตริงที่ถูกตรึง

หากคุณเขียน Ruby มาสักระยะแล้ว คุณอาจเคยเห็นไฟล์ที่ขึ้นต้นด้วย:

# frozen_string_literal: true

ตัวอย่างด้านบนคือความคิดเห็นวิเศษ และมันมีความหมายต่อล่าม Ruby จริงๆ! ความคิดเห็นนี้บอกให้ล่ามปฏิบัติต่อแต่ละสตริงในไฟล์นี้ราวกับว่ามี 09 เรียกมัน หากคุณพยายามแก้ไขสตริงในไฟล์ที่มีความคิดเห็นพิเศษนี้ คุณจะได้รับข้อผิดพลาดรันไทม์

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

พารามิเตอร์บล็อกเริ่มต้น

Ruby 3.4 แนะนำพารามิเตอร์บล็อกเริ่มต้นเพื่อทำให้บล็อกโค้ดสั้นสะอาดขึ้น

ก่อน Ruby 2.7 ให้พิมพ์แต่ละองค์ประกอบของอาร์เรย์ด้วย 12 วิธีการดูเหมือน:

[1, 2, 3].each { |item| puts item }

Ruby 2.7 แนะนำพารามิเตอร์ที่มีตัวเลขเพื่อขจัดความจำเป็นในการตั้งชื่อ หลังจาก Ruby 2.7 คุณสามารถเขียนโค้ดเดียวกันกับ:

[1, 2, 3].each { puts _1 }

การปรับปรุงของ Ruby 2.7 นั้นตรงไปตรงมามากขึ้น แต่ก็ไม่ชัดเจนนัก หากคุณไม่คุ้นเคยกับไวยากรณ์ Ruby นี้ คุณอาจประสบปัญหาในการทำความเข้าใจว่าเกิดอะไรขึ้นที่นี่ Ruby 3.4 กำลังนำเสนอวิธีที่ดียิ่งขึ้นในการทำสิ่งเดียวกันนี้:

[1, 2, 3].each { puts it }

การระบุคำหลัก 24

ใน Ruby เวอร์ชันก่อน 3.4 ให้ใช้ตัวดำเนินการ double splat (31 ) ด้วย 41 ยก 58 . การจัดเรียงนี้สมเหตุสมผลเพราะ 66 ไม่สามารถแปลงเป็นแฮชโดยปริยายได้

Ruby 3.4 ให้การเปลี่ยนแปลงง่ายๆ ในสิ่งนี้ โดยแปลง 71 โดยปริยาย เป็นแฮช กำลังโทร 85 เมื่อไม่มีก็จะเหมือนกับการโทร 97 บนว่างเปล่า แฮช

อัปเดตคลาสหลัก

การอัปเดตคลาสหลักไม่เกี่ยวข้องกับนักพัฒนา Ruby ในทันทีเมื่อมีการเปลี่ยนแปลงภาษา แต่พวกเขาก็คุ้มค่าที่จะเข้าใจ!

ข้อยกเว้น#set_backtrace

คำขอคุณสมบัติในตัวติดตามปัญหา Ruby อธิบายการตั้งค่า backtrace ด้วยอาร์เรย์ของสตริงก่อนการเปลี่ยนแปลงใน Ruby 3.4 เป็น "สูญเสีย" ข้อยกเว้นก่อนหน้านี้ส่งคืนศูนย์ใน 100 .

ใน Ruby 3.4 117 จะยอมรับ 120 array เพื่อให้คุณสามารถสร้าง 137 ขึ้นมาใหม่ได้  อินสแตนซ์และมีข้อยกเว้นที่ทำงานอย่างสมบูรณ์

ช่วง#ขนาด

148 ยังมีพฤติกรรมใหม่ใน Ruby 3.4 หากอยู่ในช่วงที่ 153 กำลังถูกเรียกใช้ ไม่สามารถทำซ้ำได้ ตอนนี้ Ruby จะส่ง 161 . นี่เป็นการเปลี่ยนแปลงพฤติกรรมเล็กน้อยที่คุณจะสังเกตเห็นได้ก็ต่อเมื่อคุณโทรไปที่ 170 บนชุดย่อยเล็กๆ ของช่วง

การเปลี่ยนแปลงอื่นๆ ใหม่ใน Ruby 3.4

การเปลี่ยนแปลงเล็กๆ น้อยๆ อีกประการหนึ่งใน Ruby 3.4 คือวิธีการส่งผ่านไปยังบล็อกที่พวกเขาไม่ได้ใช้ เมื่อทำงานในโหมดรายละเอียด Ruby จะส่งคำเตือนหากคุณส่งบล็อกไปยังวิธีที่ไม่ได้ใช้บล็อก

คุณอาจยินดีที่ทราบว่า Ruby 3.4 ปรับปรุงประสิทธิภาพของ 189 เนื่องจากการดำเนินการเขียนใหม่!

สุดท้ายนี้ การอัปเดตอีกอย่างคือวิธีแสดงข้อความแสดงข้อผิดพลาดและการติดตามย้อนกลับ ตอนนี้ Ruby จะใช้เครื่องหมายคำพูดเดี่ยวแทน backticks เมื่อเกี่ยวข้องและแสดงชื่อคลาสก่อนชื่อวิธีการ

กำลังอัปเกรดเป็น Ruby 3.4

การอัพเกรดเป็น Ruby 3.4 ไม่ควรเป็นการยกระดับที่สำคัญสำหรับคนส่วนใหญ่ ส่วนที่ต้องใช้แรงงานมากที่สุดคือการลบความคิดเห็นเกี่ยวกับเวทมนตร์สตริงที่ไม่จำเป็นทั้งหมดออก! สละเวลาในการอัปเกรดเพื่อใช้ประโยชน์จากสิ่งใหม่ๆ ใน Ruby 3.4 จะจ่ายเงินปันผล ดังนั้นอย่ารอช้า!

และอย่าลืม—หากต้องการรับข่าวสาร Ruby เพิ่มเติมและแม้แต่บทช่วยสอนเช่นนี้ในกล่องจดหมายของคุณ โปรดสมัครรับจดหมายข่าว Honeybadger!