What’s new in Kotlin 1.7
สวัสดีครับทุกท่าน หลังจากที่ทาง Kotlin ได้ปล่อยอัพเดท version 1.7.0 ออกมาเมื่อวันที่ 9 June 2022 วันนี้ผมจะมาอัพเดทฟีเจอร์ที่น่าสนใจให้ทุกท่านได้อ่านกันครับ
หากท่านใดที่ยังไม่ได้อ่านของ version 1.6 สามารถตามเข้าไปอ่านได้ที่บทความข้างล่างได้เลยครับ
Underscore operator for type arguments
หัวข้อนี้เป็นเรื่องของการนำ underscore มาใช้ในการอ้างถึง type argument ซึ่งจะใช้งานได้ก็ต่อเมื่อมี type อื่นๆ ที่ถูกระบุไว้แล้ว ทำให้ไม่ต้องระบุ type อีกรอบ โดยสามารถใช้ underscore ในการอ้างถึงได้เลย ตัวอย่างการใช้งานเช่น
จากตัวอย่างจะเห็นว่าใน SomeImplementation มีการระบุ type เป็น String ไว้แล้ว ทำให้รู้ว่า T คือ type อะไร เมื่อเรานำมาใช้งานสามารถใส่ _ ไว้ได้เลยไม่ต้องระบุ String อีกรอบ
Stable definitely non-nullable types
หัวข้อนี้เป็นเรื่องของการกำหนด non-nullable ให้กับ generic type โดยใส่ & Any เข้าไปยังส่วนที่เราต้องการให้เป็น non-nullable ตัวอย่างการใช้งานเช่น
min() and max() collection functions return as non-nullable
หัวข้อนี้เป็นเรื่องของการนำ collection function min() และ max() กลับมา หลังจากที่ถูกถอดออกไปและนำ minOrNull() และ maxOrNull เข้ามาแทนที่เพื่อป้องกันการเกิด exception ใน version 1.4.0 โดยหลังจากนี้เราจะสามารถเลือกใช้งานได้ทั้งสองแบบคือ min() หรือ minOrNull() และ max() หรือ maxOrNull() ตัวอย่างการใช้งานเช่น
Regular expression matching at specific indices
หัวข้อนี้เป็นเรื่องของการใช้งาน Regex.matchAt() และ Regex.matchesAt() ซึ่งการทำงานหลักๆ ของ extension ตัวนี้ก็คือให้เราสามารถเช็คได้ว่า regular expression ที่กำหนดมีการ match ในตำแหน่งที่เราระบุหรือไม่ โดยที่
- Regex.matchAt() จะ return ค่าผลลัพธ์นั้นออกมาเลย หรือหากไม่พบผลลัพธ์ที่ระบุก็จะ return null ออกมา
- Regex.matchesAt() จะ return ผลลัพธ์เป็น boolean ค่า true คือพบผลลัพธ์ในตำแหน่งที่เราระบุหรือหากไม่พบผลลัพธ์ก็จะมีค่าเป็น false
ตัวอย่างการใช้งานเช่น
New experimental extension functions for Java Optionals
หัวข้อนี้เป็นเรื่องของการ support optional classes ให้สามารถใช้งาน extension เหล่านี้ได้
- getOrNull()
- getOrDefault()
- getOrElse()
- toList()
- toSet()
- asSequence()
ตัวอย่างการใช้งานเช่น
หากท่านใดสงสัยว่า Optional classes คืออะไรแนะนำให้ไปอ่านบทความนี้เพิ่มเติมครับ