Inline class trong Kotlin là gì và khi nào...
Inline class trong Kotlin là gì và khi nào...
Inline class trong Kotlin là một loại lớp đặc biệt được sử dụng để bọc một giá trị trong một lớp để tạo ra một kiểu dữ liệu cụ thể hơn cho miền vấn đề. Tuy nhiên, việc này thường gây ra chi phí về hiệu suất do phải cấp phát thêm trên bộ nhớ heap. Đặc biệt, nếu kiểu dữ liệu được bọc là kiểu nguyên thủy, thì việc này càng trở nên đáng kể vì kiểu nguyên thủy thường được tối ưu hóa bởi runtime, trong khi các bọc của chúng thì không. Để giải quyết vấn đề này, Kotlin giới thiệu inline class, một loại lớp không có danh tính và chỉ chứa giá trị. Inline class cho phép dữ liệu của lớp được inlined vào nơi sử dụng, tương tự như cách nội dung của các hàm inline được inlined vào điểm gọi hàm[1].
Chúng ta cần sử dụng inline class khi muốn tạo ra một kiểu dữ liệu mới mà không muốn chịu chi phí về hiệu suất do cấp phát bộ nhớ và muốn tránh việc boxing và unboxing không cần thiết. Inline class thích hợp để tối ưu hóa hiệu suất, đặc biệt khi làm việc với các kiểu dữ liệu nguyên thủy và muốn giữ các giá trị này trong một kiểu dữ liệu có ý nghĩa hơn trong miền vấn đề cụ thể.
Ví dụ về việc sử dụng inline class trong Kotlin:
@JvmInline
value class UserId(val value: String)
fun main() {
val userId = UserId("12345")
println(userId.value) // ...
senior
Gợi ý câu hỏi phỏng vấn
Chưa có bình luận nào