[Kotlin] มาทำความรู้จักกับ Kotlin กันดีกว่า (Part 1)

ประมาณ 2–3 เดือนก่อน เคยได้อ่านข่าว Android ได้รองรับ ภาษา Kotlin อย่างเป็นทางการ จำได้ตอนนั้นเบลอเผลออ่านเป็นภาษาก๊อบลิน(มั่วแท้) ด้วยความสงสัยมันคือภาษาอะไรเลยไปอ่านก็ได้พบว่า Kotlin พัฒนามาเพื่อลบข้อจำกัดของ Java และที่ดูน่าสนใจเป็นพิเศษคือมันยังรันบน JVM ทำให้เราสามารถใช้ library ของ Java ได้ ด้วยความที่เราเป็น Java Developer มาก่อน มีเหรอจะพลาด เลยไปนั่งศึกษา Kotlin ดู
จากที่ได้ศึกษามา ก็ได้เห็นจุดที่ผมรู้สึกชอบมากกว่า Java ดังนี้
สั่ง Print ได้สั้นๆกับเขาสักที
ใครเขียน Java มาน่าจะรู้สึกว่าจะปริ้นแต่ละทีทำไมพิมพ์อย่างยาว
#Java
System.out.println(“Hello World”);#Kotlin
println(“Hello World”)หมดปัญหากับ NullPointerException!
ตอนเขียน Java นี้เจอบ่อยมาก NullPointerException ทางผู้พัฒนา Kotlin ก็คงคิดเหมือนกัน เลยจัดการให้ดีขึ้นเยอะ
ตามตัวอย่างด้านล่าง Java จะ Error แต่ Kotlin ไม่ Error Null แบบ Java แล้ว
#Java
String x = null;
System.out.println(x.length); // Error#Kotlin
val a: String? = null
println(a?.length) // ผลลัพธ์ nullต่อ String ง่ายขึ้นเยอะ
ใน Java ถ้าจะต่อ String ไม่ใช้เครื่องหมาย “+” ไม่ก็ต้องใช้ฟังชั่น String.format() แต่ Kotlin ใส่ตัวแปรเข้าไปใน String ได้เลย
#Java
String str1 = "Hello";
String str2 = "World";
System.out.println(str1 + " " + str2); // ผลลัพธ์ "Hello World"#Kotlin
val str1: String = "Hello"
val str2: String = "World"
println("$str1 $str2") // ผลลัพธ์ "Hello World"ตัวแปรรู้ได้ด้วยตัวเองว่าประเภทไหน
ใน Java จะประกาศลอยๆโดยที่ไม่ประกาศ Type ให้มันไม่ได้
#Java
str = “test”; // Error#Kotlin
val str = "test"
println(str::class) // ผลลัพธ์ "class kotlin.String"ไม่ต้องมา .equals() ให้กับ String อีกต่อไป
ใน Java จะเปรียบเทียบ String ต้องมาใช้ฟังก์ชั่น equals เพื่อเปรียบเทียบ แต่ Kotlin สามารถใช้ == ได้เลย
#Java
String str1 = "test";
String str2 = "test";
System.out.println(str1.equals(str2)); // ผลลัพธ์ true#Kotlin
val str1 = "test"
val str2 = "test"
println(str1 == str2) // ผลลัพธ์ trueสามารถ default argument ของฟังก์ชั่นได้
ใน Java จะไม่สามารถ set ค่า default ได้ ถ้าอยากทำต้องมาเชคในฟังก์ชั่นอีก แต่ Kotlin สามารถ set ค่า default ได้เลย
#Java
public void printStr(String message){
message = (message == null || message.equals(""))
? "Hello World" : message;
System.out.println(message);
}#Kotlin
fun printStr(message: String = "Hello World") {
println(message)
}ตอนแรกว่าจะเขียนให้จบในบทความเดียว แต่รู้สึกว่ายาวเกินไปและ เลยเอาไว้ต่อใน Part 2 แล้วกัน กราบสวัสดี see you next time 😙