当前位置: 首页 > 知识库问答 >
问题:

为什么在dart中的赋值运算符后使用const关键字?

孟品
2023-03-14

我正在学习颤振(主要来自Youtube)

final SomeClass someVariable = const SomeClass(withSomeValue);

为什么我们需要在赋值运算符后面使用const关键字,因为我们已经将其设置为final

共有2个答案

魏朗
2023-03-14

在这里,对象分配只发生一次,所以这对性能有好处。

final Test test = const Test();
final Test test2 = const Test();

在这里,它发生了两次。

final Test test = Test();
final Test test2 = Test();
邓焱
2023-03-14

这是一种内存优化,可以使用不可变对象。

const实例共享:

dart prettyprint-override">final a = const Whatever();
final b = const Whatever();

print(identical(a, b)); // true

在这个代码段中,ab共享同一个对象实例,因此只分配一次。

 类似资料:
  • 问题内容: 为什么在Java中不使用const关键字? 您能看到在Java语法中使用某些可传递const或不可变关键字的任何缺点,还是为什么选择了常见的繁琐方法? 您能看到关闭请求的 原因 ,Sun提供了任何解释吗? 问题答案: 您能看到关闭请求的原因吗,Sun是否提供任何解释? 是。Sun在请求本身中提供了三个为什么不对请求执行操作的原因。我引用: “目前尚无计划将此功能添加到Java中。除了蔓

  • 本文向大家介绍JavaScript中的赋值运算符是什么?,包括了JavaScript中的赋值运算符是什么?的使用技巧和注意事项,需要的朋友参考一下 使用赋值运算符,您可以将值分配给变量。JavaScript支持以下赋值运算符- 序号 运算符和说明 1 =(简单分配) 从右侧操作数到左侧操作数分配值 例如: C = A + B将A + B的值分配给C 2 + =(添加和分配) 将右操作数添加到左操作

  • Dart中的和关键字有什么区别?

  • 我试图用if-let表达来概括我的大脑。我知道它的作用,但我找不到一些细节背后的基本原理。 第一个细节是赋值运算符而不是相等运算符的使用,第二个细节是操作数的位置。 例如: 在我看来,这样更“清晰”: 或者更好: 有人能帮我理解这背后的原理吗?

  • 本文向大家介绍为什么BINARY关键字与MySQL REGEXP运算符一起使用?,包括了为什么BINARY关键字与MySQL REGEXP运算符一起使用?的使用技巧和注意事项,需要的朋友参考一下 使用BINARY关键字强制REGEXP将字符串作为二进制字符串进行匹配。我们将在这里看到区别。 让我们首先创建一个表- 使用insert命令在表中插入一些记录。我们在这里有不同情况的名字- 使用selec

  • 本文向大家介绍PHP中“ =&”赋值运算符的含义和用法是什么?,包括了PHP中“ =&”赋值运算符的含义和用法是什么?的使用技巧和注意事项,需要的朋友参考一下 除了将数据从一个变量复制到另一个变量之外,还可以使用'=&'运算符对数组或对象进行更改。这就是所谓的“按引用分配”方法,这意味着值或对象都将指向相同的数据,并且不会复制数据。这样,避免了数据冗余。 示例 输出结果 在<php>标记内,声明了