https://dart.dev/guides/language/effective-dart/design#types
--如果代码是类型注释的,类型将显式地写入代码中。
如果推断出代码,则没有编写类型注释,Dart成功地自行确定了类型。推理可能失败,在这种情况下,指南不考虑推断。
如果代码是动态的,那么它的静态类型就是特殊的动态类型。可以显式注释动态代码,也可以推断代码。
换句话说,是否对某些代码进行注释或推断,与它是动态的还是其他类型的代码是正交的。
上面的解释非常抽象,我不清楚这到底是什么意思。
尤其是最后一句,它是否意味着“它可以被推断为另一种类型,即使它是类型-注解为‘动态’”?
但也许我觉得这不对。
因为我记得在开发过程中IDE告诉我“因为它是一个动态类型,所以您不能访问该成员”。
如果不是,我想要更具体地解释它究竟意味着什么。如果你能得到一些线索会很有帮助的。
发布于 2022-06-01 23:56:27
基本上,变量可以被类型注释:
int x = 1;此外,可以推断:
var x = 1; // dart knows x is an integer because you assigned 1 to it.变量可以是动态的,这意味着它的类型可以改变。
这就是前三句话的意思,最后一句是说动态变量既可以推断也可以注释:
dynamic someFunction() {
return 1;
}
dynamic x = 'aaa'; // annotated
var y = someFunction(); // inferred因此,变量是否被注释或推断与天气无关,它是动态的还是不动态的。
https://stackoverflow.com/questions/72469143
复制相似问题