Библиотеки и импорт
Часть раздела Объектно-ориентированное программирование путешествия по Dart на Coddy — урок 2 из 110.
Dart поставляется с богатым набором встроенных библиотек, которые вы можете импортировать, используя синтаксис import 'dart:libraryname';.
Некоторые часто используемые встроенные библиотеки:
dart:math— математические функции и константы
dart:io— поддержка файлов, сокетов и стандартного ввода-вывода
dart:core— импортируется автоматически, предоставляет базовые типы
Импортируйте библиотеку dart:math для использования математических функций
import 'dart:math';Используйте функции и константы из библиотеки
void main() {
print(sqrt(25)); // 5.0
print(pi.toStringAsFixed(5)); // 3.14159
print(pow(2, 10)); // 1024
}Вывод:
5.0
3.14159
1024Вы также можете импортировать собственный файл наряду со встроенной библиотекой. Оба типа импорта работают одинаково — разница лишь в том, начинается ли путь с dart: (встроенная библиотека) или со строки с именем файла (локальный файл).
import 'dart:math'; // встроенная библиотека
import 'my_helpers.dart'; // ваш собственный файлЗадание
СреднеВам дан файл math_tools.dart, который уже использует dart:math внутри. Добавьте правильную инструкцию import в driver.dart, чтобы подключить math_tools.dart и иметь возможность вызывать его функции!
math_tools.dart: Содержит функцииgetSquareRoot(n)иgetPI()(заблокировано)driver.dart: Добавьте импорт, и всё остальное заработает
Шпаргалка
Импортируйте встроенные библиотеки, используя синтаксис import 'dart:libraryname';:
import 'dart:math';Часто используемые встроенные библиотеки:
dart:math— математические функции и константыdart:io— поддержка файлов, сокетов и стандартного ввода-выводаdart:core— импортируется автоматически, предоставляет базовые типы
Пример использования dart:math:
import 'dart:math';
void main() {
print(sqrt(25)); // 5.0
print(pi.toStringAsFixed(5)); // 3.14159
print(pow(2, 10)); // 1024
}Импортируйте собственные файлы, используя строку с именем файла:
import 'dart:math'; // встроенная библиотека
import 'my_helpers.dart'; // ваш собственный файлПопробуйте сами
// TODO: Импортируйте math_tools.dart, чтобы использовать getSquareRoot и getPI
import 'dart:io';
void main() {
String testCase = stdin.readLineSync()!;
if (testCase == 'sqrt_test') {
print(getSquareRoot(25).toInt());
} else if (testCase == 'pi_test') {
print(getPI().toStringAsFixed(5));
}
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Объектно-ориентированное программирование
1Основы ООП
Внешние файлыБиблиотеки и импортВведение в ООПКлассы и объектыКлючевое слово thisМетодыПеременные экземпляраОсновы конструкторовИтоги — Простой калькулятор4Null-безопасность
Введение в Null-безопасностьNullable и Non-Nullable типыОператоры ? и !Ключевое слово Late и Null-безопасностьNull-aware операторыNull-безопасность в классахИтоги — Система профилей пользователей7Абстрактные классы и интерфейсы
Абстрактные классыАбстрактные методыИнтерфейсы в DartНеявные интерфейсыРеализация против наследованияМножественные интерфейсыИтоги — Калькулятор фигур10Коллекции и обобщения
Обзор List, Set, MapТипобезопасные коллекцииОбобщенные классыОбобщенные методыОграничения обобщенийIterable и IteratorИтоги: Обобщенное хранилище13Продвинутые концепции ООП
Композиция против наследованияМетоды расширенияВызываемые классыЗапечатанные классы (Dart 3)Записи (Dart 3)Паттерны и сопоставление (3.0)Перечисления с методами16Проект: Управление библиотекой
Обзор проектаКлассы Book и User2Конструкторы в Dart
Конструктор по умолчаниюИменованные конструкторыСписки инициализацииКонстантные конструкторыФабричные конструкторыПеренаправляющие конструкторыИтоги — Shape Builder5Инкапсуляция
Публичные и приватные членыСоглашение о префиксе _Приватность на уровне библиотекГеттеры и сеттеры: подробный разборСкрытие данныхИтоги — Записи о студентах8Mixins
Введение в MixinsСоздание MixinsИспользование нескольких MixinsКлючевое слово on в MixinsMixin и наследованиеMixin и интерфейсИтоги: Система животных11Специальные методы
Переопределение toString()Переопределение hashCode и ==Интерфейс ComparableМетод call()Переопределение noSuchMethodПовторение — Пользовательская коллекция14Паттерны проектирования. Часть 1
Введение в паттерны проектированияПаттерн SingletonПаттерн FactoryПаттерн ObserverПаттерн Strategy3Свойства классов
Члены экземпляра и статические членыПоля Final и ConstПеременные LateСтатические методы и поляГеттеры и сеттерыИтоги — Менеджер банковского счета6Наследование
Основы наследованияКлючевое слово superПереопределение методовАннотация @overrideКлючевое слово final для классовКонструкторы и наследованиеИтоги: Иерархия сотрудников9Полиморфизм
Основы полиморфизмаПолиморфизм через интерфейсыПроверка типов во время выполненияОператоры is и asКлючевое слово covariantИтоги — Обработчик платежей12Асинхронное ООП
Futures и async/awaitОсновы StreamsКонтроллеры StreamАсинхронные конструкторыАсинхронность в методах классовИтоги — Data Fetcher15Паттерны проектирования. Часть 2
Паттерн КомандаПаттерн АдаптерПаттерн ДекораторПаттерн Шаблонный методПаттерн СостояниеПаттерн КомпоновщикПаттерн Репозиторий