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

Wasan Chubuatong
Aug 23, 2017 · 2 min read

ประมาณ 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 😙

)

Wasan Chubuatong

Written by

Simple Chilled Easy Basic Programmer

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade