flutter学习阶段(6-Flutter应用开发语言Dart语法运算符)

学过其他计算机语言的一般会接触各种各样的运算符,掌握了基础,那学习Dart相关运算符就可以得心应手了解这些有什么意义呢?在实际工作中这些场景会经常用到运算符,例如商城项目计算商品价格(主要用到算术运算符),商品满打折(用到算术运算符,关系运算符),优惠券在有效期内,购物总价格超过阈值可以使用(用到逻辑运算符,算术运算符,关系运算符)理解这些运算符含义再 实际工作中是有非常待帮助Dart语言常用运算符有如下这些算术运算符,关系运算符,类型判定运算符,赋值运算符,逻辑运算符,按位和移位运算符,级联运算符,下面我们就来聊聊关于flutter学习阶段?接下来我们就一起去了解一下吧!

flutter学习阶段(6-Flutter应用开发语言Dart语法运算符)

flutter学习阶段

学过其他计算机语言的一般会接触各种各样的运算符,掌握了基础,那学习Dart相关运算符就可以得心应手。了解这些有什么意义呢?在实际工作中这些场景会经常用到运算符,例如商城项目计算商品价格(主要用到算术运算符),商品满打折(用到算术运算符,关系运算符),优惠券在有效期内,购物总价格超过阈值可以使用(用到逻辑运算符,算术运算符,关系运算符)。理解这些运算符含义再 实际工作中是有非常待帮助。Dart语言常用运算符有如下这些算术运算符,关系运算符,类型判定运算符,赋值运算符,逻辑运算符,按位和移位运算符,级联运算符。

1算术运算符 (加), –(减) ,*(乘), /(除),~/(除后返回整数),%(取余)

示例

void testOperatorAdd(){ var num=1; var num2=2; print("num=1 num2=2 num num2=${num num2}"); print("num=1 num2=2 num~/num2=${num~/num2}"); print("num=1 num2=2 num/num2=${num/num2}"); print("num=1 num2=2 num-num2=${num-num2}"); print("num=1 num2=2 num*num2=${num*num2}"); print("num=1 num2=2 num%num2=${num%num2}"); } 结果 num=1 num2=2 num num2=3 num=1 num2=2 num~/num2=0 num=1 num2=2 num/num2=0.5 num=1 num2=2 num-num2=-1 num=1 num2=2 num*num2=2 num=1 num2=2 num%num2=1

关系运算符 ==, !=, > , <, >=,<=

示例

testRelationship(){ var num=1; var num2=2; print("num num2 ${num}==${num2} 结果 ${num==num2} "); print("num num2 ${num}!=${num2} 结果 ${num==num2} "); print("num num2 ${num}>${num2} 结果 ${num>num2} "); print("num num2 ${num}<${num2} 结果 ${num<num2} "); print("num num2 ${num}>=${num2} 结果 ${num>=num2} "); print("num num2 ${num}<=${num2} 结果 ${num<=num2} "); } 结果 num num2 1==2 结果 false num num2 1!=2 结果 false num num2 1>2 结果 false num num2 1<2 结果 true num num2 1>=2 结果 false num num2 1<=2 结果 true

2类型判定运算符as(强制类型转换),is,is!

示例

void testLogical(){ bool result=false; bool result1=true; print("result=false result1=true result||result1 结果 ${result||result1}"); print("result=false result1=true result&&result1 结果 ${result&&result1}"); print("result=false result1=true !result结果 ${!result}"); } 结果 result=false result1=true result||result1 结果 true result=false result1=true result&&result1 结果 false result=false result1=true result&&result1 结果 true

3赋值运算符=, –= , /=,%=,>>=,^=, =,*=,~/=,<<=,&=,|=

示例

