Với ngôn ngữ Kotlin, chúng ta sử dụng:
- val - khai báo 1 hằng (constant)
- var - khai báo 1 biến (variable)
Kiểu của biến sẽ được đặt sau tên biến
Ex: tôi khai báo 1 hằng như sau
val fullName: String = "Nguyen The Lam"
Tuy nhiên trong Kotlin chúng ta có thể bỏ từ khóa String thì trình biên dịch cũng ko báo lỗi.
val fullName = "Nguyen The Lam" // vẫn biên dịch tốt
Với khai báo trên thì trình biên dịch đã tự ngầm hiểu kiểu của hằng là String.
Khác nhau giữa val & var:
với khai báo val thì ko thể thay đổi giá trị sau khi khai báo - var thì thay đổi được.
Ex:
val dateOfBirth = "10th March1999"
dateOfBirth = "10th March 2000" // cannot be changed
var address = "Ha noi"
address = "Sai gon" // can be changed
Lưu ý: với biến khai báo var thì trình biên dịch sẽ định kiểu theo giá trị mà ta gán đầu tiên, nếu có thay đổi thì phải thay đổi theo kiểu trước đó.
Ex: var age = 20
age = "20 years old" // Error: type mismatch
--> Với những ứng dụng đa luồng cần an toàn thì ta nên dùng val
Trong java chúng ta có thể khai báo nhiều biến trên cùng 1 dòng (line), nhưng điều đó là ko thể trong Kotlin.
val petName= "Cat", yourName = "Baby" // this won't compile
// this will compilevar petName = "Cat"
var yourName = "Baby"
2. Sự tuy luận kiểu (type inference) và sự loại bỏ (deduction)
Java thì ko có cơ chế type inference, nên khi khai báo bạn phải định kiểu cho biến, method, ..
Cơ chế tự suy luận kiểu của Kotlin giúp giảm bớt code ko cần thiết mà bạn phải viết.
val capitalOfVietnam = "Hanoi" // Compiler sẽ tự suy luận kiểu là String
3. Các kiểu cơ bản
Trong kotlin tất cả các kiểu đều là object, điều này sẽ khác trong java - java phân biệt kiểu nguyên thủy (primitive) và kiểu tham chiếu (reference), và java dùng wrapper class của các kiểu nguyên thủy để thao tác như object. Ví dụ java.lang.Integer, ...
Number
- Kiểu số nguyên trong kotlin
Byte - 8 bit
Short - 16 bit
Int - 32 bit
Long - 64 bit
- Kiểu số thực (floating point) trong kotlin
Float - 32 bit
Double - 64 bit
Để chuyển đổi 1 số từ kiểu này sang kiểu khác ta dùng các hàm như:
toByte(), toInt(), toLong(), toFloat(), toDouble(), toChar(), toShort().val numberInt = 123
val numberLong = numberInt.toLong()
Tương tự cho các kiểu khác.
Cách để chuyển 1 String sang số:
val stringNubmer = "123"
val intNumber = stringNumber.toInt()
Kiểu Boolean
Boolean trong kotlin cũng tương tự trong java
Giá trị có thể là true hoặc flase
Các toán tử thao tác với kiểu boolean: || && !
Ex:
val falseBoolean = false
val trueBoolean = true
val x = 1val y = 3val z = 6val n = x < y && z > y // n is trueString
val myName = "Nguyen The Lam"
Để tạo một string trên nhiều dòng ta dùng 3 nháy kép:
val myProfile = """
Nguyen The Lam
Ha Noi
Viet Nam """
Kotlin hỗ trợ string interpolation hoặc string template // dùng tạm tiếng anh, dịch thấy ko hay
Chúng ta có thể làm như sau:
val age = 20
val myProfile = "Nguyen The Lam $age years old" // Nguyen The Lam 20 years old
Sau ký tự $ chúng ta có thể gọi hàm, so sánh logic
val myName= "Nguyen The Lam"val message = "The first letter in my name is ${myName.first()}" // The first letter in my name is Nval myAge = 20val message = "You are ${if (age > 30) "old" else "young"}" // You are youngArray
Trong kotlin có 2 cách chính để tạo array
- arrayOf()
val arrA = arrayOf(1,2,3)
tham số truyền vào arrayOf() có thể khác kiểu --> mixed array
val arrMix = arrayOf(1, "Hello", true)
để truy cập phần tử trong array: arrA[0] //1 ....
Nếu muốn quy định tham số truyền vào arrayOf() phải là cùng 1 kiểu thì:
Ex: cùng kiểu Int thì làm như sau
val myArray = arrayOf<Int>(1, "Hello", true) // will not compile
--> tham số truyền vào phải cùng kiểuor
val myArray = intArrayOf(1, "Hello", true) // will not compile
--> tham số truyền vào phải cùng kiểu
Tương tự cho các kiểu dữ liệu khác.- Array() constructor
Yêu cầu phải khai báo size và sử dụng lambda function
lambda function sẽ tìm hiểu ở một bài khác
Bây giờ chỉ cần hiểu: lambda function để khởi tạo array với các phần tử.
val numbersArray = Array(10, { i -> i * 2 })
Đoạn code trên, tôi khai báo Array với size = 10 (tham số thứ nhất)tham số thứ 2 là lambda function với i là chỉ số của array bắt đầu từ 0, phía sau dấu -> là
giá trị tương ứng với chỉ số.
Cụ thể: chỉ số 0 có giá trị là 0*2 = 0
chỉ số 1 có giá trị lá 1*2 = 1, ...
Comment
comment trong kotlin giống y hệt trong java
trên 1 dòng // comment trên 1 dòng
comment nhiều dòng
/* dòng thứ nhất
dòng thứ hai
dòng thứ .... */

0 nhận xét:
Đăng nhận xét