dart:core library

每个Dart程序的内置类型,集合和其他核心功能.

该库将自动导入.

该库中的某些类(例如Stringnum )支持Dart的内置数据类型. 其他类,例如ListMap ,提供了用于管理对象集合的数据结构. 还有其他类表示常用的数据类型,例如URI,日期和时间以及错误.

Numbers and booleans

intdouble支持Dart的内置数字数据类型:分别为整数和双精度浮点数. bool类型的对象为true或false. 这些类型的变量可以从文字构造:

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

Strings and regular expressions

字符串是不可变的,代表一系列字符.

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正则表达式的规范,请参见ecma-international.org/ecma-262/5.1/#sec-15.10 .

Collections

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

列表是对象的有序集合,具有一定长度. 列表有时称为数组. 当您需要按索引访问对象时,请使用列表.

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' };

除了这些类之外,dart:core包含Iterable ,该接口定义对象集合中常见的功能. 示例包括在集合中的每个元素上运行功能,对每个元素进行测试,检索对象以及确定长度的能力.

Iterable由List和Set实现,并由Map用于其键和值.

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

Date and 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对象代表统一资源标识符,该标识符标识Web上的资源.

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

Errors

Error类表示运行时发生错误. 此类的子类表示特定类型的错误.

Other documentation

有关如何使用内置类型的更多信息,请参阅Dart:启动和运行的第2章中的内置类型 .

另外, 有关此包中类的更多信息 ,请参见dart:core-数字,集合,字符串和更多内容 .

Dart语言规范提供了技术细节.

Classes

BidirectionalIterator<E>
一个允许向前和向后移动的迭代器.
BigInt
任意大的整数.
bool
保留字truefalse表示仅是此类的两个实例的对象. [...]
Comparable<T>
具有固有顺序的类型使用的接口. [...]
DateTime
时间,例如格林尼治标准时间1969年7月20日晚上8:18. [...]
Deprecated
注释@Deprecated('migration')将功能标记为已弃用. [...]
double
双精度浮点数. [...]
Duration
时间跨度,例如27天,4小时,12分钟和3秒. [...]
Expando<T>
Expando允许向对象添加新属性. [...]
Function
所有函数类型的基类. [...]
Future<T>
表示延迟计算的对象. [...]
int
一个整数. [...]
Invocation
表示成员在对象上的调用. [...]
Iterable<E>
可以顺序访问的值或"元素"的集合. [...]
Iterator<E>
一种从一个对象一次获取项目的接口. [...]
List<E>
具有长度的可索引对象集合. [...]
Map<K, V>
键/值对的集合,您可以使用其关联的键从中检索值. [...]
MapEntry<K, V>
表示Map中一个条目的键/值对.
Match
在字符串中搜索的结果. [...]
Null
保留字null表示一个对象,它是此类的唯一实例. [...]
num
整数或浮点数. [...]
Object
所有Dart对象的基类. [...]
Pattern
在字符串中进行基本搜索的接口.
pragma
工具提示. [...]
Provisional
在Dart 2的开发过程中使用的注释类. [...]
RegExp
正则表达式模式. [...]
RegExpMatch
正则表达式匹配. [...]
RuneIterator
用于从Dart字符串中读取符文(整数Unicode代码点)的迭代器 .
Runes
String的符文(整数Unicode代码点).
Set<E>
对象的集合,其中每个对象只能出现一次. [...]
Sink<T>
数据的通用目的地. [...]
StackTrace
由所有堆栈跟踪对象实现的接口. [...]
Stopwatch
A simple stopwatch interface to measure elapsed time.
Stream<T>
异步数据事件的源. [...]
String
UTF-16代码单元的序列. [...]
StringBuffer
一个有效地串联字符串的类. [...]
StringSink
Symbol
镜像,调用和Function.apply使用的不透明名称.
Type
类型的运行时表示.
Uri
解析的URI,例如URL. [...]
UriData
一种访问data:结构的data: URI. [...]

Constants

deprecated → const Deprecated
将功能标记为不推荐使用,直到下一个版本.
const Deprecated ("next release")
override → const Object
注释@override将实例成员标记为覆盖具有相同名称的超类成员. [...]
const _Override()
provisional → const Null
在Dart 2的开发过程中使用的注释. [...]
null
proxy → const Object
此注释已弃用,并将在Dart 2中删除. [...]
const _Proxy()

Functions

identical(Object a, Object b) bool
检查两个引用是否指向同一个对象.
identityHashCode(Object object) int
返回object的标识哈希码. [...]
print(Object object) → void
将对象的字符串表示形式打印到控制台.

Typedefs

Comparator<T>(T a, T b) int
通用比较功能的签名. [...]

Exceptions / Errors

AbstractClassInstantiationError
尝试实例化抽象类时引发的错误.
ArgumentError
向函数传递不可接受的参数时引发的错误.
AssertionError
断言语句失败时,运行时系统引发的错误.
CastError
强制转换操作失败时,运行时系统引发的错误.
ConcurrentModificationError
Error occurring when a collection is modified during iteration. [...]
CyclicInitializationError
延迟初始化的变量无法初始化时引发的错误. [...]
Error
程序失败时抛出的错误对象. [...]
Exception
由所有核心库异常实现的标记接口. [...]
FallThroughError
当控制权到达切换条件结尾时引发的错误. [...]
FormatException
当字符串或某些其他数据没有预期的格式并且无法解析或处理时引发的异常.
IndexError
当索引不在0..indexable.length-1范围内时,使用专门的RangeError . [...]
IntegerDivisionByZeroException
LateInitializationError
以无效方式访问后期变量时引发的错误. [...]
NoSuchMethodError
noSuchMethod的默认实现对Object抛出的错误.
NullThrownError
尝试抛出null时抛出的错误.
OutOfMemoryError
RangeError
由于索引超出有效范围而引发的错误.
StackOverflowError
StateError
该对象的当前状态不允许该操作. [...]
TypeError
当发生动态类型错误时,运行时系统抛出的错误.
UnimplementedError
由尚未实现的操作抛出. [...]
UnsupportedError
该对象不允许该操作. [...]