Oracle ออก Java 22 รุ่นซัพพอร์ตระยะสั้น 6 เดือน (Java 21 เป็นรุ่นซัพพอร์ตระยะยาวนาน 2 ปี)
ของใหม่ที่สำคัญของ Java 22 คือ Unnamed Variables & Patterns เปิดให้ตั้งชื่อตัวแปรที่ถูกบังคับให้ต้องมี แต่ไม่ต้องเรียกใช้งาน เป็นสัญลักษณ์ขีดล่าง (_) แทนการต้องตั้งชื่อตัวแปรอะไรก็ได้สักอย่าง
จากภาพตัวอย่างคือตัวแปร order ไม่ถูกเรียกใช้งานจริง แต่ต้องประกาศ (แถมโดนคอมไพเลอร์ด่าซ้ำว่ามีตัวแปรไม่ใช้งาน) ในสเปกของ Java 22 เปิดให้ใช้ตัว _ เพื่อบอกอย่างเจาะจงว่าเป็นตัวแปรที่ไม่ต้องตั้งชื่อได้แล้ว
ของใหม่อย่างอื่นคือ
- Foreign Function & Memory API สำหรับการเชื่อมต่อกับฟังก์ชันที่เป็นภาษาอื่นนอก Java Runtime
- Launch Multi-File Source-Code Programs การเรียกซอร์สโค้ด Java ที่อยู่ในหลายๆ ไฟล์โดยไม่ต้องคอมไพล์ก่อน
- Regional Pinning for G1 การกำหนดเขตพื้นที่ทำงานในหน่วยความจำของ garbage collector G1 เมื่อต้องทำงานกับโค้ด C/C++ เพื่อให้ไม่ต้องปิดการทำงานของ G1 ทุกครั้งไป
Oracle ยังเปิดให้ใช้งาน Oracle GraalVM for JDK 22 ฟรี แบบเดียวกับที่เริ่มทำตอน Java 20 ด้วย
ที่มา - Oracle
Comments
จากตัวอย่าง
return orders.Length()
ไปได้มั้ย 😂 ประหยัดกว่าเยอะอ่าน source code โดยไม่ต้อง compile คือ interpreter?
ถ้าจะจับผิดตัวอย่างอาจจะต้องลงไปดูครับว่า Input data type เป็น Iterable มี method ที่ว่ารึเปล่า
iterator ไม่จำเป็นต้องเป็น container/collection น่ะครับตาม concept มันมีแค่ begin node, end node, increasement (next), dereference (get value) แล้ว next node ไม่จำเป็นต้องเป็น series (ลำดับอนุกรม)
ขอบคุณสำหรับข้อมูลครับ
+1
รู้สึกดีกับการปรับเปลี่ยนกฏและ syntax ใหม่ๆในช่วงหลังๆ เผื่อกรณีที่จำเป็นต้องใช้ Java จริงๆ
..: เรื่อยไป
+1
ผมว่าไอ้นี่มันจะมีประโยชน์ตอนประกาศตัวแปรทีละเยอะ ๆ พร้อม ๆ กันในบรรทัดเดียวกันน่ะครับ Java ทำได้หรือยังนะ ไม่ได้ตามนานละ
ของ Go มันจะประมาณ
ซึ่ง java ไม่มี tuple
และใช้ throw exception แทน error ซึ่งทำให้มีทางออกมากกว่า 1 ทาง แถมมี Runtime Exception ที่ไม่มีลางบอกเหตุอีกว่ามันมีโอกาสพัง
ผมชอบ Go เพราะวิธีการ handle error แบบนี้นี่ล่ะครับ (ในขณะที่หลายๆคนไม่ชอบ ฮ่า) และส่วนตัวไม่ค่อยชอบ Exception
..: เรื่อยไป
ส่วนของ Swift ก็มี Result น่ารักไปอีกแบบ
แต่ Go ยังไม่ทำ enum เท่าที่จำได้เขาบอกว่า enum แต่ละเจ้าก็ implement ไม่เหมือนกันเลือกกันมาคนละอย่างสองอย่าง และแบบที่มีอยู่ก็ทำคล้าย ๆ enum ได้เช่น iota