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

Inline class trong Kotlin là gì và khi nào...

Câu trả lời

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:

kotlin Copy
@JvmInline
value class UserId(val value: String)

fun main() {
    val userId = UserId("12345")
    println(userId.value) // ...
senior

senior

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

expert

Tại sao chúng ta sử dụng companion object như một loại thay thế cho các trường static trong Java trong Kotlin?

middle

Bạn có thể sử dụng IntArrayArray<Int> trong Kotlin một cách linh hoạt không?

middle

Sự khác biệt giữa ListArray là gì?

Bình luận

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

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