Библиотека 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