https://dart.dev/guides/language/effective-dart/design#types
如果代码是类型注释的,则类型显式写入密码
如果推断出代码,则没有编写类型注释,并且Dart成功地找到了自己的类型。推理可能失败,在在这种情况下,指导方针并不认为这是推断出来的。
如果代码是动态的,那么它的静态类型就是特殊的动态类型代码可以是显式注释的动态代码,也可以是推断代码。
换句话说,某些代码是否被注释或推断为正交于它是动态的还是某种其他类型。
上面的解释非常抽象,我不确定这到底意味着什么。
尤其是最后一句,是不是意味着"它可以被推断为另一种类型,即使它被注释为"yanmic";?
但也许我觉得这不对。
因为我记得在开发过程中IDE告诉我;因为它是动态类型,所以不能访问该成员">
如果没有,我想更具体地解释一下它到底意味着什么。如果你能得到一些线索,那会很有帮助。
基本上,变量可以进行类型注释:
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
因此,变量被注释或推断的天气与它是否是动态的无关。