Импорт файла в Dart
Класс из соседнего файла без импорта в этом файле
недоступен. Директива import сообщает
анализатору: здесь можно использовать имена из
указанной библиотеки. Путь пишут в кавычках,
обычно относительно текущего файла.
Запишем класс Post в post.dart, а в
main.dart подключим файл и создадим объект:
class Post {
String title = "home";
}
import 'post.dart';
Post post = Post();
print(post.title);
Без строки import 'post.dart'; имя Post
в main.dart неизвестно. С импортом достаточно
короткого имени типа.
Импортировать можно не только классы, но и функции и переменные верхнего уровня из другого файла:
String trimSpaces(String value) {
return value.trim();
}
import 'format.dart';
print(trimSpaces(" hi "));
Несколько нужных библиотек подключают отдельными
строками import. Порядок строк не влияет на
работу программы, но в проектах их обычно группируют
для читаемости:
class Model {
int id = 1;
}
class Data {
String text = "ok";
}
import 'model.dart';
import 'data.dart';
Model model = Model();
Data data = Data();
print(model.id);
print(data.text);
Если два класса называются одинаково, но лежат
в разных файлах, одновременно импортировать оба
по короткому имени нельзя - возникнет конфликт.
Имена разводят префиксом через as.
В файле employee.dart объявите класс
Employee с полем tag типа
String. В main.dart импортируйте
этот файл, создайте объект класса Employee
с меткой "a" и выведите значение
его поля tag.
Упростите следующий код с использованием
import:
class Report {
void build() {
Employee a = Employee("Ann");
Employee b = Employee("Bob");
print(a.tag);
print(b.tag);
}
}
Класс Employee объявлен в employee.dart.
Дан следующий код:
class Service {
void start() {
Logger log = Logger();
Settings cfg = Settings();
log.write("start");
print(cfg.mode);
}
}
Классы Logger и Settings лежат в
logger.dart и settings.dart.
Добавьте нужные импорты в начало main.dart.
Создайте класс Alpha в alpha.dart
и класс Beta в beta.dart.
В main.dart импортируйте оба файла
и создайте по одному объекту каждого класса.