• dart特殊符号语法(一)


    许久没有写博客。浏览以往的博客,是那么稚嫩。就让它们当成成长的照片吧。重新开始操起这个记录的爱好,一方面把它当成可以查阅的资料,方便自己;另一方面希望有帮助于人。由于个人能力,认知有限,如读者发现有纰缪之处,希望不吝指教。
    今天分享下dart语言中的特殊符号语法使用。

    ?(问号)(Question mark)语法

    dart3.0之后增加了?语法。

    ?定义变量

    例子

    String? variable = null;

    解释

    声明一个变量,这个变量可以是null。
    当使用这个变量的方法时,需要先进行判定是否为null。这样来满足dart3.0的null compatible特性:
    print(varialbe?.toLowerCase());
    当编译器走到这里时,因看到variable是null,并且定义时就已经知道它潜在有可能是null,这是编程者设计时就已经预想到的,使用时有进行空预判(?.)所以就不再报错。

    个人见解

    增加了编程的可活跃范畴,是一个解放。Not bad!!!

    ?.引用也许是null的变量的函数、属性

    例子

    varialbe?.toLowerCase()

    解释

    再调用toLowerCase()方法前进行判定,如null则停止当前toLowerCase()的编译,但是整个编译流程会继续进行,而不把它当成是错误。这个通常和?定义一起配合使用。

    个人见解

    增加了编程的可活跃范畴,是一个解放。Not bad!!!

    ??双问号

    例子

    print(variable??"Other Value")

    解释

    假如不是空,那么使用它,假如是空,那么赋值为"Other Value"。

    个人见解

    通常用于取值时,短小精悍。你还能想到更简洁的处理吗?Brilliant!!!

    ??=双问号等号

    例子

    variable??="Another Value";

    解释

    假如不是空,那么就让它保持原样,假如是空,那么赋值为"Another Value"

    个人见解

    通常用于再赋值,短小精悍。你还能想到更简洁的处理吗?Brilliant!!!

    ...?三个点问号组合

    例子

    List? arr=[2,3,7];
    [...?arr,8]

    解释

    假如arr不是空,那么就延长数组并假如新元素8;假如arr是空,那么就不对arr进行任何操作。

    个人见解

    通常用于数组增加元素,短小精悍。你还能想到更简洁的处理吗?Brilliant!!!

    问号?与感叹号!的区别

    当我们使用问号进行判定引用变量时及时是空也可以编译通过。如果是使用感叹号判定引用,那么再值为空时会就行throw exception。要使用何种,要根据您的程序场景需求。

    关于late

    例子

    Class _MainPageState extends State{
    late String variable;
    @override
    void initState(){
    super.initState();
    variable="Value";//如果没有这个赋值,那么将会抛出异常
    }
    }

    解释

    late 是一个承诺,答应的晚些做的事情,是必须要做的。

    个人见解

    对于一些需要网络读取,或者文件加载等类似慢获取的变量一般很适合使用。

    2024-03-05 11:17:07 星期二(于常州)

  • 相关阅读:
    Spring Boot单元测试入门实战
    C#实现TFTP客户端
    Redis主从同步
    Leetcode 2431.最小偶倍数
    二叉树及其相关题目相关的功能的实现
    python之格式化输出format()函数使用总结
    机器视觉学习(五)—— 图像的几何
    python排序算法(六)、希尔排序
    [附源码]java毕业设计哈金院快递驿站管理信息系统
    Python:操作SQLite数据库简单示例
  • 原文地址:https://www.cnblogs.com/binghandsom/p/18053719