Dart 語法中兩個點(diǎn)..和三個點(diǎn)...的用法

在實(shí)際的開發(fā)中經(jīng)常會遇到.....這樣的用法,今天分別說一下這兩個語法的用法及使用場景.

兩個點(diǎn)

..稱為級聯(lián)操作符,可以實(shí)現(xiàn)對一個對象的連續(xù)調(diào)用,然后將原對象返回.

使用場景1:初始化視頻控制器
/// 初始化控制器
_controller = VideoPlayerController.network(list[0]['video_url'])
      ///設(shè)置視頻循環(huán)播放
      ..setLooping(true)
      ///設(shè)置監(jiān)聽
      ..addListener(() {
        setState(() {
        });
      })
      ///初始化
      ..initialize().then((_) async {
        ///初始化完成更新狀態(tài),不然播放器不會播放
        setState(() {
          playOrPauseVideo();
        });
      }).catchError((err) {
        ///播放出錯
        print(err);
      });
使用場景2:使用Bloc框架給state里面的屬性賦值時
AllOrderState init() {
    return AllOrderState()
      ..allOrderList = allOrderList
      ..isLoadNoData = isLoadNoData;
  }

  AllOrderState clone() {
    return AllOrderState()
      ..allOrderList = allOrderList
      ..isLoadNoData = isLoadNoData;
  }
好處

這樣就能省去創(chuàng)建實(shí)例對象,然后再依次調(diào)用的繁瑣,實(shí)現(xiàn)鏈?zhǔn)秸{(diào)用.

三個點(diǎn)

...用來拼接集合,如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'};
使用場景: 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ù)組拼接變得簡單

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容