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;
}
复制代码
结束
参考