const,static,final在Dart中表示完全不同的事物:
“ static ”表示成员在类本身而不是在类的实例上可用。这就是它的全部意思,并且没有用于其他任何用途。静态修改成员。
“ final ”表示单分配:最终变量或字段必须具有初始化程序。一旦分配了值,最终变量的值就无法更改。 final修改变量。
“ const ” 的含义在Dart中更加复杂和微妙。 const修改值。您可以在创建集合时使用它,例如const [1,2,3]以及在构造对象(而不是new)时使用const Point(2,3)。在这里,const意味着可以在编译时完全确定对象的整个深度状态,并且对象将被冻结并且完全不可变。
常量对象具有一些有趣的属性和限制:
它们必须由可在编译时计算的数据创建。const对象无权访问在运行时需要计算的任何内容。1 + 2是有效的const表达式,但新的DateTime.now()不是。
它们是深刻的,传递不变的。如果您有一个包含集合的最终字段,那么该集合仍然可以是可变的。如果您有const集合,则其中的所有内容也必须递归地为const。
它们被规范。这有点像字符串实习:对于任何给定的const值,无论const表达式被计算了多少次,都将创建并重用单个const对象。
喜欢可以加Q群号:913934649,点赞,评论;
简书: https://www.jianshu.com/u/88db5f15770d
网友评论