summaryrefslogtreecommitdiffhomepage
path: root/dart.html.markdown
diff options
context:
space:
mode:
authorwoclass <inkydragon@users.noreply.github.com>2018-12-03 20:30:45 +0800
committerGitHub <noreply@github.com>2018-12-03 20:30:45 +0800
commitcd7816a2be62b0dcd2aca181d1aadd68b8e4d5d7 (patch)
treef75c300c92d40e29bf59f83775aec019b45e56e7 /dart.html.markdown
parent440247a59706603bd980016821ecd6a72a6182d1 (diff)
parent1fd955ae6479650b987a54a93b09507bfdf06954 (diff)
Merge pull request #1 from adambard/master
Update from Upstream
Diffstat (limited to 'dart.html.markdown')
-rw-r--r--dart.html.markdown44
1 files changed, 34 insertions, 10 deletions
diff --git a/dart.html.markdown b/dart.html.markdown
index 76857306..e12a4ed5 100644
--- a/dart.html.markdown
+++ b/dart.html.markdown
@@ -176,23 +176,47 @@ example13() {
match(s2);
}
-// Boolean expressions need to resolve to either true or false, as no
-// implicit conversions are supported.
+// Boolean expressions support implicit conversions and dynamic type
example14() {
- var v = true;
- if (v) {
- print("Example14 value is true");
+ var a = true;
+ if (a) {
+ 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 {
- if (v) {
- // Never runs
+ if (b) {
+ print("true, b is $b");
} else {
- // Never runs
+ print("false, b is $b");
}
} 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.