上QQ阅读APP看书,第一时间看更新
2.20 理解Dart语言中的final和const
在结束本章之前,有一个重要的关于Dart语言的基础概念,这与Flutter无关,只是关于Dart语言。代码如下:
final表示属性是不可以修改的,不可以设置一个新的值,List <String>是引用类型,表示可以编辑一个存在的数组,而不是在创建一个新的数组。所以news.add('first')不会把新的对象赋值给news。这跟数字不一样,如果定义一个数字age=12,在setState()方法中,改成age=29,会得到一个警告,显示不能修改age,这是因为我们通过等号给age重新赋值了,但在news这里我们没有使用等号。数组和对象是引用类型,final List <String> news=[]表示保存了news的引用,即使用final修饰,调用news的任何方法都是没问题的,可以改变它内部的数据,但是不可以给它重新赋值。所以在final intage=12赋值后,可以调用age的round()方法。
final修饰的属性不可以使用等号给它重新赋值,但可以调用它的内部方法。还有一个关键字const,使用const修饰的属性表示它是常量,并且这个属性永久不变,也不可以调用属性的内部方法。