dart 开关盒
示例
Dart有一个可用于代替长if-else语句的开关盒:
var command = 'OPEN';
switch (command) {
case 'CLOSED':
executeClosed();
break;
case 'OPEN':
executeOpen();
break;
case 'APPROVED':
executeApproved();
break;
case 'UNSURE':
//缺少break语句意味着此案将失败
//到下一条语句,在这种情况下为默认情况
default:
executeUnknown();
}您只能比较整数,字符串或编译时常量。被比较的对象必须是同一类的实例(而不是其任何子类型的实例),并且该类不得覆盖==。
Dart中switch的一个令人惊讶的方面是非空case子句必须以break结尾,或者更不常见的是continue,throw或return。也就是说,非空大小写子句不能通过。您必须显式地结束非空case子句,通常以break结束。如果省略中断,继续,抛出或返回,则将收到静态警告,并且代码将在运行时在该位置错误。
var command = 'OPEN';
switch (command) {
case 'OPEN':
executeOpen();
//错误:缺少中断会引发异常!
case 'CLOSED': //空箱子掉了
case 'LOCKED':
executeClosed();
break;
}如果您希望使用非空值case,可以使用continue和标签:
var command = 'OPEN';
switch (command) {
case 'OPEN':
executeOpen();
continue locked;
locked: case 'LOCKED':
executeClosed();
break;
}
热门推荐
10 婚礼祝福语简短精辟的
11 跨年的生日祝福语简短
12 公司春节祝福语和简短
13 年月日祝福语简短
14 顾客简短祝福语大全集
15 元旦联谊祝福语简短精辟
16 新疆新年祝福语大全简短
17 小红书平安祝福语简短
18 贫困户祝福语简短