Một vài tính năng thú vị của Kotlin
Chúng ta đã thấy rằng Kotlin không chỉ giúp chúng ta viết code “đẹp” mà còn giúp chúng ta thấy thích viết code hơn khi sử dụng ngôn ngữ này. Hai điều này sẽ đảm bảo cho chúng ta ra đời những app chất lượng hơn. Sau đây mình xin chia sẻ một vài tính năng đặc trưng của ngôn ngữ này để lí ...
Chúng ta đã thấy rằng Kotlin không chỉ giúp chúng ta viết code “đẹp” mà còn giúp chúng ta thấy thích viết code hơn khi sử dụng ngôn ngữ này. Hai điều này sẽ đảm bảo cho chúng ta ra đời những app chất lượng hơn. Sau đây mình xin chia sẻ một vài tính năng đặc trưng của ngôn ngữ này để lí giải vì sao kotlin hiện giờ đang được mọi người yêu thích như vậy.
1. Thay thế blocks if/else if/else bằng when
Sau đây là ví dụ để so sánh:
// Java if (firstName.equals("Dan")) { person.setTeam(programmers); } else if (lastName.equals("Dihiansan")) { person.setTeam(designers); } else { person.setTeam(others); } // Kotlin person.team = when { firstName == “Dan” -> programmers lastName == “Dihiansan” -> designers else -> others }
Hai block này đều xử lí một lệnh giống nhau nhưng hay nhìn xem bên nào dể đọc và ngắn gọn hơn. Nếu như ta xử lí check một argument với nhiều trường hợp, thông thường ta sẽ dùng một switch/case statement dài dòng và “xấu xí”.
// Java switch (firstName) { case "Dan": person.setTeam(programmers) break; case "Jay": person.setTeam(programmers) break; case "Jamie": person.setTeam(designers) break; default: person.setTeam(others) } // Kotlin person.team = when { firstName == “Dan” -> programmers lastName == “Dihiansan” -> designers else -> others }
Với kotlin có vẻ dễ dàng cho người đọc hơn rất nhiều.
2. Viết hàm onClick ngắn gọn
Với “Anko”, một thư viện viết cho Kotlin, click listener được viết rất ngắn gọn và dễ dàng.
// Java view.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { System.out.println("This is horrible"); } }); // Kotlin view.onClick { println("WAT") }
3. Không còn viewbinding
Sử dụng kotlin android extension, bạn không cần phải bind views sang object để xử lí chúng. Với kotlin bạn có thể truy cập thẳng đến view đó luôn.
// Java EditText composer = findViewById(R.id.composer); composer.setText("Allo!"); // Kotlin view.composer.text = "Allo!"
Đây tuy không phải là một tính năng quá lớn tuy nhiên nó có thể giúp ta loại bỏ nhưng code bind views “không cần thiết” thường thấy ở Activity/Fragment.
4. Function trong 1 dòng
Funtions một dòng có thể viết trong java tuy nhiên ta sẽ phải tuần theo những style đã được mặc định sẵn. Kotlin kế thừa tính năng này và làm nó tốt hơn. Không extra lines và brace thừa thãi.
// Java public String fullName() { return getFirstName() + " " + getLastName(); } // Kotlin fun fullName() = "${firstName} ${lastName}"
Note : object trả về của kotlin được ngụ ý chỉ định, như ví dụ trên kotlin tự động biết kiểu trả về là String.
5. Các method được tối ưu
Kotlin cải thiện các method ta hay dùng trong Kotlin Stardard Library
// Java if (name.toLowerCase().contains(firstName.toLowerCase())) { ... } // Kotlin if (name.contains(firstName, true)) { ... }
Chỉ một chút cải tiến nho nhỏ nhưng có thể thấy, code dễ đọc và gọn hơn rất nhiều.
6. Giảm thiểu việc check “if(whatever != null)”
Trong Java việc check null rất phổ biến, ta rất dễ miss việc này và nó làm code trông xấu đi. Với tính năng null safety của kotlin, ta sẽ thấy để khả năng đọc code khi viết bằng kotlin dễ dàng hơn rất nhiều.
// Java if (message != null) { System.out.println(message) } // Kotlin message?.let { println(it) }
Nếu message khác null. Kotlin sẽ “let” các hàm bên trong block chạy, còn nếu null sẽ bỏ qua nó. Hãy để ý đến println(it) statement. Keyword “it” chính là object message bạn check ban đầu.
7. The Elvis operator
Kotlin xử lí scenario phổ biến nhất “Nếu cái gì đó null thì ta gán nó một giá trị và trả về, ngược lại thì giữ nguyên”.
// Java if (people == null) { people = new ArrayList(); } return people; // Kotlin return people ?: emptyArrayList()
Trên đây ta đã lướt qua một vài tính năng thú vị của Kotlin. Cảm ơn các bạn đã theo dõi.