Dart4Flutter -拾遺01 - flutter-dart環境搭建
控制流
If – else
if-else 和其他語言一樣比較簡單。
main(List<String> args) {
var number = 57;
if (number > 100) {
print('Large Number');
} else if (number < 100) {
print('Small Number');
} else {
print('Number is 100');
}
}
複製程式碼
可以用三元運算子代替if-else
main(List<String> args) {
int age = 60;
String status = age < 50 ? "Still young" : "Old Man";
}
複製程式碼
迴圈
和其他大多數語言一樣,dart也支援各種的迴圈,而且語法一樣。
For 迴圈
典型的for迴圈。
main(List<String> args) {
for (int i = 0; i < 10; i++) {
print('$i');
}
}
複製程式碼
While 迴圈
典型的while迴圈
main(List<String> args) {
int i = 0;
while(i < 10) {
print('$i');
i++;
}
}
複製程式碼
Do-while 迴圈
The classic for do while loop. 典型的do while迴圈。
main(List<String> args) {
int i = 0;
do {
print('$i');
i++;
} while (i < 10);
}
複製程式碼
Switch
main(List<String> args) {
int age = 50;
switch(age) {
case 10:
print('Too Young.');
break;
case 20:
case 30:
print('Still Young!');
break;
case 40:
print('Getting old.');
break;
case 50:
print('You are old!');
break;
}
}
複製程式碼
異常處理
dart 使用經典的try-catch處理異常,使用關鍵字throw丟擲一個異常。
丟擲異常
首先,看看如何丟擲異常
main(List<String> args) {
divide(10, 0);
}
divide(int a, int b) {
if (b == 0) {
throw new IntegerDivisionByZeroException();
}
return a / b;
}
複製程式碼
當b變數的值為0的時候,丟擲一個內建的異常IntegerDivisionByZeroException。
你也可以在異常中攜帶一個字串資訊。
main(List<String> args) {
divide(10, 0);
}
divide(int a, int b) {
if (b == 0) {
throw new Exception('Divide by zero');
}
return a / b;
}
複製程式碼
捕獲和處理異常
現在看看重點的捕獲和處理異常。
某種型別的異常可以通過on關鍵字捕獲,如下:
main(List<String> args) {
try {
divide(10, 0);
} on IntegerDivisionByZeroException {
print('Division by zero.');
}
}
divide(int a, int b) {
if (b == 0) {
throw new IntegerDivisionByZeroException();
}
return a / b;
}
複製程式碼
如果你不知道丟擲異常的型別,或者不確定,可以使用catch塊處理任意型別的異常。
main(List<String> args) {
try {
divide(10, 0);
} on IntegerDivisionByZeroException {
print('Division by zero.');
} catch (e) {
print(e);
}
}
divide(int a, int b) {
if (b == 0) {
throw new Exception('Some other exception.');
}
return a / b;
}
複製程式碼
Finally
dart也提供了finally塊,即是否發生異常這個塊都會執行。
main(List<String> args) {
try {
divide(10, 0);
} on IntegerDivisionByZeroException {
print('Division by zero.');
} catch (e) {
print(e);
} finally {
print('I will always be executed!');
}
}
divide(int a, int b) {
if (b == 0) {
throw new Exception('Some other exception.');
}
return a / b;
}
複製程式碼
結束
參考