gpt4 book ai didi

dart - 如何在Dart中接受对象或List 作为参数?
转载 作者:行者123 更新时间:2023-12-03 04:14:03 25 4
gpt4 key购买 nike

有没有办法接受该对象的特定Type或该ListType作为带有类型检查的函数/构造函数参数?

这件事可以通过下面的代码来实现。但是我希望IDE在用户传递意外类型的Object时明确警告用户。也许像类型标注...

码:

sampleFunction(Object o)
{
if(o is Type){
// do something with o
} else (o is List<Type>){
// use for-each loop and ...
} else {
throw [...];
}
}

最佳答案

没有。

Dart类型系统没有任何表达一般联合类型(一种类型或另一种不相关类型)的方法。类型系统中有两种内置的联合类型:FutureOr和可为空的类型(随着当前正在开发的Null安全语言更新而变得明确)。其他联合类型不能为表达式,因此您不能以任何方式将“FooList<Foo>”指定为类型。

唯一的解决方案是选择一个通常是dynamic两者的父类(super class)型的类型,然后在函数内部检查它是FooList<Foo>还是其他类型-这就是错误。

关于dart - 如何在Dart中接受对象或List <Object>作为参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62036417/

25 4 0