有时我看到这个 List List = [];
然后列出. . add(颜色)
1点(.)和2点(..)的区别是什么?
有时我看到这个 List List = [];
然后列出. . add(颜色)
1点(.)和2点(..)的区别是什么?
当前回答
. .称为级联表示法。如果你想在同一个对象上调用多个方法,它允许你不重复同一个目标。
List list = [];
list.add(color1);
list.add(color2);
list.add(color3);
list.add(color4);
// with cascade
List list = [];
list
..add(color1)
..add(color2)
..add(color3)
..add(color4);
其他回答
. .在dart中称为级联运算符。
它允许你使用多个子序列操作:
例子:
banerad . . load() . .()。
List coursename;
coursename..add("java")..add("flutter" )..add("dart");
这是另一个例子
级联(..)允许您对同一个对象进行一系列操作。阅读文档了解详情
querySelector('#confirm') // Get an object.
..text = 'Confirm' // Use its members.
..classes.add('important')
..onClick.listen((e) => window.alert('Confirmed!'));
前面的例子等价于:
var button = querySelector('#confirm');
button.text = 'Confirm';
button.classes.add('important');
button.onClick.listen((e) => window.alert('Confirmed!'));
它是Dart的级联运算符
var l1 = new List<int>()..add(0)..addAll([1, 2, 3]);
结果l1是一个列表[0,1,2,3]
var l1 = new List<int>().add(0).addAll([1, 2, 3]);
导致错误,因为.add(0)返回void
. .(在前一个例子中)指向新的List(), 时间。(在后面)指的是表达式前一部分的返回值。
. .引入的目的是为了避免在add()等各种方法中返回此值,以便能够流畅地使用API。
. .为所有类提供开箱即用的功能。
双点(..)也称为级联算子
如果你想在同一个对象上调用多个方法,它允许你不重复同一个目标。
例如:没有双点
var paint = Paint();
paint.color = Colors.black;
paint.strokeCap = StrokeCap.round;
paint.strokeWidth = 5.0;
但是在使用“..,上面的代码将被写成这样:
var paint = Paint()
..color = Colors.black
..strokeCap = StrokeCap.round
..strokeWidth = 5.0;
三重点(…)即扩散运算符
“…”也被称为展开运算符,它提供了一种简洁的方式将多个值插入到一个集合中。 你可以使用它将一个列表中的所有元素插入到另一个列表中:
通常我们使用.add()或.addAll()向列表中添加数据,如下所示:
var list = [1, 2, 3];
var list2=[];
list2.addAll(list);
在使用“…”之后,我们将编写如下代码:
var list = [1, 2, 3];
var list2 = [0, ...list];
. .称为级联表示法。如果你想在同一个对象上调用多个方法,它允许你不重复同一个目标。
List list = [];
list.add(color1);
list.add(color2);
list.add(color3);
list.add(color4);
// with cascade
List list = [];
list
..add(color1)
..add(color2)
..add(color3)
..add(color4);