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

Sự khác biệt giữa ***** và *Any...

Câu trả lời

Trong Kotlin, * (được gọi là star projection) và Any đều liên quan đến generics nhưng chúng có ý nghĩa và mục đích sử dụng khác nhau.

  • Any là kiểu cơ bản nhất trong Kotlin, tất cả các lớp đều kế thừa từ Any. Khi sử dụng Any trong generics, bạn đang chỉ định rằng tham số kiểu có thể là bất kỳ kiểu nào, nhưng bạn vẫn giữ được thông tin về kiểu đó. Điều này có nghĩa là bạn có thể gọi các phương thức được định nghĩa trong Any (như equals(), hashCode(), và toString()) trên các đối tượng của kiểu generic đó[2].

  • * (star projection) được sử dụng khi bạn không quan tâm hoặc không cần biết thông tin cụ thể về kiểu tham số. Nó thường được sử dụng trong các trường hợp bạn muốn làm việc với một kiểu generic mà không cần phải xác định hoặc sử dụng kiểu tham số cụ thể nào. Star projection hữu ích trong các trường hợp bạn chỉ muốn đọc dữ liệu từ một cấu trúc dữ liệu generic mà không gây ra lỗi kiểu dữ liệu tại thời điểm biên dịch. Tuy nhiên, khi sử dụng star projection, bạn không thể gọi các phương thức mà yêu cầu kiểu tham số cụ thể vì Kotlin không thể kiểm tra kiểu dữ liệu tại thời điểm biên dịch[1].

Ví dụ, ...

expert

expert

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

middle

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

middle

Ưu điểm của when so với switch trong Kotlin

junior

Làm thế nào để khởi tạo một mảng trong Kotlin với các giá trị?

Bình luận

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

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