gpt4 book ai didi

Dart - 静态类型列表中的值

转载 作者:行者123 更新时间:2023-12-01 10:51:06 26 4
gpt4 key购买 nike

为什么这不是 Dart 中的错误?

List<String> listA = ['aa', 1, 'cc']; //not compile time error, not run time error??

我正在使用 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'];

为了更好地理解这里有一些示例:

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

关于Dart - 静态类型列表中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20130862/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com