6 Flutter應用開發語言Dart語法運算子

2021-10-09 11:30:48 字數 4103 閱讀 8609

學過其他計算機語言的一般會接觸各種各樣的運算子,掌握了基礎,那學習dart相關運算子就可以得心應手。了解這些有什麼意義呢?在實際工作中這些場景會經常用到運算子,例如**專案計算商品**(主要用到算術運算子),商品滿打折(用到算術運算子,關係運算子),優惠券在有效期內,購物總**超過閾值可以使用(用到邏輯運算子,算術運算子,關係運算子)。理解這些運算子含義再 實際工作中是有非常待幫助。dart語言常用運算子有如下這些算術運算子,關係運算子,型別判定運算子,賦值運算子,邏輯運算子,按位和移位運算子,級聯運算子。

1算術運算子 +(加), –(減) ,*(乘), /(除),~/(除后返回整數),%(取餘)

示例

void testoperatoradd()");

print("num=1 num2=2 num~/num2=$");

print("num=1 num2=2 num/num2=$");

print("num=1 num2=2 num-num2=$");

print("num=1 num2=2 num*num2=$");

print("num=1 num2=2 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()==$ 結果 $ ");

print("num num2 $!=$ 結果 $ ");

print("num num2 $>$ 結果 $ ");

print("num num2 $<$ 結果 $ 結果 $ ");

print("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()");

print("result=false result1=true result&&result1 結果 $");

print("result=false result1=true !result結果 $");

}結果result=false result1=true result||result1 結果 true

result=false result1=true result&&result1 結果 false

result=false result1=true result&&result1 結果 true

3賦值運算子=, –= , /=,%=,>>=,^=,+=,*=,~/=,<<=,&=,|=

示例

testsetval()");

print("num=1.1 num2=2 num+=num2 相當於num=num+num2 結果$");

print("num=1.1 num2=2 num*=num2 相當於num=num*num2 結果$");

print("num=1.1 num2=2 num/=num2 相當於num=num/num2 結果$");

print("num=1.1 num2=2 num~/=num2 相當於num=num~/num2 結果$");

print("num=1.1 num2=2 num%=num2 相當於num=num%num2 結果$");

print("num=1.1 num2=2 num<<=num2 相當於num=num<>=num2 相當於num=num<>1}");

bool resu1t=true;

bool result1=false;

print("resu1t=true result1=false resu1t&=result1 相當於resu1t=resu1t&result1 結果$");

print("resu1t=true result1=false resu1t^=result1 相當於resu1t=resu1t^result1結果$");

print("resu1t=true result1=false resu1t|=result1 相當於resu1t=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 相當於num=num<4邏輯運算子 !expr, ||, &&

示例void testbit()");

print("num=1 and num1=1 num&~num1 結果 $");

print("num=1 and num1=1 num|num1 結果 $");

print("num=1 and num1=1 num^num1 結果 $");

print("num=1 and num1=1 num<>num1 結果 $");

}結果void testbit()");

print("num=1 and num1=2 num&~num1 結果 $");

print("num=1 and num1=2 num|num1 結果 $");

print("num=1 and num1=2 num^num1 結果 $");

print("num=1 and num1=2 num<>num1 結果 $");

}

5位運算子 &(與 ),|(或),^(異或 兩個位相同為0,相異為1),~expr(取反,例如0取反為1),<<(左移),>>(右移)

這種是這樣計算的 當1 與2 進行與位運算 首先底層會將1和2轉成64位二進位制再與運算

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

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

00...........00 最後為0

示例

void testbit()");

print("num=1 and num1=1 num&~num1 結果 $");

print("num=1 and num1=1 num|num1 結果 $");

print("num=1 and num1=1 num^num1 結果 $");

print("num=1 and num1=1 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 結果 0

6級聯運算子可以實現對同乙個對像進行一系列的操作。 除了呼叫函式, 還可以訪問同一物件上的字段屬性。

示例

testtype()..result=false

..testbit();

相當於testtype testtype=new testtype();

testtype.result=false;

result=false

上一講5-flutter應用開發語言dart語法函式剖析

下一講(待續) 7-flutter應用開發語言dart語法類定義

Flutter開發MacOS應用

從1.13alpha版本開始,已經涵蓋了對macos的桌面支援。其實對windows和linux的支援。但本文只介紹macos的使用過程。flutter channel master flutter upgrade flutter config enable macos desktop flutte...

使用 Flutter 開發 Mac 桌面應用

flutter 可以開發 mac,linux,windows 桌面,但是對於平台目前只能打對於的包,以及除錯本平台的包。flutter 的 master 預設是關閉 桌面應用的,我們可以使用下面的命令開啟 flutter config enable macos desktop flutter con...

用D語言解面試題6

看了 效率是窮舉法的1000倍以上。有乙個整數n,寫乙個函式f n 返回0到n之間出現的 1 的個數。比如f 13 6,現在f 1 1,問下乙個最大的f n n的n是什麼?module fn import std.stdio import std.math import std.datetime i...