Flutter.. 两个点语法含义

  在Flutter编程中,会经常用到".."的语法糖,如下

state.clone()
          ..splashImg = action.img
          ..famousSentence = action.famousSentence;

  其实以上代码等同于

state.clone()
state.splashImg = action.img
state.famousSentence = action.famousSentence;

  简单的可以看成链式调用, 但和Java等的链式调用不同的是: 

Java中的链式调用有个规律, "谁调用,返回谁" ,比如 
  public Alert setTitle(String str){
    Alert.title = str;
    return Alert;
}
在这里边Alert是调用主体, 最后返回的还是Alert;

而在Dart中 ".." 不用在方法中返回调用主体; 尽管源码的实现方式也是通过set进去的,但我们看到的就是Dart给我们用的语法糖, 因为Dart本身就把成员变量的getter setter 方法改为隐式的了

 

posted @ 2020-07-23 17:32  GLORY-HOPE  阅读(2436)  评论(0编辑  收藏  举报