核心基础类库,包含所有运行Dart应用必不可少的系统类, 如内置类型、集合,以及其它核心功能。

这个库是自动导入的。

库中的一些类,例如Stringnum, 支持Dart的内置数据类型。 其他类,如ListMap,为管理对象集合提供了数据结构。 还有常用的数据类型,如 URI、date、time和error。

Numbers 和 booleans

intdouble提供了对Dart内置数值数据类型的支持: 分别是整型和双精度浮点数。 bool类型的对象要么是true,要么是false。 这些类型的变量可以用常量进行构建:

int meaningOfLife = 42;
double valueOfPi  = 3.141592;
bool visible      = true;

Strings 和 regular expressions

String是不可变的,并代表一个字符序列。

String shakespeareQuote = "All the world's a stage, ...";

StringBuffer提供了一种高效地构建字符串的方式。

StringBuffer moreShakespeare = new StringBuffer();
moreShakespeare.write('And all the men and women ');
moreShakespeare.write('merely players; ...');

String和StringBuffer类实现了字符串的连接、插值,以及其他字符串操作。

String philosophy = 'Live on ';
String get palindrome => philosophy + philosophy.split('').reversed.join();

RegExp实现了Dart正则表达式功能,为文本内的匹配模式提供了语法。例如, 下面是一个匹配字符串中一个或多个数字的正则表达式:

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

Dart正则表达式与JavaScript正则表达式一样,具有相同的语法和语义, 可参见JavaScript正则表达式的规范 http://ecma-international.org/ecma-262/5.1/#sec-15.10

Collections

dart:core库提供了基本的集合,如ListMapSet

List是对象的有序集合,有时候也被称为数组。当你需要通过索引来获取对象时,使用List。

List superheroes = [ 'Batman', 'Superman', 'Harry Potter' ];

Set是不重复的、无序的对象集合,你并不能通过索引(位置)来得到数据。添加已经存在的重复项时,操作无效。

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

Map是无序的Key-Value键值对集合。Map有时被称为关联数组,因为Map为了便于检索,关联了键和值。 Key是唯一的、不重复的。当你需要通过唯一标识符来获取对象时,使用Map。

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

除了这些类,dart:core还包含了Iterable,一个定义了对象集合常用功能的接口。 包括能够对集合中的每个元素运行函数,对每个元素应用测试,检索对象,确定长度等功能。

Iterable通过List和Set被实现,并使用Map用于它的keys和values。

对于其他类型的集合,查看库 dart:collection.

Date 和 time

DateTime表示一个时间点,而 Duration表示一个时间跨度、时间段。

你可以通过构造函数或解析正确的格式化字符串,来创建DateTime。

DateTime now = new DateTime.now();
DateTime berlinWallFell = new DateTime(1989, 11, 9);
DateTime moonLanding = DateTime.parse("1969-07-20");

通过指定单个的时间单位来创建Duration对象。

Duration timeRemaining = new Duration(hours:56, minutes:14);

除了DateTime和Duration, dart:core包含有Stopwatch类,用于测量所用时间。

Uri

Uri对象表示一个统一资源标识符(Uniform Resource Identifier), 用于标识一个Web资源。

Uri dartlang = Uri.parse('http://dartlang.org/');

Errors

Error类表示在运行时发生的错误,子类表示特定的错误种类。

其他文档

关于如何使用内置类型的更多信息,参见 Dart: Up and Running 的第2章 Built-in Types

关于本包中更多类的信息,查看 dart:core - Numbers, Collections, Strings, and More

Dart Language Specification 中包含了更多的技术细节。

Constants

deprecated Deprecated

标记一个功能在下一个Release版本前为Deprecated

const Deprecated("next release")
override Object

注解@override将标记和重写一个实例的成员,并且与父类的成员名称相同。

const _Override()
proxy Object

注解@proxy将标记一个类作为实现的成员,动态地通过noSuchMethod

const _Proxy()

Typedefs

Comparator(T a, T b) int

通用的比较函数的签名。

Functions

identical(Object a, Object b) bool

检查两个引用是否是相同对象。

identityHashCode(Object object) int

返回object的标识哈希值。

print(Object object) → void

将对象以字符串的形式打印到控制台。

Classes

BidirectionalIterator

允许向前和向后移动的迭代器。

bool

保留字truefalse表示该类唯一的实例化对象。

Comparable

类型使用的接口都有一个固有的顺序。

DateTime

表示一个时间点,例如:July 20, 1969, 8:18pm GMT。

Deprecated

注解@Deprecated('expires when')用于标记某功能已过时、被弃用、不再建议使用。

double

双精度浮点数。

Duration

持续时间、时间跨度,如27天、4小时、12分钟和3秒。

Expando

Expando允许向对象添加新的属性。

Function

所有函数类型的基类。

int

任意大的整数。

Invocation

表示对象的一个成员的调用过程。

Iterable

按顺序访问的值或元素的集合。

Iterator

一个用于一次一个、从对象获取元素的接口。

List

列表,可索引的对象的集合。

Map

key-value键值对(可以使用相关联的key检索value值)的集合。

Match

在字符串中搜索的一个结果。

Null

保留字null表示该类唯一的实例化对象。

num

数值。表示整型,或浮点数。

Object

所有Dart对象的基类。

Pattern

字符串中的基本搜索接口。

RegExp

正则表达式模式。

Resource

DEPRECATED(类已被弃用)。表示可以读入程序的资源。

RuneIterator

用于读取Dart字符串rune(整型Unicode代码点)的迭代器Iterator

Runes

String的rune(整型Unicode代码点)。

Set

对象的集合,其中每个对象只能出现一次。

Sink

通用的数据缓冲池。

StackTrace

所有堆栈轨迹对象实现的接口。

Stopwatch

用于测量运行时间的简单秒表。

String

字符序列。

StringBuffer

用于高效地串联字符串。

StringSink

Symbol

用于Mirror,Invocation和Function.apply的不透明的名称。

Type

对象的运行时类型。Runtime representation of a type.

Uri

A parsed URI, such as a URL.

UriData

A way to access the structure of a data: URI.

Exceptions / Errors

AbstractClassInstantiationError

当试图实例化一个抽象类(abstract class)时,Error被抛出。

ArgumentError

当函数被传入一个不能被接受的参数时,Error被抛出。

AssertionError

当断言语句失败时,Error被运行时系统抛出。

CastError

当强制转换操作失败时,Error被运行时系统抛出。

ConcurrentModificationError

在迭代过程中集合被修改时,Error被抛出。

CyclicInitializationError

在惰性初始化时,变量不能被初始化,Error被抛出。

Error

Error对象在发生程序故障时被抛出。

Exception

被所有核心库的异常实现的标记接口。

FallThroughError

当控制权到达switch case表达式的末尾时,Error被抛出。

FormatException

当字符串或其它数据不符合预期格式,无法被解析或处理时抛出异常。

IndexError

专业的RangeError,当索引不在0..indexable.length-1范围内时使用。

IntegerDivisionByZeroException

NoSuchMethodError

Object中默认实现的noSuchMethod方法抛出。

NullThrownError

当试图抛出空值throw null时,Error被抛出。

OutOfMemoryError

RangeError

当索引超出有效范围时,Error被抛出。

StackOverflowError

StateError

在对象的当前状态,操作不被允许。

TypeError

当类型断言失败时,Error被运行时系统抛出。

UnimplementedError

操作还没有被实现。

UnsupportedError

对象不允许的操作。