bool.fromEnvironment 构造函数

const bool.fromEnvironment(
  1. String name, {
  2. bool defaultValue = false,
})

编译配置环境中的 name 对应的布尔值。

编译配置环境由编译或运行 Dart 程序的周围工具提供。环境是从一组字符串键到它们相关联的字符串值的映射。与 name 相关的字符串值或值的缺失必须在整个程序中对 String.fromEnvironmentint.fromEnvironmentbool.fromEnvironmentbool.hasEnvironment 的所有调用中保持一致。可以使用 String.fromEnvironment 直接访问字符串值。

此构造函数将 name 相关的字符串值解析为布尔值,类似于 bool.tryParse,这意味着它只接受字符串 "true""false"

如果编译配置环境中没有与 name 相关的值,或者相关的字符串值不是 "true""false" 之一,则构造函数调用的值为 defaultValue 布尔值,默认为布尔值 false

结果是与以下相同的

(const String.fromEnvironment(name) == "true")
    || ((const String.fromEnvironment(name) != "false") && defaultValue)

示例

const bool loggingEnabled = bool.fromEnvironment("logging");

要检查值是否存在,请使用 bool.hasEnvironment。示例

const bool? yesNoMaybe = bool.hasEnvironment("optionalFlag")
    ? bool.fromEnvironment("optionalFlag")
    : null;

要接受除了 "true""false" 之外的其他字符串,请直接使用 String.fromEnvironment 构造函数。示例

const isLoggingOn = (const String.fromEnvironment("logging") == "on");

此构造函数只有在作为 const 调用时才有保证工作。在某些平台(这些平台在运行时可以访问编译器选项)上,它可能作为非常量调用工作,但大多数提前编译的平台将不会有此信息。

实现

external const factory bool.fromEnvironment(String name,
    {bool defaultValue = false});