当前位置:   article > 正文

Flutter基础之运算符_flutter。于或非

flutter。于或非

 

一、Dart运算符

                  运算符名                                                                      运算符 号                                            
一元后缀expr++  expr--  ()  []  .  ?.
一元前缀-expr  !expr  ~expr  ++expr  --expr
乘法类型*  /  %  ~/
加法类型+  -
移位运算符<<  >>
与位运算&
异或位运算^
或位运算|
关系和类型测试>=  <=  >  <  as  is  is!
等式==   !=
逻辑与&&
逻辑或||
条件expr1?expr2:expr3
级联..
赋值=  *=  /=  ~/=  %=  +=  -=  <<=  >>=  &=  ^=  |=  ??

对表中具体运算符操作详解示例:

在上面的运算符表中,操作符的优先级由上到下逐个减小,上面行内的操作符优先级大于下面行内的操作符;

二、算数运算符

  1. int a = 10;
  2. int b = 2;
  3. print(a + b); //12
  4. print(a - b); //8
  5. print(a * b); //20
  6. print(a / b); //5.0 这个不是整除,值是duoble类型的
  7. print(a ~/ b);//5 整除,余数部分舍弃取整
  8. print(a % b);//0 去余数
  9. var++,var--,++var,--var
  10. 前缀的递增或递减和后缀的递增或递减和java中是一样的;
  11. int a = 2;
  12. int b = a++;//先赋值,再自增
  13. print(b+','+a);//2,3
  14. int a = 2;
  15. int b = a--;//先赋值,再自减
  16. print(b+','+a);//2,1
  17. int a = 2;
  18. int b = ++a;//再自增,先赋值
  19. print(b+','+a);//3,3
  20. int a = 2;
  21. int b = --a;//再自减,先赋值
  22. print(b+','+a);//1,1

 

三、关系运算符

 

  1. int a = 2;
  2. int b = 3;
  3. print(a == b);//false
  4. print(a != b);//true
  5. print(a >= b);//false
  6. print(a <= b);//true
  7. print(a > b);//false
  8. print(a < b);//true

 

四、类型测试操作符

as,is和is!操作符在运行时用于检查类型非常方便,和java中的用法相同,含义如下所示:

      操作符名                              含义解释          
as类型转换
is当对象是相应类型时返回true
is!当对象不是相应类型时返回true
  1. if(mClassType is User){
  2. //相同类型,处理一些操作
  3. mClassType.name = 'hello word!';
  4. }
 

五、赋值操作符

赋值运算没有什么好说的,这里就只强调一下??=的用法吧;

  1. //一般赋值操作,将value赋值给某一变量
  2. a = value;
  3. //??=,这个赋值操作符仅在变量为null的时候才会进行赋值
  4. b ??= value;//如果b为null,则将value的值赋给b,否则,b保持不变
  5. //前面我们有说过,在Dart里面,变量如果没有初始化赋值的话,默认值就是null,这个时候,使用??=给b赋值是可以的,如果初始化的时候就给了b一个值,那么再使用??=进行赋值,b的值是不会变的;

六、逻辑运算符

      操作符名                              含义解释          
!expr反转表达式(将false更改为true,反之亦然)
||逻辑或
&&逻辑与

七、位运算符

  1. final value = 0x22;
  2. final bitmask = 0x0f;
  3. assert((value & bitmask) == 0x02); // 与
  4. assert((value & ~bitmask) == 0x20); // 与非
  5. assert((value | bitmask) == 0x2f); // 或
  6. assert((value ^ bitmask) == 0x2d); // 异或
  7. assert((value << 4) == 0x220); // 左移
  8. assert((value >> 4) == 0x02); // 右移

八、条件表达式

在Dart里,和java一样有三元运算

  1. var result = isTrue ? 'result1' : 'result2';
  2. //这种是通过布尔类型进行判断,如果条件为真,返回result1,反之条件为false,则返回result2;
  3. //还有一种就是判断条件是否为空,如果数据1不为空,就返回数据1,反之,如果数据1为空,则返回数据2;
  4. String playerName(String name) => name ?? 'Guest';
  5. //如果name的值不为空,返回name的值,如果name的值为空,返回‘Guest’;

九、级联操作

级联操作用两个点(..)表示(严格来说的话,级联的双点符号不是运算符,这这是Dart语法的一部分),可对同一对象执行一系列操作,类似Java语言里面的点点点处理,级联操作主要目的是为了简化代码,示例如下:

  1. querySelector('#btnOk)//获取一个id为btnOk的按钮对象
  2. ..text = '确定'//给按钮设置文本为'确定'
  3. ..classes.add('ButtonOKStyle')//给这个按钮添加一个叫'ButtonOKStyle'的样式
  4. ..onClick.listen((e) => window.alert('确定'));//设置监听事件,事件弹出一个显示‘确定’的alert
  5. //这样的操作相当于如下操作:
  6. var button = querySelector('#btnOk);
  7. button.text = '确定';
  8. button.classes.add('ButtonOKStyle');
  9. button.onClick.listen((e) => window.alert('确定'));

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/455571
推荐阅读
相关标签
  

闽ICP备14008679号