Biến và Kiểu dữ liệu trong Kotlin

Có hai loại biến trong Kotlin, mutable(có thể thay đổi) và immutable(không thay đổi). Một biến immutable là một biến có giá trị không thể thay đổi, còn được gọi là biến không thể thay đổi hoặc chỉ đọc. Mặt khác, giá trị của biến mutable có thể được thay đổi.

I. Immutable variable: val keyword

Immutable được khai báo bằng cách sử dụng từ khóa val trong Kotlin. Trong ví dụ này, chúng ta khai báo một biến myName bất biến bằng cách sử dụng từ khóa val và sau đó hiển thị giá trị của nó.

/**
 * created by kiso.vn
 */
package beginnersbook

fun main(args : Array<String>){
    /**
     * This is an immutable variable
     * also called unchangeable variable
     * or read-only variable.
     */
    val myName = "Chaitanya"
    println("My Name is: "+myName)
}

OUTPUT

1 kotlin immutable variable jpg

Bài viết này được đăng tại [kiso.vn]

Điều gì xảy ra khi chúng ta cố gắng thay đổi giá trị của một biến Immutable?

Nếu chúng ta cố gắng thay đổi giá trị của một biến Immutable , chúng ta sẽ gặp lỗi biên dịch, giống như chúng ta nhận được trong ví dụ sau.

/**
 * created by kiso.vn
 */
package beginnersbook

fun main(args : Array<String>){
    /**
     * This is an immutable variable
     * also called unchangeable variable
     * or read-only variable.
     */
    val myName = "Chaitanya"
    myName="Chaitanya Singh"
    println("My Name is: "+myName)
}

OUTPUT:

Error:(13, 5) Kotlin: Val cannot be reassigned

II. Mutable variable: var keyword

Không giống như biến bất biến (Immutable), chúng ta có thể thay đổi giá trị của biến có thể thay đổi. Trong kotlin, chúng ta sử dụng từ khóa var để khai báo một biến mutable. Hãy lấy một ví dụ để hiểu điều này.

Trong ví dụ này, chúng ta khai báo một biến mutable bằng cách sử dụng từ khóa var, để chứng minh rằng chúng ta có thể thay đổi giá trị của nó, chúng ta gán một giá trị khác cho biến myName.

package beginnersbook

fun main(args : Array<String>){
    /**
     * This is an mutable variable
     * we can change the value of this
     * variable
     */
    var myName = "Chaitanya"
    myName="Chaitanya Singh"
    println("My Name is: "+myName)
}

OUTPUT2 kotlin mutable variable jpg

III. Biến là gì?

Biến là một tên, được đặt cho một vị trí trong bộ nhớ có thể chứa dữ liệu. Ví dụ, khi chúng ta khai báo biến như thế này:

var dogName = "Hachiko"

Dữ liệu “Hachiko” được lưu trữ trong bộ nhớ tại một vị trí cụ thể, được đặt tên là dogName.

Ở đây var là một từ khóa được sử dụng để khai báo một biến, dogName là một định danh (tên của biến), Hachiko là data (giá trị của biến) và kiểu dữ liệu của biến là String (chúng ta sẽ tìm hiểu về kiểu dữ liệu là gì sau).

Đọc thêm: Kotlin – keywords và định danh

IV. Kiểu suy diễn

Như chúng ta đã đề cập trước đó, chúng ta có thể khai báo và khởi tạo biến trong một câu lệnh như sau:

var dogName="Hachiko"

Trong tuyên bố trên, chúng ta chưa chỉ định kiểu dữ liệu cho biến, kotlin biết rằng biến dogName là một chuỗi. Trình biên dịch có thể hiểu loại biến bằng cách xem các giá trị.

Tuy nhiên nếu bạn muốn đề cập rõ ràng về loại biến thì bạn có thể làm như thế này:

var dogName: String="Hachiko"

Ở đây chúng ta có thể thấy một cách rõ ràng về việc biến dogName có kiểu dữ liệu là dạng chuỗi(String).

Khai báo trước và khởi tạo sau:

