Lập trình với ngôn ngữ Kotlin - Bài 2: Cơ bản về ngôn ngữ lập trình Kotlin - phần 1

Cú pháp cơ bản
Định nghĩa một gói (package)
Như trong bài 1 mình đã hướng dẫn các bạn thêm một gói (package) mới trong một dự án (project) Kotlin. Tên gói được đặt ở đầu mỗi tập tin (file) nguồn, ở đây mình có một gói tên là main, thường thì khi các bạn tạo một tập tin nguồn mới trong một gói thì tên gói sẽ tự động được thêm vào mỗi đầu tập tin nguồn đó:


Ở đây cuối mỗi câu lệnh bạn có thể có hoặc không có dấu chấm phẩy ở cuối, Kotlin không khắt khe về điểm này, dấu chấm phẩy kia là mình quen tay thôi.

Định nghĩa một hàm (funtion)
Hàm được được định nghĩa bởi từ khoá fun, tên hàm, tham số và kiểu trả về.
Hàm với hai tham số kiểu Int và trả về kiểu Int:


Hàm với thân hàm là một biểu thức


Hàm không có kiểu trả về ta có thể thêm : Unit hoặc không


Khai báo biến cục bộ
với khai báo sử dụng từ khoá val thì giá trị biến không được gán lại, để gán lại giá trị thì khai báo sử dụng từ khoá var, dấu $ để truyền giá trị biến tương ứng.

Comment
Như các bạn đã thấy ở trên mình sử dụng // để bắt đầu comment một dòng, ngoài ra Kotlin còn có kiểu comment nhiều dòng là sử dụng /* nội dung comment */.

Sử dụng mẫu String


Như các bạn có thể thấy có thể dùng ngay một biểu thức trong một mẫu string. Để ý một chút ta có thể thấy hàm replace giống với ngôn ngữ Java.

Sử dụng biểu thức điều kiện
Cũng giống như nhiều ngôn ngữ lập trình khác, ở đây ta có điều kiện so sánh là >,  >=, <, <=, ==, !=


Sử dụng giá trị null và kiểm tra null
Rõ ràng rằng nếu một tham chiếu là null thì phải được đánh dấu null, giống như trong ngôn ngữ Java, Kotlin cũng sử giá trị null cho những tham chiếu không xác định như khởi tạo một giá trị nào đó, chuyển đổi một giá trị nguyên từ chuỗi string,...các bạn nên kiểm tra giá trị null trước khi sử dụng biến đó vào việc tính toán hay làm gì đó tránh việc gây "chết" chương trình.

val x = null
if (x != null) {
// làm gì đó
} else {
println("giá trị x null, không xác định")
}

Sử dụng kiểm tra kiểu và tự động cast (chuyển thành kiểu tương ứng)
Trong Kotlin hỗ trợ toán tử is để kiểm tra kiểu của biến.


Sử dụng vòng lặp for
Vòng lặp for trong Kotlin được sử dụng để duyệt list, có hai kiểu là duyệt theo phần tử và duyệt theo chỉ số phần tử.


Sử dụng vòng lặp while trong Kotlin
Vòng lặp while cũng sử dụng để duyệt list giống với vòng lặp for
val lstItem = listOf("Một", "Hai", "Ba")
    var index = 0
    while (index < lstItem .size) {
        println("item at $index is ${lstItem [index]}")
        index++
    }
Khi chạy đoạn code này sẽ ra kết quả tương tự như trên.

Sử dụng biểu thức when
Biểu thức when trong Kotlin có lẽ là một điểm mới so với các ngôn ngữ khác, cách hiểu nó gần giống như câu lệnh switch...case trong Java.
when (obj) {
    1          -> "Một"
    "Hai"    -> "2"
    is Long    -> "Long"
    !is String -> "Không phải String"
    else       -> "Không xác định"
}
Khi truyền vào obj một giá trị như 1, "Hai" hay kiểm tra kiểu của obj nó sẽ trả ra kết quả tương ứng, nó rất tuỳ biến, đầu vào có thể là số, string, một đối tượng bất kỳ bên trong biếu thức bạn có làm nhiều thứ hơn (in kết quả, kiểm tra kiểu) câu lệnh switch...case thông thường khác.

Sử dụng dãy (ranges) trong Kotlin
Kiểm tra một số có ở trong dãy hay không sử dụng toán tử in:
val x = 10
val y = 9
if (x in 1..y+1) {
   println("x ở trong dãy")
}

Kiểm tra một số không ở trong dãy, sử dụng toán tử !in:
val x = 11
val y = 9
if (x !in 1..y+1) {
   println("x không ở trong dãy")
}

Sử dụng vòng lặp for duyệt dãy:
for (x in 0..10) {
    print(x)
}

Duyệt dãy với bước nhảy:
for (x in 1..10 step 2) {
    print(x)
}
for (x in 9 downTo 0 step 3) {
    print(x)
}
Khi chạy những lệnh này các bạn sẽ thấy được kết quả.

Sử dụng tập hợp (Collections) và duyệt tập hợp trong Kotlin
Trong ngôn ngữ lập trình Kotlin có tập hợp là listOf setOf, listOf sẽ cho phép có nhiều hơn một phần tử giống nhau trong tập hợp còn setOf thì không. Để duyệt tập hợp chúng ta có thể dùng vòng lặp for, when hay in để kiểm tra phần tử trong tập hợp.
val items = listOf("Mot", "Hai", "Ba")
    for (item in items) {
        println(item)
    }

when {
        "Mot" in items -> println("co Mot")
        "Ba" in items -> println("co Ba")
    }

Một cái nữa của tập hợp (Collections) trong Kotlin mà mình rất thích và rất hay dùng đó là lọc, sắp xếp và map trong list, dành cho những list khá phức tạp và cần phân loại chúng.
val fruits = listOf("mot", "hai", "ba", "bon")
    fruits
    .filter { it.startsWith("b") }
    .sortedBy { it }
    .map { it.toUpperCase() }
    .forEach { println(it) }

Hãy chạy và xem kết quả nhé!

Comments

Popular posts from this blog

Hướng dẫn - Sử dụng nhiều phiên bản Java trên một máy tính

Lập trình với ngôn ngữ Kotlin - Bài 1: Cài đặt môi trường, viết chương trình đầu tiên