美文网首页
浅谈dart 运算符常见语法糖(空安全)

浅谈dart 运算符常见语法糖(空安全)

作者: 小话001 | 来源:发表于2021-03-15 00:40 被阅读0次
    ?的使用
    bool  isWeber(a,b){
    // 如果userName里面有age 这个字段那就执行后面的contain操作,判断里面有没有vue
      bool  age=useName[age]?.contains(vue) ??false;  
      bool  name=useName[name]?.contains(angular) ??false;  
      return age||name
    }
    

    如果useName为null或userName[age]为null,或contains(vue)为null,那么整个表达式都是null
    ?.运算符在左边为null的情况下会阻断右边的调用


    ??=的使用
    var name1="张三";
    name1??="李四"
    print(name1);//张三
    
    var name2="";
    name2??="李四"
    print(name2);//空值 即无结果
    
    var name3=null;
    name3??="李四"
    print(name3);//李四
    

    ??=运算符主要作用是在左侧表达式为null(注意:是null,而不是空哈)的情况时为其赋值。


    ??的使用
    var name="张三";
    var temp=name??"李四"
    print(temp);//张三
    
    var name1=null;
    var temp1=name1??"李四";
    // 相当于是三目运算的简写  name==null?"李四":name 
    print(temp1);//李四
    

    ??:??前面的数据有值那就使用??前面的数据,如果它前面的数据为null,那么就使用后面的数据


    ..的使用
    main(){
    var p=Person()
           ..name="张三"
           ..eat()
           ..run()
    }
    class Person(){
      String name;
      void run(){
       print('running');
      }
      void eat(){
      print('eating');
     }
    }
    

    ..作为级联运算符的基本操作


    // 本来括号是 index,但是用不上,可以用_ 代替
     Flex(
      direction:Axis.horizontal,
      children:List.generate(100,(_)){
       return Text('xxx');
      }
    )
    
    总结:

    操作符 ? :放在类型后面表示当前变量可为null,例如 String a 和 String ? b ,a 不能为null,而 b 可以。
    操作符 :表示此变量值不为null,如果为null则会抛出异常。使用请慎重考虑。
    操作符 ?..的升级版:表示不为null情况下的引用,例如:

    String ?a;
    print(a?.length()); // 使用`?.` 替换 `.` .
    

    相关文章

      网友评论

          本文标题:浅谈dart 运算符常见语法糖(空安全)

          本文链接:https://www.haomeiwen.com/subject/xrjhcltx.html