1. 主页
  2. 文档
  3. Dart 2 中文文档
  4. 示例 & 课程
  5. 语言示例

语言示例

语言示例

本文并不是一个详尽的内容,它仅是一个针对想要通过示例学习 Dart 语言的简介。你可能会希望查看语言和库导览部分。

语言导览

综合导览,带有Dart语言的示例。本章中大部分阅读更多链接都指向语言导览。

库导览

通过示例对Dart核心库的介绍。了解如何使用内置类型、集、日期和时间、流等内容。

Hello World

每个应用都有一个main()函数。要在控制台(console)中展示文本,可以使用顶级的print()函数:

变量

即便是在类型安全的Dart代码中,大部分无需显式的类型指定,这得益其类型推导:

阅读更多有关Dart中变量的知识,包括默认值, final和 const关键字及静态类型。

流程控制语句

Dart支持常见的流程控制语句:

阅读更多有关Dart中流程控制语句的知识,包括break和 continueswitch 和 case, 以及 assert.

函数

我们推荐指定每个函数参数和返回值的类型:

简写的 => (箭头) 语法对于仅包含一条语句的函数非常方便。这一方法尤其对于传递匿名函数作为参数时非常有用:

这段代码除了展示匿名函数 ( where()的参数)外,还展示了可将函数作为参数:顶级的 print() 函数是 forEach()的参数。

阅读更多有关Dar中的函数,包括可选参数、默认参数值和词法作用域。

注释

Dart中的注释通常以 //开头。

阅读更多 有关Dart中注释的相关内容,包括文档工具如何运行。

导入语句

要访问其它库中所定义的 API,使用import.

阅读更多 有关Dart中库及可见性的相关内容,包含库前缀, showhide及通过 deferred 关键字实现的懒加载。

以下是一个包含3个属性,2个构造函数和一个方法的类的示例。其中的一个属性无法直接设置,因此它通过一个getter方法(而非变量)进行定义。

你可能会像下面这样使用 Spacecraft 类:

阅读更多有关Dart中类的内容,包括初始化列表,可选的new 和 const,重定构造函数,工厂 构造函数、getter、setters等等。

继承

Dart拥有单继承。

阅读更多有关继承类、可选的@override 标记等等的内容。

Mixin

Mixin是一种在多级类中复用的代码。以下类可以作为mixin:

要向这个类添加mixin的功能,只需通过 mixin来继承类。

PilotedCraft 现在有一个 astronauts 字段及 describeCrew() 方法。

阅读更多 有关mixin的内容。

接口和抽象类

Dart中没有 interface 关键字。而是所有类都隐式地定义了一个接口。因此,你可以实现任何类。

阅读更多 有关隐匿接口的内容。

你可以创建一个抽象类来由一个实体类继承(或实现)。抽象类可以包含(带有空方法体的)抽象方法。

任意继承 Describable 的类都有一个 describeWithEmphasis() 方法,它调用继承者的 describe()的实现。

阅读更多 有关抽象类和方法的内容。

Async

通过使用async 和 await来避免回调地狱(callback hell)并让代码的可读性更强。

以上方法等价于:

如以下的示例所示, async 和 await 让异步代码更易于阅读。

你也可以使用 async*,它让你以更优美、更可读的方式构建流。

阅读更多 有关异步支持的内容,包含 async 函数、 Future、 Stream 和异步循环 (await for)。

异常

要抛出异常,使用throw:

要捕获异常,使用一个带有on 或 catch (或者包含两者)的 try 语句:

注意以上的代码是异步的, try 对同步代码及async 函数中的代码同样起作用。

阅读更多 有关异常的内容,包括栈追踪、 rethrow和 Error 及 Exception之间的不同。

其它主题

更多代码示例请见语言导览核心库导览。同时也参见 Dart API手册,其中通常也包含示例。

标签
这篇文章对您有用吗?
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址