从零开始学Flutter开发
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.1 认识Dart

Flutter 是基于Dart 语言编写的,所以Flutter 中的语法基于Dart 语法,学习Flutter 就要先了解Dart。

2.1.1 什么是Dart

Dart 是Google 公司推出的编程语言,于2011 年正式亮相。Dart 是一门面向对象编程语言,语法和Java、C、JavaScript 语言很像。所以会Java 语言的人,学习Dart 一般会快一些。Dart里所有的类都可以看成对象,它是单继承、动态类语言。Dart 可用于多平台开发(见图2-1),目前还在不断扩展开发平台,可以说Dart 在各个平台领域“无所不能”。

img

图2-1 Dart 所支持的开发平台

Dart 可以说集合了Java 和JavaScript 的一些特性和优点。在静态语法方面,如类型定义、函数声明等,Dart 和Java 非常相似。在动态特性方面,如函数式特性、支持异步等,Dart 又和JavaScript 很像。除融合了Java 和JavaScript 的优点外,Dart 也具有一些自身语法特点,如命名参数可选、支持级联运算符等。

2.1.2 Dart 的特性

Dart 有很多优点,我们可以根据Dart 的一些特性来选择是否需要使用它,具体如下。

img 语法简单明了,开发速度快、效率高,学习成本低。

img 功能强大,可以开发Web 端、移动端、PC 端、服务器端、物联网等平台应用。

img 编译、执行速度快,拥有自己的Dart VM。

img 可移植,类似于中间件语言,可以编译成不同平台的原生代码,方便扩展成跨平台应用语言。

img 融合了Java、C、JavaScript 语言的特点,结合了React 响应式编程的思想规范。

在实际开发时,主要是按照语法规范来编写代码逻辑的,所以我们需要同时了解Dart 的语法规范及语言本身的特性,这样更利于我们进一步了解Dart 的使用规则。

img 面向对象语言,一切数据类型、API 都是对象,都继承自Object 类。

img 强类型语言,同时也是动态类型语言。

img 没有设置定义访问域的关键字,如果某个变量、方法、类的名称以下画线“_”开头,则说明这个变量、方法、类是私有的,外部不可以调用。

img 有入口函数main(){...},类似于Java 中的public void main(String[] args){...}。

img 明显缩减了代码量,提高了可读性。

img 支持Future 和Streams 使用方式,可以以类似RxJava 式的方式使用。

接下来我们看一下Dart 中的关键字(33 个保留关键字,17 个内置标识符,6 个Dart 2 新增异步功能关键字,25 个Dart 特有关键字)。

33 个Dart 保留关键字如表2-1 所示。

表2-1 33 个Dart 保留关键字

img

17 个Dart 内置标识符如表2-2 所示。

表2-2 17 个Dart 内置标识符

img

6 个Dart 2 新增异步功能关键字如表2-3 所示。

表2-3 6 个Dart 2 新增异步功能关键字

img

25 个Dart 特有关键字(和Java 相比)如表2-4 所示。

表2-4 25 个Dart 特有关键字

img

对于以上关键字,我们不可以使用与之相同的名称为变量或常量命名,并且需要注意这些关键字的含义和作用。