这里有一段代码:
const bool a = const bool.fromEnvironment("true");
print(a); // false
是的,默认值默认情况下为false。如果不使用默认值,我该怎么做才能使a
为true?那么字符串参数是什么?它可能是一个键吗?
您想要实现什么目标?
将a
设置为true可以通过const a = true;
实现。
bool.fromEnvironment
函数允许您查找已定义的命名字符串属性,这些属性可以在编译时通过命令行添加,或者可能由您正在编译/运行的平台定义。 String.fromEnvironment
和int.fromEnvironment
也是如此。
这样一个平台属性集合是dart.library.*
,它们分别为平台支持的每个dart:*
库设置为true
。
因此,要打印出其他值而不是false
,可以执行以下操作:
print(const bool.fromEnvironment("dart.library.core"));
由于所有平台都支持dart:core
,因此这一点相当无聊。
您可以通过以下方式检查其他库的可用性:
const bool supportsMirrors = bool.fromEnvironment("dart.library.mirrors");
const bool isJavaScript = bool.fromEnvironment("dart.library.js");
或者,您可以在编译时通过命令行提供值。让我们以dart
独立虚拟机为例。编写以下脚本script.dart
:
void main() {
print(const bool.fromEnvironment("my-fancy-thing"));
}
dart script.dart
运行,它会打印false
。
如果您将其作为dart -Dmy-fancy-thing=true script.dart
运行,它会打印true
。
fromEnvironment
参数不确定,您想通过fromEnvironment()
实现什么? - pskink