Комбинатор hide
Комбинатор hide применяется в директиве import
для того, чтобы исключить определенные имена из импортируемой
библиотеки. В первом параметре указывается ключевое слово
hide, после которого через запятую перечисляются имена,
которые нужно скрыть. Скрытыми могут быть классы, функции,
переменные и другие сущности библиотеки.
Комбинатор hide часто используется вместе с комбинатором
show, который, наоборот, оставляет только указанные имена.
Если после hide перечислить несколько имен, они все будут
исключены из области видимости текущего файла.
Синтаксис
import 'path/to/library.dart' hide name1, name2;
Пример
Допустим, у нас есть библиотека my_library.dart
с классом MyClass и функцией myFunction.
Давайте скроем функцию myFunction при импорте:
// my_library.dart
class MyClass
{
void hello()
{
print('Hello from MyClass');
}
}
void myFunction()
{
print('Hello from myFunction');
}
Теперь импортируем эту библиотеку и скроем функцию
myFunction:
import 'my_library.dart' hide myFunction;
void main()
{
MyClass obj = MyClass();
obj.hello();
}
Результат выполнения кода:
"Hello from MyClass"
Пример
Давайте попробуем вызвать скрытую функцию
myFunction. Это приведет к ошибке компиляции,
так как имя скрыто комбинатором hide:
import 'my_library.dart' hide myFunction;
void main()
{
myFunction();
}
Результат выполнения кода:
"Error: Undefined name 'myFunction'."
Пример
Можно скрыть сразу несколько имен, перечислив их через запятую. Давайте скроем и класс, и функцию:
import 'my_library.dart' hide MyClass, myFunction;
void main()
{
print('Both names are hidden');
}
Результат выполнения кода:
"Both names are hidden"