Dart的基本语法和Java有些类似,但是Dart有些额外的“奇葩”语法,比如常量构造函数。
class Foo { const Foo(int x);}const foo1 = Foo(3);var foo2 = const Foo(3);// identical返回两个变量是否引用同一个对象assert(identical(foo1, foo2));
这样创建出来的foo1和foo2是两个常量,它们指向的是同一个对象。编译器会做优化,如果参数值都是一样的,会重用已有的常量对象。
要定义常量构造函数,class里所有的字段必须是final的,也就是不能改变的。
使用常量构造函数时,传递的参数也必须都是常量。
可以把常量构造函数当成普通构造函数使用,这时构造函数的参数可以不用是常量。
留言与评论(共有 0 条评论) “” |