Dart语言中的常量构造函数:Dart const constructor

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 条评论) “”
   
验证码:

相关文章

推荐文章