Spec-Zone.ru › Dart 2

dart:core

bool.hasEnvironment constructor

const bool.hasEnvironment(
  1. String name
)

Наличие объявления окружения name.

Возвращает true тогда и только тогда, когда существует объявление окружения с именем name. В таком случае значение этого объявления можно получить с помощью const String.fromEnvironment(name). В противном случае String.fromEnvironment(name, defaultValue: someString) будет вычислено в заданное значение defaultValue.

Этот конструктор можно использовать для специальной обработки отсутствующего объявления способом, который нельзя реализовать, задав значение по умолчанию для конструктора C.fromEnvironment, где C имеет тип String, int или bool.

Пример:

const loggingIsDeclared = bool.hasEnvironment("logging");

const String? logger = loggingIsDeclared
    ? String.fromEnvironment("logging")
    : null;

Строковое значение или отсутствие значения, связанное с name, должно быть одинаковым при всех вызовах String.fromEnvironment, int.fromEnvironment, bool.fromEnvironment и bool.hasEnvironment в одной программе.

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

Реализация

// The .hasEnvironment() constructor is special in that we do not want
// users to call them using "new". We prohibit that by giving them bodies
// that throw, even though const constructors are not allowed to have bodies.
// Disable those static errors.
//ignore: const_constructor_with_body
//ignore: const_factory
external const factory bool.hasEnvironment(String name);

© 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/bool/bool.hasEnvironment.html

Spec-Zone.ru

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