diff options
| author | OKry <okry1123@gmail.com> | 2018-11-07 14:29:27 +0800 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-11-07 14:29:27 +0800 | 
| commit | ffc33ee56041c286eca86d2dc9bd39cd9c04e41f (patch) | |
| tree | c3de59d620bd86f8777509cb45f431b4c3046ed3 /dart.html.markdown | |
| parent | 76e5f436dfed7d3fcdbe4911091fc2a0231eeca5 (diff) | |
[dart/en]Fix bool implicit conversions support.
Implicit conversions of bool are supported now.
Diffstat (limited to 'dart.html.markdown')
| -rw-r--r-- | dart.html.markdown | 44 | 
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. | 
