Chú thích loại không được phép ảnh hưởng đến hành vi trong Dart. Nếu bạn không chạy trong chế độ kiểm tra, thì đây:
int a = new A();
sẽ làm việc giống như này:
var a = new A();
tại thời gian chạy. Nói cách khác, khi không ở chế độ được chọn, bạn có thể lưu trữ A
của mình trong một biến được chú thích dưới dạng int
, nhưng không có chuyển đổi thực tế nào diễn ra.
Nếu bạn đang chạy ở chế độ được chọn, biểu mẫu đầu tiên sẽ cung cấp cho bạn ngoại lệ thời gian chạy.
Tôi không chắc chắn, nhưng tôi nghĩ những gì bạn đang hỏi là một cách để xác định một sự chuyển đổi giữa các lớp học của bạn A
và int
rằng sẽ xảy ra tự động khi "diễn viên" đến một int
. Không có điều gì tồn tại, theo hiểu biết của tôi. Bạn chỉ cần xác định một phương thức để làm như vậy. Ví dụ:
int a = new A().to_i();
Nguồn
2013-06-05 23:45:23
Tôi tin rằng cú pháp là "không có cú pháp nào". Nói cách khác - bỏ qua '()' và nó "chỉ nên làm việc". Xem http://news.dartlang.org/2012/05/types-and-casting-in-dart.html. Phải có một giả định rằng một downcast là có thể (và có ý nghĩa). Lớp của bạn là gì 'A'? – Floris
Bạn có thể viết var a = new A(); int b = a; – SpiderPig
Chuyển đổi loại tiềm ẩn khó thực hiện trong ngôn ngữ script. Nhưng chuyển đổi rõ ràng có thể được thực hiện rất dễ dàng. Liên tục trong Dart không tồn tại toán tử chuyển đổi rõ ràng như vậy. Vì vậy, bạn không thể làm điều này trong Dart 'var a = (int) mới A()' bởi vì toán tử chuyển đổi rõ ràng không được triển khai trong Dart. – mezoni