Dart 开发DartDart专题

<基础>Dart语法一

2019-04-01  本文已影响3人  玉圣

说明:
此篇不对Dart语法进行详细总结(在有编程语言的基础,即学习过其他面向对象语言之上),而对比Java进行一些语法的异同进行总结。

内容:

参考资料:
Dart学习笔记
Flutter与Dart 入门
Dart语法学习

一、关键字

关键字
abstract [1] do import [1] super
as [1] var continue dynamic [1]
assert [2] else interface sync *[2]
enum is implements [1] export [1]
async *[2] this library [1] throw
await new covariant true
break null external [1] factory [1]
case try extends typedef [1]
catch false operator [1] switch
class final finally void
const part [1] rethrow while
in for return with
mixin get [1] set [1] yield *[2]
default if static [1] deferred [1]

带有[1] 的关键字是 内置关键字。避免把内置关键字当做标识符使用。 也不要把内置关键字 用作类名字和类型名字。 有些内置关键字是为了方便把 JavaScript 代码移植到 Dart 而存在的。 例如,如果 JavaScript 代码中有个变量的名字为 factory, 在移植到 Dart 中的时候,你不必重新命名这个变量。

带有[2] 的关键字,是在 Dart 1.0 发布以后又新加的,用于 支持异步相关的特性。 你不能在标记为 async*、或者 sync* 的方法体内 使用 asyncawait、或者 yield 作为标识符。 详情请参考:异步支持

所以其他单词都是 保留词。 你不能用保留词作为关键字。

二、数据类型

1、变量与常量

2、数据类型(内置类型)

注: List<E>Set<E>都继承自EfficientLengthIterable<T> ,并最终继承Iterable<E>类。

三、操作符

1、算数运算符:
2、关系运算符:
3、逻辑运算符:
4、赋值运算符:
5、位和移位操作符

& 且、| 或、^ 非、<< 左移、>> 右移

5、条件表达式

condition ? expr1 : expr2 三目运算符
expr1 ?? expr2 返回其中不为空的表达式执行结果

String a = "Hello";
String b = "";
String c = "Dart";
String d = a ?? b;
String e = b ?? c;
//d = Hello
print("d = $d");
//e = Dart
print("e = $e");
6、类型判定操作符

asis、和 is! 操作符是在运行时判定对象
as:类型转换
is:如果对象是指定的类型返回 True
is!:如果对象是指定的类型返回 False
具体例子参考面向对象的总结

7、其他操作符
8、级联操作符

..:级联操作符 (..) 可以在同一个对象上 连续调用多个函数以及访问成员变量。使用级联操作符可以避免创建临时变量,并且写出来的代码看起来更加流畅。(具体详见面向对象中的例子)

querySelector('#button') // Get an object.
  ..text = 'Confirm'   // Use its members.
  ..classes.add('important')
  ..onClick.listen((e) => window.alert('Confirmed!'));

说明:
第一个方法 querySelector() 返回了一个 selector 对象。后面的级联操作符都是调用这个对象的成员,并忽略每个操作所返回的值。

四、控制语句

上一篇 下一篇

猜你喜欢

热点阅读