Trong Kotlin, lateinit và lazy là hai cơ chế được sử dụng để k...
Trong Kotlin, lateinit và lazy là hai cơ chế được sử dụng để k...
lateinit
được sử dụng với các biến var
(có thể thay đổi được) và chỉ áp dụng cho các biến mà không phải là kiểu dữ liệu nguyên thủy. Nó cho phép bạn khai báo một biến mà không cần khởi tạo ngay lập tức tại thời điểm khai báo. Điều này hữu ích trong các trường hợp bạn không thể khởi tạo một biến tại thời điểm khai báo do giá trị của nó phụ thuộc vào một số điều kiện hoặc phụ thuộc được khởi tạo sau (ví dụ: qua Dependency Injection). Tuy nhiên, bạn phải chắc chắn rằng biến đó được khởi tạo trước khi sử dụng; nếu không, một UninitializedPropertyAccessException
sẽ được ném ra[1][2][3][4][5].
Các điều kiện sử dụng lateinit
bao gồm:
var
.lazy
là một hàm trả về một đối tượng Lazy<T>
, được sử dụng để khởi tạo các biến val
(không thể thay đổi) một cách trì hoãn. Điều này có nghĩa là giá trị của biến chỉ được tính toán khi nó được truy cập lần đầu tiên, và sau đó giá trị đó sẽ được lưu lại cho các lần truy cập tiếp theo. lazy
thường được sử dụng khi việc khởi tạo một biến là tốn kém về mặt tài nguyên hoặc cần thời gian và bạn muốn trì hoãn việc này cho đến khi thực sự cần đến giá trị của biến[1][2][3][4][5].
Các điều kiện sử dụng lazy
bao gồm:
val
.lateinit
dùng cho var
trong khi lazy
dùng cho val
.lateinit
cho phép khởi tạo biến sau này nhưng phải đảm bảo biến được khởi tạo trước khi sử dụng. lazy
khởi tạo biến khi nó được truy cập lần đầu và giữ giá trị đó cho mọi l...expert
Gợi ý câu hỏi phỏng vấn
Chưa có bình luận nào