在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 方法改為隱式的了