Câu hỏi phỏng vấn Kotlin
Câu hỏi

Giải thích về lazy initialization trong Kotlin.

Câu trả lời

Trong Kotlin, khởi tạo lười biếng () là một kỹ thuật cho phép khởi tạo một thuộc tính chỉ khi nó được truy cập lần đầu tiên, thay vì tại thời điểm khởi tạo đối tượng. Điều này giúp tối ưu hóa hiệu suất ứng dụng bằng cách trì hoãn việc khởi tạo tài nguyên tốn kém hoặc không cần thiết cho đến khi thực sự cần đến chúng.

Để sử dụng khởi tạo lười biếng trong Kotlin, bạn có thể sử dụng từ khóa lazy. lazy là một hàm nhận vào một lambda và trả về một instance của Lazy<T>, nơi T là kiểu dữ liệu của thuộc tính. Thuộc tính được khai báo với lazy sẽ chỉ được khởi tạo một lần, vào lần đầu tiên nó được truy cập, và giá trị của nó sẽ được lưu lại cho các lần truy cập sau.

Ví dụ:

kotlin Copy
val myLazyValue: String by lazy {
    println("Computing the value...")
    "Hello, World!"
}

Trong ví dụ trên, myLazyValue là một thuộc tính được khởi tạo lười biếng. Mã trong lambda chỉ được thực thi khi myLazyValue được truy cập lần đầu tiên. Các lần truy cập sau đó sẽ sử dụng giá trị đã được tính toán và lưu lại từ lần đầu.

Khởi tạo lười biếng rất hữu ích trong các trường hợp như khởi tạo các đối tượng tốn kém về tài nguyên, thực hiện các thao tác I/O, hoặc khi giá trị của thuộc tính phụ thuộc vào một số điều kiện không sẵn có tại thời điểm khởi tạo đối tượng.

Ngoài ra, khởi tạo lười biếng trong Kotlin được đảm bảo là an toàn với luồng (thread-safe) theo mặc định, điều này có nghĩa là bạn không cần phải lo lắng về các vấn đề đồng bộ hóa khi sử dụng nó trong môi trường đa luồng[1][2][4][5][9][11].

Citations...

middle

middle

Gợi ý câu hỏi phỏng vấn

junior

Constructor chính trong Kotlin là gì?

expert

Khi nào nên và không nên sử dụng hàm inline trong Kotlin?

middle

Làm thế nào để chuyển đổi List thành Map trong Kotlin?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào