Trong bài viết này, bạn sẽ tìm hiểu về chuyển đổi kiểu, làm thế nào để chuyển đổi một biến kiểu này sang kiểu khác với sự trợ giúp của ví dụ.

Trong Kotlin, giá trị số của một kiểu không được tự động chuyển đổi sang kiểu khác ngay cả khi kiểu khác đó có phạm vi giá trị hơn. Điều này khác với cách Java xử lý các chuyển đổi số. Ví dụ;

Trong Java,

int number1 = 55;
long number2 = number1;    // Valid code 

Ở đây, giá trị của number1 thuộc kiểu int được tự động chuyển đổi thành kiểu long và được gán cho biến number2.

Trong Kotlin,

val number1: Int = 55
val number2: Long = number1   // Error: type mismatch.

Mặc dù phạm vi của kiểu Long lớn hơn kiểu  Int, nhưng Kotlin không tự động chuyển đổi kiểu Int thành kiểu Long. 

Thay vào đó, bạn cần sử dụng hàm toLong() (để chuyển đổi sang kiểu Long). Kotlin làm như vậy để đảm bảo sự an toàn của kiểu dữ liệu, tránh những điều bất ngờ.

val number1: Int = 55
val number2: Long = number1.toLong()

Đây là danh sách các hàm trong Kotlin được sử dụng để chuyển đổi kiểu:

Lưu ý, kiểu Boolean không thể chuyển sang bất cứ kiểu dữ liệu nào khác.

Chuyển đổi từ kiểu có phạm vi lớn hơn sang kiểu có phạm vi nhỏ hơn

Các hàm được đề cập ở trên có thể được sử dụng theo cả hai hướng (chuyển đổi từ kiểu có phạm vi lớn hơn sang nhỏ hơn và chuyển đổi từ kiểu có phạm vi nhỏ hơn sang lớn hơn).




Tuy nhiên, chuyển đổi từ kiểu rộng hơn sang kiểu hẹp hơn có thể cắt bớt giá trị. Ví dụ,

/*
Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
@author cafedevn
Contact: cafedevn@gmail.com
Fanpage: https://www.facebook.com/cafedevn
Instagram: https://instagram.com/cafedevn
Twitter: https://twitter.com/CafedeVn
Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
*/

fun main(args : Array<String>) {
    val number1: Int = 545344
    val number2: Byte = number1.toByte()
    println("number1 = $number1")
    println("number2 = $number2")
}

Khi bạn chạy chương trình, đầu ra sẽ là:

number1 = 545344
number2 = 64

Ngoài ra, bạn nên tham khảo các bài viết liên quan đến chuyển đổi kiểu như:

  • Chuyển đổi String thành Int và Int thành String
  • Chuyển đổi từ Long sang Int và chuyển sang Long
  • Chuyển kiểu Double thành Int và Chuyển đổi Int thành Double 
  • Chuyển đổi Long thành Double  và Double  thành Long
  • Chuyển đổi Char thành Int và Int thành Char
  • Chuyển đổi String thành dài và dài sang String 
  • Chuyển đổi String thành mảng và chuyển đổi mảng thành String 
  • Chuyển đổi String thành Boolean và Boolean thành String 
  • Chuyển đổi String thành Byte và chuyển đổi byte thành String 
  • Chuyển đổi từ Int thành Byte và Chuyển đổi Byte sang Int