程式碼中的運算主要有包含了像數學一樣的算術運算、判斷式中常見的比較運算,另外還會有類型比對的運算以及邏輯運算,Dart 本身的官方文件還蠻齊全的,以下列出幾個比較常見及常用的運算:
我習慣直接用程式碼來說明,我想這樣實作的感覺比列出 +
⇒ 相加、-
=> 相減這些文字來的有感~
算術運算子(Arithmetic operators)
基本上就是做計算數值用的
void main() {
int a = 5;
int b = 2;
print('a + b = ${a + b}'); // 數字相加
print('a - b = ${a - b}'); // 數字相減
print('a * b = ${a * b}'); // 數字相乘
print('a ~/ b = ${a ~/ b}'); // a 除以 b 但 return 一個整數
print('a / b = ${a / b}'); // a 除以 b
print('a % b = ${a % b}'); // a 除以 b 得到的餘數
}
來看看結果吧~(小小改了一下看的更清楚實際上在做什麼)
比較運算子(Equality and relational operators)
常常在判斷式中來使用,結果是 true / false 的布林值。
void main() {
int a = 5;
int b = 2;
int c = 2;
print('a = $a, b = $b, c = $c');
print('a 等於 b ${a == b}');
print('a 不等於 b ${a != b}');
print('a 大於 b ${a > b}');
print('a 小於 b ${a < b}');
print('a 大於等於 c ${a >= c}');
print('b 小於等於 c ${b <= c}');
}
來看看結果吧~
最後一個來講
邏輯運算子(Logical operators)
void main() {
print(!true); // 反向表述,true 會變成 false,false 會變成 true
print(true && false); // 邏輯的 AND,兩者都為 true,結果才會是 true
print(true || false); // 邏輯的 OR,其中一方為 true,就為 true
}
以上三個是我認為很常用的,剩下的我自己覺得有需要用到再去查找資料就可以囉!
我們現在練習時都將程式碼寫在 void main(){} 中,在未來專案擴大時,維護的程式碼不可能全部塞在這裡面,因此我們就可以利用定義函式,讓函式都分別執行任務。
以下來個簡單的例子:
void main() {
// 呼叫 calculate 函式
calculate();
}
// 定義函式
void calculate() {
print('Call calculate function.');
}
這樣就是完成了一個簡單的函式,void 是指回傳的結果型態,而 calculate 就是函式的名稱,下面我們再介紹一下 () 裡面還可以帶進參數,而 {} 中就是我們想叫這個函式執行任務的程式碼。
來看看帶有參數的例子:
void main() {
printProfile('Louis', 25);
}
void printProfile(String name, int age) {
print('$name is $age years old.');
}
使用參數前面加上 type 來定義參數,name 是字串因此使用 String name
定義,而 age 為數值就使用 int age
,另外呼叫函式中參數的順序必須依照函式本身的順序來帶入,否則就會報錯,要特別注意。
匿名函式(Anonymous Function)
顧名思義,就是沒有名字的函式,方法一樣是用 () 定義參數,{} 中執行程式碼,蠻常使用在 List 的迭代上,下面直接來看一個例子
void main() {
// 宣告一個含有四個元素的 list
var list = ['apple', 'banana', 'orange', 'mango'];
// 使用 forEach 方法來迭代
list.forEach((item) => {
print(item)
});
}
forEach
方法中使用了匿名加上箭頭函式,會迭代 list 中每個元素當作參數傳進匿名函式中,這裡我們的參數命名為 item,接著印出 item 來觀察看看是不是真的依序印出了 list 中的水果吧~
完成!之後在 Flutter 中也會很常使用到這方便的匿名函式,下一篇來講進階一點點的語法(condition 與 loop),最後再講一下物件導向與類別、建構式等,因為也是自己不熟悉的範圍,因此想挑出來練習寫寫看概念~
OK!我們明天見~