1
0
mirror of https://github.com/adambard/learnxinyminutes-docs.git synced 2025-08-28 09:01:39 +02:00

Merge pull request #3403 from okry1123/patch-2

[dart/zh-cn] Fix bool convert
This commit is contained in:
Divay Prakash
2018-11-19 23:47:00 +05:30
committed by GitHub

View File

@@ -176,23 +176,47 @@ example13() {
match(s2);
}
// 布尔表达式必需被解析为 true 或 false
// 因为不支持隐式转换。
// 布尔表达式支持隐式转换以及动态类型
example14() {
var v = true;
if (v) {
print("Example14 value is true");
var a = true;
if (a) {
print("Example14 true, a is $a");
}
v = null;
a = null;
if (a) {
print("Example14 true, a is $a");
} else {
print("Example14 false, a is $a"); // 执行到这里
}
// 动态类型的null可以转换成bool型
var b;// b是动态类型
b = "abc";
try {
if (v) {
// 不会执行
if (b) {
print("Example14 true, b is $b");
} else {
// 不会执行
print("Example14 false, b is $b");
}
} catch (e) {
print("Example14 null value causes an exception: '${e}'");
print("Example14 error, b is $b"); // 这段代码可以执行但是会报错
}
b = null;
if (b) {
print("Example14 true, b is $b");
} else {
print("Example14 false, b is $b"); // 这行到这里
}
// 静态类型的null不能转换成bool型
var c = "abc";
c = null;
// 编译出错
// if (c) {
// print("Example14 true, c is $c");
// } else {
// print("Example14 false, c is $c");
// }
}
// try/catch/finally 和 throw 语句用于异常处理。