Spec-Zone.ru › Dart 2

Библиотека dart:core

Встроенные типы, коллекции и другие основные возможности для каждой программы на Dart.

Эта библиотека импортируется автоматически.

Некоторые классы этой библиотеки, такие как String и num, поддерживают встроенные типы данных Dart. Другие классы, такие как List и Map, предоставляют структуры данных для управления коллекциями объектов. Ещё одни классы представляют часто используемые типы данных, например URI, даты и время, а также ошибки.

Числа и логические значения

int и double поддерживают встроенные числовые типы данных Dart: целые числа и числа с плавающей запятой двойной точности соответственно. Объект типа bool имеет значение true или false. Переменные этих типов можно создавать с помощью литералов:

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

Строки и регулярные выражения

String — неизменяемый тип, представляющий последовательность символов.

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

StringBuffer позволяет эффективно создавать строки.

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

Классы String и StringBuffer реализуют разделение и объединение строк, а также другие операции над строками.

bool isPalindrome(String text) => text == text.split('').reversed.join();

RegExp реализует регулярные выражения Dart, задающие синтаксис для поиска шаблонов в тексте. Например, вот регулярное выражение, которое соответствует подстроке, содержащей одну или несколько цифр:

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

Синтаксис и семантика регулярных выражений Dart совпадают с синтаксисом и семантикой регулярных выражений JavaScript. Спецификацию регулярных выражений JavaScript см. на странице ecma-international.org/ecma-262/5.1/#sec-15.10.

Коллекции

Библиотека dart:core предоставляет базовые коллекции, такие как List, Map и Set.

List — упорядоченная коллекция объектов, имеющая длину. Списки иногда называют массивами. Используйте List, когда нужно обращаться к объектам по индексу.

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

Set — неупорядоченная коллекция уникальных объектов. Нельзя эффективно получить элемент по индексу (позиции). Добавление уже существующего в множестве элемента не влияет на множество.

var villains = {'Joker'};
print(villains.length); // 1
villains.addAll(['Joker', 'Lex Luthor', 'Voldemort']);
print(villains.length); // 3

Map — неупорядоченная коллекция пар ключ-значение, в которой каждый ключ может встречаться только один раз. Map иногда называют ассоциативным массивом, поскольку он связывает ключ со значением, которое легко получить по этому ключу. Используйте Map, когда нужно обращаться к объектам по уникальному идентификатору.

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

Помимо этих классов, библиотека dart:core содержит Iterable — интерфейс, определяющий общие для коллекций объектов возможности. К ним относятся применение функции к каждому элементу коллекции, проверка каждого элемента, получение объекта и определение количества элементов.

Iterable реализуется классами List и Set, а класс Map использует его для ключей и значений.

Другие виды коллекций см. в библиотеке dart:collection.

Дата и время

Используйте DateTime для представления момента времени, а Duration — для представления промежутка времени.

Объекты DateTime можно создавать с помощью конструкторов или разбирать из строки в правильном формате.

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

Создайте объект Duration, указав отдельные единицы времени.

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

Помимо DateTime и Duration, библиотека dart:core содержит класс Stopwatch для измерения прошедшего времени.

URI

Объект Uri представляет унифицированный идентификатор ресурса, который идентифицирует ресурс, например в интернете.

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

Ошибки

Класс Error представляет возникновение ошибки во время выполнения. Подклассы этого класса представляют конкретные виды ошибок.

Другие материалы

Подробнее об использовании встроенных типов см. в разделе Встроенные типы в документе Обзор языка Dart.

Дополнительную информацию о типах этой библиотеки см. также в разделе dart:core — числа, коллекции, строки и многое другое.

Спецификация языка Dart содержит технические подробности.

Классы

