在實(shí)際的開(kāi)發(fā)中經(jīng)常會(huì)遇到..
和...
這樣的用法,今天分別說(shuō)一下這兩個(gè)語(yǔ)法的用法及使用場(chǎng)景.
兩個(gè)點(diǎn)
..
稱(chēng)為級(jí)聯(lián)操作符辛蚊,可以實(shí)現(xiàn)對(duì)一個(gè)對(duì)象的連續(xù)調(diào)用,然后將原對(duì)象返回.
使用場(chǎng)景1:初始化視頻控制器
/// 初始化控制器
_controller = VideoPlayerController.network(list[0]['video_url'])
///設(shè)置視頻循環(huán)播放
..setLooping(true)
///設(shè)置監(jiān)聽(tīng)
..addListener(() {
setState(() {
});
})
///初始化
..initialize().then((_) async {
///初始化完成更新?tīng)顟B(tài),不然播放器不會(huì)播放
setState(() {
playOrPauseVideo();
});
}).catchError((err) {
///播放出錯(cuò)
print(err);
});
使用場(chǎng)景2:使用Bloc框架給state里面的屬性賦值時(shí)
AllOrderState init() {
return AllOrderState()
..allOrderList = allOrderList
..isLoadNoData = isLoadNoData;
}
AllOrderState clone() {
return AllOrderState()
..allOrderList = allOrderList
..isLoadNoData = isLoadNoData;
}
好處
這樣就能省去創(chuàng)建實(shí)例對(duì)象,然后再依次調(diào)用的繁瑣,實(shí)現(xiàn)鏈?zhǔn)秸{(diào)用.
三個(gè)點(diǎn)
...
用來(lái)拼接集合泵殴,如List儡羔,Map等
//這里組合后 list就變成[ 'a', 'b', 'c','d', 'e', 'f']
var list2 = ['d', 'e', 'f'];
var list = ['a', 'b', 'c', ...list2];
//這里組合后map就變成{'a': 'a', 'b': 'b','c': 'c', 'd': 'd'}
var map2 = {'a': 'a', 'b': 'b'};
var map = {...map2, 'c': 'c', 'd': 'd'};
使用場(chǎng)景: Row 或者 Column 拼接數(shù)組
List<Widget> widgetList = [];
widgetList.add(const Text('1'));
widgetList.add(const Text('2'));
widgetList.add(const Text('3'));
widgetList.add(const Text('4'));
return SingleChildScrollView(
child: Column(
children: [
...widgetList,
const Text('5')
],
),
);
這樣就可以把Text('1'), Text('2'), Text('3'), Text('4'), Text('5')
很方便的拼接在列表上面了,
好處
數(shù)組拼接變得簡(jiǎn)單