gpt4 book ai didi

dart - 如何在Dart中返回这种疯狂的类型?

转载 作者:行者123 更新时间:2023-12-03 04:21:23 24 4
gpt4 key购买 nike

我正在尝试模拟mongo_dart中的.find函数,它正在请求一个我无法解决的返回函数。它有一个类型,然后是另一个类型,然后是名称。什么/如何表达此返回类型。

这显然是合法代码:

Stream<Map<String, dynamic>> Function([selector]) _test(Invocation realInvocation) {
}

class selector {
}

返回 Stream<Map<String, dynamic>>会引发错误-它表示需要 Stream<Map<String, dynamic>> Function([selector])
救命!我从未见过类似的东西,而Google并没有太大帮助。

编辑,感谢Irn在下面的评论,最终的解决方案是这段代码。查看他们的答案和我为澄清而发表的评论

Stream<Map<String, dynamic>> Function([dynamic]) _test(Invocation realInvocation) {
return ([selector]) {
return Stream.value({"response":true});
};
}

最佳答案

返回类型为Stream<Map<String, dynamic>> Function([selector])
这就是函数的类型。具有该类型的函数声明可以是:

Stream<Map<String, dynamic>> createMaps([selector s]) async* {
... do something ...
yield map;
... do more ...
}
[selector]部分意味着该函数必须接受一个类型为 selector的可选位置参数(实际上应该大写以表明它是一种类型)。 Stream<Map<String, dynamic>>表示该函数返回流。

因此,由于 _test返回这样的函数,您可以将test编写为:

Stream<Map<String, dynamic>> Function([selector]) _test(Invocation realInvocation) {
return createMaps; // But should probably use realInvocation for something.
}

(这会使 _test的类型为:

Stream<Map<String, dynamic>> Function([selector]) Function(Invocation)

这是一口!)

关于dart - 如何在Dart中返回这种疯狂的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62440431/

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