mirror of
https://github.com/adambard/learnxinyminutes-docs.git
synced 2024-12-23 17:41:41 +00:00
[dart/en]Fix bool implicit conversions support.
Implicit conversions of bool are supported now.
This commit is contained in:
parent
76e5f436df
commit
ffc33ee560
@ -176,23 +176,47 @@ example13() {
|
|||||||
match(s2);
|
match(s2);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Boolean expressions need to resolve to either true or false, as no
|
// Boolean expressions support implicit conversions and dynamic type
|
||||||
// implicit conversions are supported.
|
|
||||||
example14() {
|
example14() {
|
||||||
var v = true;
|
var a = true;
|
||||||
if (v) {
|
if (a) {
|
||||||
print("Example14 value is true");
|
print("true, a is $a");
|
||||||
}
|
}
|
||||||
v = null;
|
a = null;
|
||||||
|
if (a) {
|
||||||
|
print("true, a is $a");
|
||||||
|
} else {
|
||||||
|
print("false, a is $a"); // runs here
|
||||||
|
}
|
||||||
|
|
||||||
|
// dynamic typed null can be convert to bool
|
||||||
|
var b;// b is dynamic type
|
||||||
|
b = "abc";
|
||||||
try {
|
try {
|
||||||
if (v) {
|
if (b) {
|
||||||
// Never runs
|
print("true, b is $b");
|
||||||
} else {
|
} else {
|
||||||
// Never runs
|
print("false, b is $b");
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
print("Example14 null value causes an exception: '${e}'");
|
print("error, b is $b"); // this could be run but got error
|
||||||
}
|
}
|
||||||
|
b = null;
|
||||||
|
if (b) {
|
||||||
|
print("true, b is $b");
|
||||||
|
} else {
|
||||||
|
print("false, b is $b"); // runs here
|
||||||
|
}
|
||||||
|
|
||||||
|
// statically typed null can not be convert to bool
|
||||||
|
var c = "abc";
|
||||||
|
c = null;
|
||||||
|
// complie failed
|
||||||
|
// if (c) {
|
||||||
|
// print("true, c is $c");
|
||||||
|
// } else {
|
||||||
|
// print("false, c is $c");
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
// try/catch/finally and throw are used for exception handling.
|
// try/catch/finally and throw are used for exception handling.
|
||||||
|
Loading…
Reference in New Issue
Block a user