Flutter项目中Dart语言的`..`符号代表什么含义?
Dart中
..符号含义详解 基础定义
Dart中的..叫做级联运算符,作用是在同一个对象上连续执行多个操作(调用方法、赋值属性),无需重复书写对象名称,且调用完成后会直接返回原对象本身,而不是单个方法/属性操作的返回值。
针对示例的解释
你给出的代码示例:
@override void initState() { super.initState(); _controller = AnimationController( duration: const Duration(milliseconds: 1000), vsync: this )..repeat(); // ^^ 此处为`..`的使用位置 }
等效于不使用级联的写法:
@override void initState() { super.initState(); // 先实例化AnimationController赋值给_controller _controller = AnimationController( duration: const Duration(milliseconds: 1000), vsync: this ); // 再单独调用_controller的repeat方法 _controller.repeat(); }
使用级联后可以省略重复的对象名,代码更简洁紧凑。
更多常见用法
多方法连续调用
// 普通写法 var numList = [1, 2, 3]; numList.add(4); numList.remove(2); numList.addAll([5,6]); // 级联写法 var numList = [1,2,3] ..add(4) ..remove(2) ..addAll([5,6]);
多属性连续赋值
class User { String name = ''; int age = 0; } // 普通写法 var user = User(); user.name = '李明'; user.age = 25; // 级联写法 var user = User() ..name = '李明' ..age = 25;
注意事项
级联运算符会忽略单个操作的返回值,始终返回最开始的操作对象,如果你需要获取某个方法的返回值,不要使用级联写法。
内容的提问来源于stack exchange,提问作者amirhe
相关产品推荐
相关产品推荐

