เมื่อวานเจอ code ที่น่าสนใจใน Slack ของ Kotlinlang
แต่สิ่งที่สำคัญและน่าสนใจกว่าคือ ความสามารถใน code ของภาษา Kotlin นั่นเอง
มันมีหลายสิ่งที่ควรค่าต่อการหยุดดูและศึกษา
ดังนั้นมาลองดู code กันขำๆ กันหน่อย
[gist id="b414a4f8430ad0d014c05ec74ef37f46" file="tip.kt"]
ที่สำคัญ code ชุดนี้ทำงานได้ด้วยนะ
ซึ่งสามารถทดสอบ run ด้วยคำสั่ง
[code]
$kotlinc tip.kt -include-runtime -d tip.jar
$java -jar tip.jar
[/code]
ได้ผลคือ โยน exception ออกมาดังนี้
[code]
Exception in thread "main" ┻━┻
at ┻━┻.<clinit>(tip.kt:1)
at TipKt.main(tip.kt:11)
[/code]
เริ่มจากชื่อ class และ object อันนี้ปกติ
แต่การตั้งชื่อแบบนี้ก็เล่นเอาฮาน้ำตาเล็ด แต่ในการทำงานจริง ๆ คงไม่มีใครอยากเจอหรอกนะ !!ต่อมาคือเรื่องของ object declaration
จะเห็นว่ามีการใช้ keyword ชื่อว่า object เป็นการใช้งานตาม Singleton pattern นั่นเอง จะเรียกว่าเป็น static class ก็ว่าได้ ซึ่งมี instance เดียวเท่านั้นอีก keyword คือ companion object
ทำการประกาศ object declaration ใน class ด้วย keyword ชื่อว่า companion โดยที่ class หลักสามารถเรียกใช้ method ใน object ได้โดยตรงจาก code ตัวอย่างนั้นมีการใช้ infix notation ด้วย
ทำให้เราสามารถเรียกใช้งาน method แบบสวย ๆ ได้ แน่นอนว่าทำให้ code อ่านง่ายและเข้าใจได้ง่าย เนื่องจากมันอธิบายตัวมันเอง ที่สำคัญเป็น pure function ดังนั้นจึงไม่มี side effect ใด ๆ เลย ยกตัวอย่างเช่น [gist id="b414a4f8430ad0d014c05ec74ef37f46" file="my_infix.kt"]อีกอย่างคือ Nothing
เป็น class ชนิดหนึ่งที่ไม่มี instance ในกรณีนี้ใส่เป็น return Type ของmethod/function หมายความว่า method/function ไม่มีทางที่จะ return อะไรออกมา ยกเว้นโยน exception ออกไปเท่านั้นจะเห็นได้ว่า code ในภาษา Kotlin สั้น ๆ เพียงเท่านี้ กลับมารายละเอียดที่เยอะเอาเรื่องเหมือนกันนะ วันนี้เราศึกษาภาษา Kotlin กันหรือยัง ?ขอให้สนุกกับการ coding ครับ