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

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

這個網誌中的熱門文章

nano 文字編輯器

16天記下7000單字

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

最新入門零基礎 Java 教學【從零開始學 Java 程式設計】Java教學課程目錄 (IntelliJ IDEA 開發教學)

Android Studio 歷代版本下載點