gpt4 book ai didi

dart - 如果使用泛型的类型相同,如何比较?

转载 作者:行者123 更新时间:2023-12-03 04:15:22 25 4
gpt4 key购买 nike

假设我有类(class) someClass

class someClass<Generics> {}

someClass<int> a = someClass<int>();
someClass<String> b = someClass<String>();
someClass c = someClass();
如何检查元素 a,b,c是同一类型 ( someClass) 吗?
在 Dart 中可以吗?
我尝试使用 runtimeType方法,但类型不同。

最佳答案

实际上与其他语言(如 Java)不同,Dart 在泛型上没有类型删除。这意味着,对象 a , bc在你的例子中不同种类。

如果你

print(a.runtimeType);
print(b.runtimeType);
print(c.runtimeType);`

你会得到
SomeClass<int>
SomeClass<String>
SomeClass<dynamic>

泛型类型在运行时不会被删除。如果要检查是否所有对象都是 SomeClass 类型,你可以使用
print(a is SomeClass);
print(b is SomeClass);
print(c is SomeClass);

这会给你
true
true
true

关于dart - 如果使用泛型的类型相同,如何比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59383308/

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