bool.hasEnvironment constructor Null safety
- String name
Whether there is an environment declaration name
.
Returns true iff there is an environment declaration with the name name
If there is then the value of that declaration can be accessed using
const String.fromEnvironment(name)
. Otherwise,
String.fromEnvironment(name, defaultValue: someString)
will evaluate to the given defaultValue
.
This constructor can be used to handle an absent declaration
specifically, in ways that cannot be represented by providing
a default value to the C.fromEnvironment
constructor where C
is one of String, int, or bool.
Example:
const loggingIsDeclared = bool.hasEnvironment("logging");
const String? logger = loggingIsDeclared
? String.fromEnvironment("logging")
: null;
The string value, or lack of a value, associated with a name
must be consistent across all calls to String.fromEnvironment,
int.fromEnvironment, bool.fromEnvironment and bool.hasEnvironment
in a single program.
This constructor is only guaranteed to work when invoked as const
.
It may work as a non-constant invocation on some platforms which
have access to compiler options at run-time, but most ahead-of-time
compiled platforms will not have this information.
Implementation
// 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);