Chúng ta có thể khai báo biến trước và sau đó chúng ta có thể khởi tạo nó sau trong chương trình. Điểm quan trọng cần lưu ý ở đây là chúng ta phải làm như thế này, bạn phải xác định loại biến trong khi khai báo.

//It is mandatory to specify the type in this case
var website: String
dogName = "Hachiko"

V. Kiểu dữ liệu trong Kotlin

Kotlin Data Types

  • Numbers – Byte, Short, Int, Long, Float, Double
  • Boolean – True, false
  • Characters
  • Arrays
  • Strings

Number

Chúng ta có một số loại dữ liệu để thể hiện các số trong Kotlin.

1 – 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.

fun main(args : Array) {
    val num: Byte = 99
    println("$num")
}

OUTPUT: 99

Bạn phải xác định được phạm vi của loại dữ liệu để tránh lỗi. Ví dụ, đoạn code sau sẽ tạo ra lỗi vì giá trị được gán cho biến kiểu byte không nằm trong phạm vi.

fun main(args : Array) {
    //Range is -128 to 127
    val num: Byte = 300
    println("$num")
}

OUTPUT

error

Chúng ta cũng có thể biết giá trị tối thiểu và tối đa của một loại dữ liệu như thế này:

fun main(args : Array<String>){

    var bigByte: Byte = Byte.MAX_VALUE
    var smallByte: Byte = Byte.MIN_VALUE
    println("Biggest Byte value is: " + bigByte)

    /**
     * I can use String interpolation and put
     * the variable inside quotes to display its
     * value
     */
    println("Smallest Byte value is: $smallByte")
}

OUTPUT:

3 kotlin data types jpg

2 – Short

Phạm vi của kiểu dữ liệu Short là -32768 đến 32767.

fun main(args : Array) {
    val num: Short = 29999
    println("$num")
}

OUTPUT:

29999

Bạn có thể tự hỏi khi chúng tôi có phạm vi lớn hơn trong kiểu dữ liệu ngắn, tại sao chúng ta sử dụng kiểu dữ liệu Byte?

Điều này là để tiết kiệm bộ nhớ. Kiểu dữ liệu Short chứa nhiều bộ nhớ hơn so với loại dữ liệu Byte vì vậy nếu bạn chắc chắn rằng giá trị sẽ nằm trong giới hạn từ -128 đến 127 thì loại dữ liệu Byte sẽ là lựa chọn tốt hơn từ phối cảnh bộ nhớ.

3 – Int

Phạm vi của kiểu dữ liệu Int là -231 đến 231-1

fun main(args : Array) {
    val num: Int = 123456
    println("$num")
}

OUTPUT:

123456

Lưu ý: Nếu bạn không chỉ định rõ ràng loại biến thì trình biên dịch sẽ coi biến đó là Int, nếu giá trị nằm trong khoảng từ -231 đến 231-1

4 – Long

Phạm vi của kiểu dữ liệu dài là -263 đến 263-1

fun main(args : Array) {
    val num: Long = 12345678
    println("$num")
}

OUTPUT:

12346678

Lưu ý: Nếu bạn không chỉ định rõ ràng loại biến thì trình biên dịch sẽ coi biến đó là Long, nếu giá trị nằm ngoài phạm vi từ -231 đến 231-1 nhưng nằm trong phạm vi từ -263 đến 263-1

5 – Double

fun main(args : Array) {
    // all floating numbers are double by default
    // unless you suffix the value with F letter
    val num = 101.99
    println("$num")
}

OUTPUT

101.99

6 – Float

fun main(args : Array) {
    // This is a float data type as we have suffixed
    // the value with letter 'F'
    val num = 101.99F
    println("$num")
}

OUTPUT:

101.99

7 – Boolean

Giá trị của biến boolean là đúng hoặc sai.

fun main(args : Array) {
    val boolValue = false
    println("$boolValue")
}

OUTPUT:

false

8 – 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.

fun main(args : Array) {
    val ch = 'A'
    println("$ch")

    val ch2: Char
    ch2 = 'Z'
    println("$ch2")
}

OUTPUT:

A
Z

Bài viết liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *