基本库
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