BidirectionalIterator<E>
Iterator, позволяющий перемещаться как вперёд, так и назад.
BigInt
Целое число произвольно большой величины.
bool
Зарезервированные слова true и false обозначают объекты, являющиеся единственными двумя экземплярами этого класса.
Comparable<T>
Интерфейс, используемый типами со встроенным порядком.
DateTime
Момент времени, например 20 июля 1969 года, 20:18 по Гринвичу.
Deprecated
Аннотация @Deprecated('migration') помечает функцию как устаревшую.
double
Число с плавающей запятой двойной точности.
Duration
Промежуток времени, например 27 дней, 4 часа, 12 минут и 3 секунды.
Enum
Перечисляемое значение.
Expando<T extends Object>
Expando позволяет добавлять объектам новые свойства.
Finalizer<T>
Финализатор, который можно прикрепить к объектам Dart.
Function
Супертип всех типов функций.
Future<T>
Результат асинхронного вычисления.
int
Целое число.
Invocation
Представление вызова члена объекта.
Iterable<E>
Коллекция значений, или «элементов», к которым можно обращаться последовательно.
Iterator<E>
Интерфейс для получения элементов объекта по одному.
List<E>
Коллекция объектов с длиной, к которым можно обращаться по индексу.
Map<K, V>
Коллекция пар ключ/значение, из которой можно получить значение по соответствующему ключу.
MapEntry<K, V>
Пара ключ/значение, представляющая запись в Map.
Match
Результат поиска в строке.
Null
Зарезервированное слово null обозначает объект, являющийся единственным экземпляром этого класса.
num
Целое число или число с плавающей запятой.
Object
Базовый класс всех объектов Dart, кроме null.
Pattern
Интерфейс для простого поиска в строках.
pragma
Подсказка для инструментов.
Provisional
Класс аннотации, использовавшийся во время разработки Dart 2.
Record
Базовый класс всех типов записей.
RegExp
Шаблон регулярного выражения.
RegExpMatch
Совпадение с регулярным выражением.
RuneIterator
Iterator для чтения рун (целочисленных кодовых точек Unicode) строки Dart.
Runes
Руны (целочисленные кодовые точки Unicode) типа String.
Set<E>
Коллекция объектов, в которой каждый объект может встречаться только один раз.
Sink<T>
Универсальный получатель данных.
StackTrace
Интерфейс, реализуемый всеми объектами трассировки стека.
Stopwatch
Секундомер, измеряющий время во время работы.
Stream<T>
Источник асинхронных событий данных.
String
Последовательность 16-битных кодовых единиц UTF.
StringBuffer
Класс для эффективного объединения строк.
StringSink
Symbol
Непрозрачное имя, используемое зеркалами, вызовами и Function.apply.
Type
Представление типа во время выполнения.
Uri
Разобранный URI, например URL.
UriData
Способ доступа к структуре URI data:.
WeakReference<T extends Object>
Слабая ссылка на объект Dart.

Расширения

DateTimeCopyWith
Добавляет метод copyWith объектам DateTime.
EnumByName
Доступ к значениям перечисления по имени.
EnumName
Доступ к имени значения перечисления.
FutureExtensions
Вспомогательные методы для объектов Future.

Константы

deprecated → const Deprecated
Помечает функцию как устаревшую до следующего выпуска.
Deprecated("next release")
override → const Object
Аннотация для членов экземпляра, переопределяющих член интерфейса.
_Override()
provisional → const Null
Аннотация, использовавшаяся во время разработки Dart 2.
null
proxy → const Null
Эта аннотация использовалась в Dart до версии 2.
null

Функции

identical(Object? a, Object? b) → bool
Проверяет, ссылаются ли две ссылки на один и тот же объект.
identityHashCode(Object? object) → int
Идентификационный хеш-код object.
print(Object? object) → void
Выводит строковое представление объекта в консоль.

Определения типов

Comparator<T> = int Function(T a, T b)
Сигнатура универсальной функции сравнения.

Исключения / ошибки

AbstractClassInstantiationError
Ошибка, возникающая при попытке создать экземпляр абстрактного класса.
ArgumentError
Ошибка, возникающая, когда функции передан недопустимый аргумент.
AssertionError
Ошибка, возникающая в системе выполнения при сбое оператора assert.
CastError
Ошибка, возникающая в системе выполнения при сбое операции приведения типа.
ConcurrentModificationError
Ошибка, возникающая при изменении коллекции во время итерации.
CyclicInitializationError
Ошибка, возникающая, когда переменную с отложенной инициализацией не удаётся инициализировать.
Error
Объекты ошибок, возникающие при сбое программы.
Exception
Интерфейс-маркер, реализуемый всеми исключениями основной библиотеки.
FallThroughError
Ошибка, которая ранее возникала, когда выполнение доходило до конца ветви switch.
FormatException
Исключение, возникающее, когда строка или другие данные имеют неожиданный формат и не могут быть разобраны или обработаны.
IndexError
Специализированная ошибка RangeError, используемая, когда индекс находится вне диапазона 0..indexable.length-1.
IntegerDivisionByZeroException
NoSuchMethodError
Ошибка, возникающая, когда невозможно вызвать определённый метод.
NullThrownError
Ошибка, возникающая при попытке выбросить null.
OutOfMemoryError
Ошибка, которую платформа может использовать при нехватке памяти.
RangeError
Ошибка, возникающая, если значение аргумента выходит за допустимый диапазон.
StackOverflowError
Ошибка, которую платформа может использовать при переполнении стека.
StateError
Текущее состояние объекта не допускает выполнение операции.
TypeError
Ошибка, возникающая в системе выполнения при динамической ошибке типа.
UnimplementedError
Возникает при вызове операций, которые ещё не реализованы.
UnsupportedError
Объект не допускает выполнение операции.

© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.19.6/dart-core/dart-core-library.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API