testSetVal(){ var num=1.1; var num2=2; print("num=1.1 num2=2 num–=num2 相当于num=num-num2 结果${num-=num2}"); print("num=1.1 num2=2 num =num2 相当于num=num num2 结果${num =num2}"); print("num=1.1 num2=2 num*=num2 相当于num=num*num2 结果${num*=num2}"); print("num=1.1 num2=2 num/=num2 相当于num=num/num2 结果${num/= num2}"); print("num=1.1 num2=2 num~/=num2 相当于num=num~/num2 结果${num2=num2~/=1}"); print("num=1.1 num2=2 num%=num2 相当于num=num%num2 结果${num%= num2}"); print("num=1.1 num2=2 num<<=num2 相当于num=num<<num2 结果${num2= num2<<1}"); print("num=1.1 num2=2 num>>=num2 相当于num=num<<num2 结果${num2= num2>>1}"); bool resu1t=true; bool result1=false; print("resu1t=true result1=false resu1t&=result1 相当于resu1t=resu1t&result1 结果${resu1t&=result1}"); print("resu1t=true result1=false resu1t^=result1 相当于resu1t=resu1t^result1结果${resu1t^=result1}"); print("resu1t=true result1=false resu1t|=result1 相当于resu1t=resu1t|result1结果${resu1t|=result1}"); } 结果 num=1.1 num2=2 num–=num2 相当于num=num-num2 结果-0.8999999999999999 num=1.1 num2=2 num =num2 相当于num=num num2 结果1.1 num=1.1 num2=2 num*=num2 相当于num=num*num2 结果2.2 num=1.1 num2=2 num/=num2 相当于num=num/num2 结果1.1 num=1.1 num2=2 num~/=num2 相当于num=num~/num2 结果2 num=1.1 num2=2 num%=num2 相当于num=num%num2 结果1.1 num=1.1 num2=2 num<<=num2 相当于num=num<<num2 结果4 num=1.1 num2=2 num>>=num2 相当于num=num<<num2 结果2 resu1t=true result1=false resu1t&=result1 相当于resu1t=resu1t&result1 结果false resu1t=true result1=false resu1t^=result1 相当于resu1t=resu1t^result1结果false resu1t=true result1=false resu1t|=result1 相当于resu1t=resu1t|result1结果false

4逻辑运算符 !expr, ||, &&

示例

void testBit(){ var num=1; var num1=2; print("num=1 and num1=1 num&num1 结果 ${num&num1}"); print("num=1 and num1=1 num&~num1 结果 ${num&num1}"); print("num=1 and num1=1 num|num1 结果 ${num|num1}"); print("num=1 and num1=1 num^num1 结果 ${num^num1}"); print("num=1 and num1=1 num<<num1 结果 ${num<<num1}"); print("num=1 and num1=1 num>>num1 结果 ${num>>num1}"); } 结果 void testBit(){ var num=1; var num1=2; print("num=1 and num1=2 num&num1 结果 ${num&num1}"); print("num=1 and num1=2 num&~num1 结果 ${num&num1}"); print("num=1 and num1=2 num|num1 结果 ${num|num1}"); print("num=1 and num1=2 num^num1 结果 ${num^num1}"); print("num=1 and num1=2 num<<num1 结果 ${num<<num1}"); print("num=1 and num1=2 num>>num1 结果 ${num>>num1}"); }

5位运算符 &(与 ),|(或),^(异或 两个位相同为0,相异为1),~expr(取反,例如0取反为1),<<(左移),>>(右移)

这种是这样计算的 当1 与2 进行与位运算 首先底层会将1和2转成64位二进制再与运算

00...........01

&

00...........10

_____________

00...........00 最后为0

示例

void testBit(){ var num=1; var num1=2; print("num=1 and num1=1 num&num1 结果 ${num&num1}"); print("num=1 and num1=1 num&~num1 结果 ${num&num1}"); print("num=1 and num1=1 num|num1 结果 ${num|num1}"); print("num=1 and num1=1 num^num1 结果 ${num^num1}"); print("num=1 and num1=1 num<<num1 结果 ${num<<num1}"); print("num=1 and num1=1 num>>num1 结果 ${num>>num1}"); } 结果 num=1 and num1=1 num&num1 结果 0 num=1 and num1=1 num&~num1 结果 0 num=1 and num1=1 num|num1 结果 3 num=1 and num1=1 num^num1 结果 3 num=1 and num1=1 num<<num1 结果 4 num=1 and num1=1 num>>num1 结果 0

6级联运算符可以实现对同一个对像进行一系列的操作。 除了调用函数, 还可以访问同一对象上的字段属性。

示例

TestType()..result=false ..testBit(); 相当于TestType testType=new TestType(); testType.result=false; result=false

上一讲 5-Flutter应用开发语言Dart语法函数剖析

下一讲(待续) 7-Flutter应用开发语言Dart语法类定义

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页