最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SafeList?in?Flutter?and?Dart小技巧

 更新時間:2022年12月08日 15:23:11   作者:程序員界的小學生  
這篇文章主要為大家介紹了SafeList?in?Flutter?and?Dart小技巧,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

正文

最近遇到一些列表的錯誤,例如,列表為空時直接調(diào)用方法會報錯。

一般都會在使用前判斷列表是否為空,再使用。

雖然Flutter提供了Null safety,但是用的時候還是會忘記或者忽略,直接使用'!'來跳過非空判斷。

封裝一個SafeList

代碼如下:

class SafeList<T> extends ListBase<T> {
    final List<T> _list;
    final T defaultValue;
    final T absentValue;
    SafeList({
        required this.defaultValue,
        required this.abssentValue,
        List<T>? values,
    }) : _list = values ?? [];
    @override
    T operator [](int index) => index < _list.length ? _list[index] : absentValue;
    @override
    void operator []=(int index, T value) => _list[index] = value;
    @override
    int get length => _list.length;
    @override
    T get first => _list.isNotEmpty ? _list.first : absentValue;
    @override
    T get last => _list.isNotEmptu ? _list.last : absentValue;
    @override
    set length(int newValue) {
        if (newValue < _list.length) {
            _list.length = newValue;
        } else {
            _list.addAll(List.filled(newValue - _list.length, defaultValue));
        }
    }
}

測試一下

void main() {
    const notFound = 'NOT_FOUND';
    const defaultString = '';
    final MyList = SafeList(
        defaultValue: defaultString,
        absentValue: notFount,
        values: ['Bar', 'Baz'],
    );
    print(myList[0]);// Bar
    print(myList[1]);// Baz
    print(myList[2]);// NOT_FOUND
    myList.length = 4;
    print(myList[3]);// ''
    myList.length = 0;
    print(myList.first);// NOT_FOUND
    print(myList.last);// NOT_FOUND
}

有時胡亂思考的一個小tips,如有更好的建議歡迎留言共同進步。

以上就是SafeList in Flutter and Dart小技巧的詳細內(nèi)容,更多關于SafeList Flutter Dart的資料請關注腳本之家其它相關文章!

相關文章

  • Android開發(fā)VR實戰(zhàn)之播放360度全景視頻

    Android開發(fā)VR實戰(zhàn)之播放360度全景視頻

    這篇文章主要為大家詳細介紹了Android開發(fā)VR實戰(zhàn)之播放360度全景視頻,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • Android中播放在線音樂代碼

    Android中播放在線音樂代碼

    這篇文章主要介紹了Android中播放在線音樂代碼,本文只給出了核心操作代碼,需要的朋友可以參考下
    2015-04-04
  • FFmpeg?Principle分析Out?put?File?數(shù)據(jù)結(jié)構(gòu)

    FFmpeg?Principle分析Out?put?File?數(shù)據(jù)結(jié)構(gòu)

    這篇文章主要為大家介紹了FFmpeg?Principle分析Out?put?File?數(shù)據(jù)結(jié)構(gòu),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • Android源碼使用16進制進行狀態(tài)管理的方法

    Android源碼使用16進制進行狀態(tài)管理的方法

    這篇文章主要介紹了Android源碼使用16進制進行狀態(tài)管理的方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-07-07
  • Android 中Notification彈出通知實現(xiàn)代碼

    Android 中Notification彈出通知實現(xiàn)代碼

    NotificationManager 是狀態(tài)欄通知的管理類,負責發(fā)通知、清除通知等操作。接下來通過本文給大家介紹Android 中Notification彈出通知實現(xiàn)代碼,需要的的朋友參考下吧
    2017-08-08
  • 打造酷炫的AndroidStudio插件

    打造酷炫的AndroidStudio插件

    這篇文章主要為大家詳細介紹了如何打造酷炫的AndroidStudio插件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • Android Studio 3.6 調(diào)試 smali的全過程

    Android Studio 3.6 調(diào)試 smali的全過程

    這篇文章主要介紹了Android Studio 3.6 調(diào)試 smali, 目前最新版的 Android Studio 利用附加功能調(diào)試 smali 非常方便,具體操作步驟跟隨小編一起看看吧
    2020-02-02
  • Android中如何獲取視頻文件的截圖、縮略圖

    Android中如何獲取視頻文件的截圖、縮略圖

    這篇文章主要介紹了Android中如何獲取視頻文件的截圖、縮略圖的相關資料,需要的朋友可以參考下
    2016-03-03
  • android利用剪切板傳遞數(shù)據(jù)

    android利用剪切板傳遞數(shù)據(jù)

    這篇文章主要為大家詳細介紹了android利用剪切板傳遞數(shù)據(jù),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • Android多媒體教程之播放視頻的四種方法

    Android多媒體教程之播放視頻的四種方法

    這篇文章主要給大家介紹了關于Android多媒體教程之播放視頻的四種方法,分別是通過intent的方式,調(diào)用系統(tǒng)自帶的播放器、使用VideoView、MediaPlayer + SurfaceView及MediaPlayer + TextureView等方法,需要的朋友們可以參考學習。
    2017-06-06

最新評論

福贡县| 微博| 桑植县| 雅安市| 喀什市| 清流县| 吉水县| 方城县| 定西市| 清徐县| 扬州市| 定州市| 都昌县| 阳原县| 阿合奇县| 淳安县| 北川| 玛沁县| 门源| 上饶县| 金乡县| 东乡| 阿拉尔市| 余江县| 马龙县| 杭锦后旗| 抚远县| 鄂尔多斯市| 田东县| 遵义市| 兰溪市| 视频| 巴青县| 龙口市| 牙克石市| 彰化市| 富川| 寿宁县| 错那县| 鹿邑县| 永定县|