基本库

dart:core

该库包含内置类型,集合和其他核心函数,该库是自动加入到每个dart程序中的。

Numbers和Booleans

  • int

  • double

  • boolean Number类型只有两种,不再有那么多了,是不是很开心?

    Strings和正则

    String是一个不可变的类,和Java一样,有很多方法,自行琢磨。 RegExp实现了Dart的正则表达式。

    ```dart var numbers = new RegExp(r'\d+');

    var allCharacters = 'llamas live fifteen to twenty years'; var someDigits = 'llamas live 15 to 20 years';

// contains() can use a regular expression. assert(!allCharacters.contains(numbers)); assert(someDigits.contains(numbers));

// Replace every match with another string. var exedOut = someDigits.replaceAll(numbers, 'XX'); assert(exedOut == 'llamas live XX to XX years');

## 集合  

  Lists、Sets、Maps  
Lists有时也称为Array,有序。  
```dart
List superheroes = [ 'Batman', 'Superman', 'Harry Potter' ];

Set villains = new Set();
villains.add('Joker');
villains.addAll( ['Lex Luther', 'Voldemort'] );

Map sidekicks = { 'Batman': 'Robin',
                  'Superman': 'Lois Lane',
                  'Harry Potter': 'Ron and Hermione' };

常见集合方法

  • isEmpty()、isNotEmpty()

  • foreach()

  • map()

  • where()、any()、every() (Kotlin中也有这些鬼)

URIs

Uri类提供了编解码URI的函数。

Dates和Times

DateTime是一个点时间,DateTime.now()可以获取当前日期和时间。

工具类

  • 实现Comparable接口

  • 实现map keys,重载==和hashCode

  • 迭代,Iterable和Iterator

dart:async

异步程序通常使用回调,但是dart提供了一种替代方案:Future和Stream。Future类似一个做出了以后会返回某一结果的诺言,Stream是一种能获取一系列值的方法。 需要使用异步库时,需要在文件头导入库:

Future

await表达式

await表达式比Future API更好理解。

基本用法

可以使用then()来执行future的结果。比如说HttpRequest.getString()返回一个Future,使用then()来执行http响应,

then().catchError()模式是异步版本的try-catch。

组合多个异步方法

等待多个futures

有时,你需要调用多个Future,然后等待结果再执行。(Java中的栅栏)使用Future.wait()静态方法里管理多个Futures,然后等待他们执行完成。

Stream

使用异步循环

await for代替Stream API。下面的例子使用Stream的listen()方法订阅了一系列文件,搜索文件

监听流数据

使用await for或listen()方法监听数据的到来:

转换数据

transform()

dart:math

三角函数

最大值和最小值

常量

随机数

dart:convert

编解码JSON

解码:

编码:

Last updated