Lập trình Kotlin - Kiểu dữ liệu
Kiểu dữ liệu trong Kotlin
- Byte: Phạm vi của kiểu dữ liệu Byte là -128 đến 127. Byte được sử dụng để biểu thị các giá trị nguyên nhỏ hơn.
- Short: Phạm vi của kiểu dữ liệu Short là -32768 đến 32767.
- Int: Phạm vi của kiểu dữ liệu Int là -2^31 đến 2^31-1
- Long: Phạm vi của kiểu dữ liệu Int là -2^63 đến 2^63-1
- Double
- Float
- Boolean: Đúng hoặc sai
- Char: Tất cả các bảng chữ cái tiếng Anh (chữ thường hoặc chữ hoa) được bao gồm trong kiểu dữ liệu Char. Bạn không thể gán số cho biến kiểu dữ liệu Char.
Sơ đồ kiểu dữ liệu:
Kiểu dữ liệu số
Trong Kotlin có nhiều kiểu dữ liệu để biểu diễn số. Nhưng về cơ bản cũng tương tự Java thôi. Kotlin cung cấp những kiểu dữ liệu số sau:
Các kiểu số nguyên
- Long – 64 bit
- Int – 32 bit
- Short – 16 bit
- Byte – 8 bit
Các kiểu số thực
- Double – 64 bit
- Float – 32 bit
Ví dụ:
var varInt = 63
var varLong = 4L
var varFloat = 9.32F
var varDouble = 55.55
var varBinary = 0b000111
var varHexadecimal = 0x1F
Lưu ý: Khi khởi tạo 1 biến số thực, mặc định Kotlin sẽ hiểu biến đó có kiểu Double. Ví dụ:
var pi = 3.4 //Khi này biến pi được hiểu là kiểu Double
Nếu muốn khởi tạo 1 biến dạng Float ta cần thêm ký tự f hoặc F đằng sau giá trị:
var pi = 3.4f //Khi này biến pi được hiểu là kiểu Float
Tương tự với biến số nguyên, mặc định sẽ được hiểu là kiểu Int:
var year = 2018 // Khi này biến year được hiểu là kiểu Int
Nếu muốn đưa nó về dạng long, ta thêm ký tự L sau giá trị:
var year = 2018L // Khi này biến year được hiểu là kiểu Long
Chuyển đổi giữa các kiểu dữ liệu số
Tất cả các kiểu dữ liệu số đều được cung cấp các hàm để chuyển đổi từ kiểu dữ liệu này sang kiểu dữ liệu khác. Ví dụ:
var myInt = 100 // Khởi tạo biến myInt với giá trị 100
var myDouble = myInt.toDouble() //chuyển đổi sang kiểu Double
var myLong = myInt.toLong() //chuyển đổi sang kiểu Long
var myFloat = myInt.toFloat() //chuyển đổi sang kiểu Float
var myByte = myInt.toByte() //chuyển đổi sang kiểu Byte
Như vậy mình có thể convert 1 biến từ kiểu này sang kiểu kia 1 cách dễ dàng.
Lưu ý: Ta không thể trực tiếp gán giá trị của 2 biến khác kiểu như sau:
val myInt = 100
val myLong: Long = myNumber // lỗi: Type mismatch
Kiểu dữ liệu Boolean
Kiểu Boolean trong Kotlin hoàn toàn giống với Java. Giá trị của kiểu dữ liệu này là true hoặc false. Các toán tử đối với kiểu Boolean cũng hoàn toàn giống Java:
- || (hoặc)
- && (và)
- ! (phủ định)
Ví dụ:
val myTrue = true
val myFalse = false
val a = 1
val b = 3
val c = 4
val d = 6
val result = a < b && d > c // result có giá trị true
Kiểu dữ liệu String
String biểu diễn dữ liệu dạng chuỗi ký tự. Trong Kotlin có 2 dạng String.
- Dạng thông thường: các ký tự trong String đc biểu diễn trong cặp ngoặc kép, dạng này khá giống với String trong Java:
var myName = "My name is Duong Vu"
Khi muốn hiển thị các ký tự đặc biệt ,ví dụ như xuống dòng, ta phải dùng cách sử dụng ký hiệu. Ví dụ để tạo 1 string chứa 3 dòng ta phải làm như sau:
var myString = "This is first line\nThis is second line\nThis is first line"
println(myString)
Lưu ý: Ở trên mình đã sử dụng câu lệnh println để in ra giá trị của chuỗi myString trên console. Hàm println có thể in ra giá trị của tất cả các biến, không riêng gì biến kiểu String.
Kết quả in ra ở console sẽ là:
This is first line
This is second line
This is first line
Như mọi người thấy ta phải dùng \n để thay cho ký tự xuống dòng. Nhưng với dạng String thứ 2 thì khác.
- Dạng thứ 2: các ký tự trong String được biểu diễn trong cặp dấu nháy 3 “””. Ví dụ:
var text = """
this is first line
this is second line
this is third line
"""
println(text)
Kết quả:
this is first line
this is second line
this is third line
Với dạng này ta có thể sử dụng xuống dòng, tab hay bất kỳ 1 ký tự đặc biệt nào 1 cách thoải mái. Cứ như kiểu ta đang soạn thảo văn bản vậy :3
- String template
Nếu trong Java, để hiển thị giá trị của 1 biến số trong 1 chuỗi thì ta phải dùng phép cộng chuỗi hoặc String.format. Thì ở Kotlin, mọi việc đơn giản và trực quan hơn rất nhiều. String trong Kotlin cho phép ta gắn giá trị của 1 biến vào thân chuỗi chỉ với ký tự $. Ví dụ:
var numberOfApples = 4
var numberOfBananas = 5
var numberOfOrange = 2
var fruitDescription = "There are $numberOfApples apples, $numberOfBananas bananas, $numberOfOrange oranges"
print(fruitDescription)
Thế là giá trị của các biến numberOfApples ,numberOfBananas, numberOfOrange được gắn vào String cực kỳ gọn nhẹ. Ví dụ 2:
var numberOfRedCar = 2
var numberOfBlueCar = 3
var carDescription = "There are ${numberOfBlueCar+numberOfRedCar} cars"
print(carDescription)
Ví dụ này cho thấy, khi muốn biểu diễn giá trị của 1 biểu thức (hoặc là hàm số) thì biểu thức (hàm số) đó phải được bao bởi cặp {}. Như ví dụ trên mình đã dùng ${numberOfBlueCar+numberOfRedCar} để biểu diễn tổng của 2 biến numberOfBlueCar và numberOfRedCar đó. Ví dụ nữa :
var myString = "Hello, I am Mr.Rain"
print("String length = ${myString.length}")