lou*_*luo 3 dart dartium dart-editor
为什么这不是Dart中的错误?
List<String> listA = ['aa', 1, 'cc']; //not compile time error, not run time error??
Run Code Online (Sandbox Code Playgroud)
我正在使用Dart编辑器。
写作List<String> listA = ['aa', 1, 'cc'];就像写作List<String> listA = <dynamic>['aa', 1, 'cc'];。该runtimeType的['aa', 1, 'cc']就是List这与类型标注兼容List<String>你使用。
如果要定义一个列表,String以在编辑器中显示警告,并在运行时显示错误,则应首选:
List<String> listA = <String>['aa', 'cc'];
// or
final listA = <String>['aa', 'cc'];
Run Code Online (Sandbox Code Playgroud)
为了更好地理解这里的一些示例:
print((['aa', 1, 'cc']).runtimeType); // List
print((['aa', 'cc']).runtimeType); // List
print((<dynamic>['aa', 'cc']).runtimeType); // List
print((<String>['aa', 'cc']).runtimeType); // List<String>
List<int> l1 = ['aa', 1, 'cc']; // ok
List<int> l2 = ['aa', 'cc']; // ok
List<int> l3 = <dynamic>['aa', 'cc']; // ok
List<int> l4 = <String>['aa', 'cc']; // warning in editor + runtime error
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
427 次 |
| 最近记录: |