gpt4 book ai didi

dart - 通用功能:非预期类型的​​类型

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

我陷入了编译器错误,可以缩小到这个小片段

class A {}

class B extends A {}

B b;

void testB(B b) {}
void callIt<T extends A>(T param, void func(T)) => func(param);
void main() {
callIt(b, testB);
}

它拒绝与 error: The function 'testB' has type 'void Function(B)' that isn't of expected type 'void Function(dynamic)'. This means its parameter or return type does not match what is expected. (strong_mode_invalid_cast_function at [pavement] lib\main.dart:13)
与相同的错误
  callIt<B>(b, testB);

我可以解决
    void testB(b) {}

但是我真的很想在这里保留param类型。
拜托,有人吗?

最佳答案

这是由于您的func表示法引起的。我不知道您从哪里得到的,但是这里是工作符号:

ReturnType Function(ParameterType parameterName) functionName

将其应用于您的示例,您的函数应如下所示(为可读性添加了花括号):

void callIt<T extends A>(T param, void Function(T t) func) {
func(param);
}

language tour中,您可以看到 Function是Dart中的关键字。

关于dart - 通用功能:非预期类型的​​类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57179598/

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