What’s new in Kotlin 1.7

Todsapon Sangpook
te<h @TDG
Published in
1 min readJul 7, 2022

สวัสดีครับทุกท่าน หลังจากที่ทาง Kotlin ได้ปล่อยอัพเดท version 1.7.0 ออกมาเมื่อวันที่ 9 June 2022 วันนี้ผมจะมาอัพเดทฟีเจอร์ที่น่าสนใจให้ทุกท่านได้อ่านกันครับ

หากท่านใดที่ยังไม่ได้อ่านของ version 1.6 สามารถตามเข้าไปอ่านได้ที่บทความข้างล่างได้เลยครับ

Underscore operator for type arguments

หัวข้อนี้เป็นเรื่องของการนำ underscore มาใช้ในการอ้างถึง type argument ซึ่งจะใช้งานได้ก็ต่อเมื่อมี type อื่นๆ ที่ถูกระบุไว้แล้ว ทำให้ไม่ต้องระบุ type อีกรอบ โดยสามารถใช้ underscore ในการอ้างถึงได้เลย ตัวอย่างการใช้งานเช่น

Reference : https://kotlinlang.org/docs/whatsnew17.html#underscore-operator-for-type-arguments

จากตัวอย่างจะเห็นว่าใน SomeImplementation มีการระบุ type เป็น String ไว้แล้ว ทำให้รู้ว่า T คือ type อะไร เมื่อเรานำมาใช้งานสามารถใส่ _ ไว้ได้เลยไม่ต้องระบุ String อีกรอบ

Stable definitely non-nullable types

หัวข้อนี้เป็นเรื่องของการกำหนด non-nullable ให้กับ generic type โดยใส่ & Any เข้าไปยังส่วนที่เราต้องการให้เป็น non-nullable ตัวอย่างการใช้งานเช่น

Reference : https://kotlinlang.org/docs/whatsnew17.html#stable-definitely-non-nullable-types

min() and max() collection functions return as non-nullable

หัวข้อนี้เป็นเรื่องของการนำ collection function min() และ max() กลับมา หลังจากที่ถูกถอดออกไปและนำ minOrNull() และ maxOrNull เข้ามาแทนที่เพื่อป้องกันการเกิด exception ใน version 1.4.0 โดยหลังจากนี้เราจะสามารถเลือกใช้งานได้ทั้งสองแบบคือ min() หรือ minOrNull() และ max() หรือ maxOrNull() ตัวอย่างการใช้งานเช่น

Reference : https://kotlinlang.org/docs/whatsnew17.html#min-and-max-collection-functions-return-as-non-nullable

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

ตัวอย่างการใช้งานเช่น

Reference : https://kotlinlang.org/docs/whatsnew17.html#regular-expression-matching-at-specific-indices

New experimental extension functions for Java Optionals

หัวข้อนี้เป็นเรื่องของการ support optional classes ให้สามารถใช้งาน extension เหล่านี้ได้

  • getOrNull()
  • getOrDefault()
  • getOrElse()
  • toList()
  • toSet()
  • asSequence()

ตัวอย่างการใช้งานเช่น

หากท่านใดสงสัยว่า Optional classes คืออะไรแนะนำให้ไปอ่านบทความนี้เพิ่มเติมครับ

Reference:

https://kotlinlang.org/docs/whatsnew17.html

--

--