【Flutter 1-8】Flutter教程Dart语言——控制语句

弗拉德 2020/11/20 20:25:28

作者 | 弗拉德 来源 | 弗拉德 控制语句 Dart语言的控制语句跟其他常见语言的控制语句是一样的,基本如下:if 和 elsefor 循环while 和 do-while 循环break 和 continueswitch 和 caseassertIf 和 Else Dart 支持 if - else 语句,其中 else 是可选的,比如下面的例子。in…

作者 | 弗拉德

来源 | 弗拉德

控制语句

Dart语言的控制语句跟其他常见语言的控制语句是一样的,基本如下:

  • if 和 else

  • for 循环

  • while 和 do-while 循环

  • break 和 continue

  • switch 和 case

  • assert

If 和 Else

Dart 支持 if - else 语句,其中 else 是可选的,比如下面的例子。

int i = 0;

if (i == 0) {

print("value 0");

} else  if (i == 1) {

print("value 1");

} else {

print("other value");

}

如果要遍历的对象实现了 Iterable 接口,则可以使用 forEach() 方法,如果不需要使用到索引,则使用 forEach 方法是一个非常好的选择:

>Iterable接口实现了很多方法,比如说 forEach()、any()、where()等,这些方法可以大大精简我们的代码,减少代码量。

var callbacks = [];

for (var i = 0; i < 2; i++) {

callbacks.add(() => print(i));

}

callbacks.forEach((c) => c());

ListSet 等,我们同样可以使用 for-in 形式的 迭代:

var collection = [1, 2, 3];

for (var x in collection) {

print(x); // 1 2 3

}

While 和 Do-While

while 循环会在执行循环体前先判断条件:

var i = 0;

while (i < 10) {

i++;

print("i = " + i.toString());

}

do-while 循环则会先执行一遍循环体 再 判断条件:

var i = 0;

do {

i++;

print("i = " + i.toString());

} while (i < 10);

  

Break 和 Continue

使用 break 可以中断循环:

for (int i = 0; i < 10; i++) {

if (i > 5) {

print("break now");

break;

}

print("i = " + i.toString());

}

使用 continue 可以跳过本次循环直接进入下一次循环:

for (int i = 0; i < 10; ++i) {

if (i < 5) {

continue;

}

print("i = " + i.toString());

}

上述代码中的 candidates 如果像 ListSet 一样实现了 Iterable 接口则可以简单地使用下述写法:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10].where((i) => i > 5).forEach((i) {

print("i = " + i.toString());

});

Switch 和 Case

Switch 语句在 Dart 中使用 == 来比较整数、字符串或编译时常量,比较的两个对象必须是同一个类型且不能是子类并且没有重写 == 操作符。 枚举类型非常适合在 Switch 语句中使用。

每一个 case 语句都必须有一个 break 语句,也可以通过 continue、throw 或者 return 来结束 case 语句。

当没有 case 语句匹配时,可以使用 default 子句来匹配这种情况:

var command = 'OPEN';

switch (command) {

case  'CLOSED':

print('CLOSED');

break;

case  'PENDING':

print('PENDING');

break;

case  'APPROVED':

print('APPROVED');

break;

case  'DENIED':

print('DENIED');

break;

case  'OPEN':

print('OPEN');

break;

default:

print('UNKNOW');

}

但是,Dart 支持空的 case 语句,如下:

var command = 'CLOSED';

switch (command) {

case  'CLOSED': // case 语句为空时的 fall-through 形式。

case  'NOW_CLOSED':

// case 条件值为 CLOSED 和 NOW_CLOSED 时均会执行该语句。

print(command);

break;

}

断言

在开发过程中,可以在条件表达式为 false 时使用 - assert, 来中断代码的执行,提示出错误。你可以在本文中找到大量使用 assert 的例子。下面是相关示例:

// 确保变量值不为 null (Make sure the variable has a non-null value)

assert(text != null);

  

// 确保变量值小于 100。

assert(number < 100);

  

// 确保这是一个 https 地址。

assert(urlString.startsWith('https'));

assert 的第二个参数可以为其添加一个字符串消息。

  

assert(urlString.startsWith('https'),'URL ($urlString) should start with "https".');

assert 的第一个参数可以是值为布尔值的任何表达式。如果表达式的值为true,则断言成功,继续执行。如果表达式的值为false,则断言失败,抛出一个 AssertionError 异常。

注意:

在生产环境代码中,断言会被忽略,与此同时传入 assert 的参数不被判断。

本文所有代码都已上传到[Github] github.com/Johnson8888/learn_flutter


随时随地学软件编程-关注百度小程序和微信小程序
关于找一找教程网

本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。
本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。
[【Flutter 1-8】Flutter教程Dart语言——控制语句]http://www.zyiz.net/tech/detail-149201.html

上一篇:Flutter Weekly Issue 69

下一篇:使用视图绑定替代 findViewById

赞(0)

共有 条评论 网友评论

验证码: 看不清楚?
    关注微信小程序
    程序员编程王-随时随地学编程

    扫描二维码或查找【程序员编程王】

    可以随时随地学编程啦!

    技术文章导航 更多>
    扫一扫关注最新编程教程