【從零開始學 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 線上教室,臉書粉絲團,會不定期發佈相關資訊,不想錯過最新資訊,不要忘記來按讚,加追蹤喔!也歡迎大家將這套課程分享給更多人喔。

我們下次再見囉!!!掰掰~

這個網誌中的熱門文章

16天記下7000單字

nano 文字編輯器

2023 最新入門零基礎 Kotlin教學【從零開始學 Kotlin 程式設計】Kotlin 教學課程目錄 (Android Kotlin, IntelliJ IDEA, Android Studio, Android APP 開發教學)

Android Studio 歷代版本下載點

2022 最新入門零基礎 Flutter教學 【Flutter 程式設計入門實戰 30 天】Flutter 教學課程目錄 (IntelliJ IDEA 開發教學)