Dấu chấm than đơn có nghĩa là gì trong Kotlin? Tôi đã nhìn thấy nó một vài lần đặc biệt là khi sử dụng Java API. Nhưng tôi không thể tìm thấy nó trong tài liệu cũng như trên StackOverflow.Dấu chấm than đơn lẻ trong Kotlin
Trả lời
Chúng được gọi là platform types và có nghĩa là Kotlin không biết liệu giá trị đó có thể hoặc không thể là null
và tùy thuộc vào bạn có quyết định xem nó có bị vô hiệu hay không.
Tóm lại, vấn đề là bất kỳ tài liệu tham khảo đến từ Java có thể được null, và Kotlin, là null-an toàn bằng cách thiết kế, buộc người dùng null-kiểm tra tất cả các giá trị Java, hoặc sử dụng các cuộc gọi an toàn (
?.
) hoặc xác nhận không null (!!
). Đó là những tính năng rất tiện dụng trong thế giới tinh khiết của Kotlin, có xu hướng biến thành thảm họa khi bạn phải sử dụng chúng quá thường xuyên trong cài đặt Kotlin/Java.Đây là lý do tại sao chúng tôi sử dụng phương pháp triệt để và làm hệ thống kiểu Kotlin của thoải mái hơn khi là nói đến Java interop: Các loại tại tài liệu tham khảo đến từ Java đã đánh dấu đặc biệt - Kotlin Blog
Đó là ký hiệu cho platform types:
T!
có nghĩa là "T
hoặc T?
"
A Loại ký hiệu với !
được gọi là nền tảng loại, là loại đến từ Java và do đó hầu hết có thể là null
. Đó là những gì trình biên dịch Kotlin truyền theo mặc định khi gọi Java (đối với các trường hợp cơ bản nhất, các phương thức Java có thể là annotated để giải quyết vấn đề này). Bạn nên xử lý các loại nền tảng là không thể loại trừ các loại, trừ khi bạn chắc chắn biết rằng API cụ thể sẽ không bao giờ trả về null
. Trình biên dịch cho phép các kiểu nền tảng được gán cho các biến của cả hai kiểu nullable và non-null.
[...]
T!
có nghĩa là "T or T?
" [...]
Bạn có thể tham khảo các loại nền tảng là "loại chưa biết khả năng vô hiệu ". Điều quan trọng cần biết là bạn không thể sử dụng kiểu đánh dấu chấm than cho các kiểu của riêng bạn, nó không phải là một phần của cú pháp Kotlin, nó chỉ là một ký hiệu.
- 1. Dấu chấm than đơn trong YAML là gì?
- 2. Dấu chấm than trong HTML Email
- 3. java eclipse dấu chấm than màu đỏ
- 4. Dấu chấm than màu cam trên smartgit
- 5. Dấu chấm than trên tệp .xlsm
- 6. Toán tử chấm than?
- 7. Dấu chấm than bị thiếu trong tên API facebook
- 8. Dấu chấm than sau khi băm (#!) Trong ứng dụng angularjs
- 9. Dấu chấm than đôi trong tập lệnh bash
- 10. Dấu chấm than trong chỉ mục mảng làm gì?
- 11. Làm gì !! (dấu chấm than đôi) có nghĩa là gì?
- 12. Sự cố đánh dấu chấm than trên dll?
- 13. Dấu hoa thị trước dấu bằng có nghĩa là gì (* =)? Còn dấu chấm than thì sao?
- 14. Python: dấu hai chấm đơn và hai dấu hai chấm
- 15. Tại sao dấu chấm than được sử dụng trong các phương thức của Ruby?
- 16. Dấu chấm than có ý nghĩa gì trong việc triển khai đặc điểm?
- 17. dấu chấm than xuất hiện trong nội dung thư email bằng cách sử dụng phpmailer
- 18. Dấu chấm than trong tệp yml dịch i18N của Rails có nghĩa là gì?
- 19. Làm cách nào để thoát khỏi dấu chấm than! trong cmd script?
- 20. Trong PHP là gì | = có nghĩa là, Đó là đường ống bằng (không dấu chấm than)
- 21. Dấu chấm than có ý nghĩa gì trong khai báo Haskell?
- 22. Dấu chấm than Ngẫu nhiên trong Kết quả của HTML HTML-Email
- 23. Làm thế nào để phù hợp với dấu chấm than (!) Trong PHP?
- 24. #! hashtag và dấu chấm than trong các liên kết dưới dạng thư mục?
- 25. Không thể mở tài nguyên trong các thư mục kết thúc bằng dấu chấm than (!)
- 26. Làm thế nào để vượt qua đối số với dấu chấm than trên linux?
- 27. Trong Typescript, là gì! (dấu chấm than đánh dấu/bang) nhà điều hành khi dereferencing một thành viên?
- 28. Dấu hiệu cảnh báo/dấu chấm than trong vòng tròn màu đỏ bên cạnh tên bảng và tab Truy vấn?
- 29. Điều gì đặt dấu chấm than (!) Ở phía trước biến tham chiếu đối tượng?
- 30. Dấu chấm than đôi là gì !! toán tử có nghĩa là gì?