专业的编程技术博客社区

网站首页 > 博客文章 正文

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

baijin 2024-08-23 10:39:17 博客文章 10 ℃ 0 评论

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是两个常量,它们指向的是同一个对象。

常量构造函数的好处

编译器会对常量进行优化,如果两个常量的构造函数和参数值都是一样的,编译器会重用已有的常量对象,不会再创建新对象。

常量构造函数的要求

  1. 要定义常量构造函数,class里所有的字段必须是final的,也就是不能改变的。
  2. 使用常量构造函数时,传递的参数也必须都是常量。

另外,可以把常量构造函数当成普通构造函数使用,这时构造函数的参数可以不用是常量。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表