gpt4 book ai didi

generics - Dart:带有泛型的typedef似乎不起作用

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

我想通过typedef定义一个函数,然后在调用它时传递正确的Type。
像这样:

typedef testFn<T>();

main() {
testFn tester;
tester = testerFn;
tester<int>(); // Error: The method '() → dynamic' is declared with 0 type parameters, but 1 type arguments were given.
}

testerFn<T>() {//Do something}

我不知道这是不是bug,但是无论如何,我该如何解决类似的问题?

最佳答案

似乎对Dart List - filter on sub type很熟悉

因此,也许可以通过封装类来解决您的问题。

typedef testFn<T>();

class TestF<T> {
final testFn _f;
const TestF(final testFn this._f);
eval() => _f();
}

testerFn<T>() {
print('testFn!');
}

main() {
TestF<int> c = const TestF(testerFn);
c.eval();
}

实际上,在原始代码中,如果使用 int说明符声明该函数,则它将起作用。
typedef testFn<T>();

main() {
testFn<int> tester;
tester = testerFn;
tester();
}

testerFn<T>(){
print('testerFn!');
}

关于generics - Dart:带有泛型的typedef似乎不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44263401/

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