【從零開始學 Dart 程式設計】運算符號
【從零開始學 Dart 程式設計】線上教學課程目錄 ,Flutter 先修班, Dart 程式語言基礎入門課程。
指定運算符號
我們第一個要來介紹的等於運算符號「=」,就是最常使用的指定運算符號,即是將右邊的資料,指定存到左邊的箱子裡面去。
運算子 | 描述 |
---|---|
= | 指定值運算 |
範例:將100指定,存到左邊的 intVal 變數箱子中。
int intVal = 100;
算數運算符號
數學加、減、乘、除數學運算符號和「%」,取餘數的運算符號。
運算子 | 描述 |
---|---|
+ | 加法運算 ; 字串則是將兩個字串進行串接 |
- | 減法運算 |
* | 乘法運算 |
/ | 除法運算 |
% | 取餘數運算 |
int a = 10;
int b = 2;
print(a+b);
print(a-b);
print(a*b);
print(a/b);
print(a%b);
執行結果:
12
8
20
5
0
其中字串,若使用加法運算,則是會將兩個字串進行串接。而字串僅能使用加法運算符號,其他數學運符號無法使用。
String a = "Hi!";
String b = "HKT~";
print(a+b);
執行結果:
Hi!HKT~
進階的指定運算符號
了解前面的指定算和數運算符號後,皆著我們來看,進階的指定運算符號,初學者剛看到,可能會有點頭痛,但其實只要了解後,就不難了。
運算子 | 描述 |
---|---|
+= | a = a + b |
-= | a = a - b |
*= | a = a * b |
/= | a = a / b |
%= | a = a % b |
int a = 10;
int b = 2;
print(a+=b); //a=10+2
print(a-=b); //a=12-2
print(a*=b); //a=10*2
print(a%=b); //a=10/2,後取餘數
執行結果:
12
10
20
0
而其中的 /= ,在新版 Dart 語法 (2.12 之後版本),會進一步檢查,因為除法有可能會產出有小數點的資料,若用 int 整數型態的箱子,去儲存資料,可能會導致錯誤,所以需將箱子升級為浮點數的箱子, double ,來存放資料即可。
double a = 10;
double b = 2;
print(a/=b); //a=20/2
執行結果:
5.0
單元運算符號
運算子 | 描述 |
---|---|
- | 負值,正值變負值,負值變正值,因負負得正 |
++ | 遞增運算,資料值+1,遞增1的數學概念,a=a+1 |
– | 遞減運算,資料值-1,遞減1的數學概念,a=a-1 |
int a = 10;
print(a);
print(-a);
print(a++);
print(a--);
執行結果:
10
-10
10
11
遞增/遞減運算符號前綴和後綴差異
其中 「++」和 「-- 」運算符號有前綴和後綴差異,就是符號放在前面或是放在後面,運算結果不一樣,以 ++ 為例:
運算子 | 描述 |
---|---|
a++ | 先取出 a 的資料值後,才做 a=a+1 的動作 |
++a | 先作 a=a+1 運算的動作,再取出 a |
int a = 10;
print(a++);
a = 10;
print(++a);
執行結果:
10
11
同理,-- 範例:
運算子 | 描述 |
---|---|
a– | 先取出 a 的資料值後,才做 a=a-1 的動作 |
–a | 先作 a=a-1 運算的動作,再取出 a |
int a = 10;
print(a--);
a = 10;
print(--a);
執行結果:
10
9
邏輯運算符號
運算子 | 描述 |
---|---|
&& | 兩個皆為 true,才為 true |
|| | 其中一個為 true,即為 true |
! | 布林的反向運算,true 反向變 false,false 反向變 true |
執行結果:
bool a = true;
bool b = false;
print(a && b);
print(a || b);
print(!a);
print(!b);
執行結果:
false
true
false
true
關係運算符號
運算子 | 描述 |
---|---|
== | 兩值相等,為 true。注意:字串判斷是否相等使用 equal,不要使用,此符號 |
!= | 兩值不相等,為 true |
> | 左側值大於右側值,為 true |
< | 左側值小於右側值,為 true |
>= | 左側值大於或等於右側值,為 true |
<= | 左側值小於或等於右側值,為 true |
int a = 100;
int b = 66;
print(a == b);
print(a != b);
print(a > b);
print(a < b);
print(a >= b);
print(a <= b);
執行結果:
false
true
true
false
true
false
進階運算符號
「進階運算符號」這些是比較進階語法,老師只是先在這邊先提個概念,大概了解一下,有這個東西即可,此刻沒弄懂沒關係。
?. 條件訪問運算符號
//如果foo為null則返回null,否則返回bar成員
main() {
var foo;
// print(foo.x);//會拋出例外 exception
print(foo?.bar);//防止資料null拋出異常例外 exception
}
?? 是否為空,賦值運算
//如果x是null,則賦值給x;
//如果不是null,則x的值保持不變
x ??= value;
//範例
main() {
var a=100;
var b;
print(a ??= 77);//輸出結果:100
print(b ??= 66);//輸出結果:66
}
… 級聯運算符號
//原本標準寫法
var button = querySelector('#button');
button.text = 'Confirm';
button.classes.add('important');
button.onClick.listen((e) => window.alert('Confirmed!'));
//改成級聯運算寫法
querySelector('#button') // Get an object.
..text = 'Confirm' // Use its members.
..classes.add('important')
..onClick.listen((e) => window.alert('Confirmed!'));
那這次的課程就介紹到這邊囉~
順帶一提,KT 線上教室,臉書粉絲團,會不定期發佈相關資訊,不想錯過最新資訊,不要忘記來按讚,加追蹤喔!也歡迎大家將這套課程分享給更多人喔。
我們下次再見囉!!!掰掰~