Fal*_*per 6 generics generic-programming dart
简单的情况,int 确实是一个数字。
我正在创建一个泛型 class test<T>
我想测试 T 以查看它是否继承自 number (或在 Dart 的情况下为 num )。
基于Object > num > int文档中的对象, 所以起初我想: T is num如果T是int. 测试int is num显示错误。我必须使用另一个关键字而不是is确定它是否是特定类的子类。
我试图将它设置为如果 T 是 num 的子级,它将处理比较不同于如果它们是字符串。
对我来说,这可以追溯到is-a和has-a关系的多态继承设计。
通过int is num您测试 的实例Type是否num是正确报告为的子类型false。
您要测试的内容很像5 is num.
在DartPad 中尝试一下。
正如评论中所指出的,注意is运行时类型的测试也很有用。所以,如果你有一个未初始化变量工作-例如,int nonInitializedVar;-与运行时类型Null,飞镖会返回false到is测试,因为Null不是一个子类num。
另一个重要的一点是,如果您想is在运行时使用类型(类),您将需要使用反射,使用诸如dart:mirrors或reflectable或 dart-analyzer 之类的包在代码生成的构建时执行它。
| 归档时间: |
|
| 查看次数: |
1733 次 |
| 最近记录: |