这是一个代码:
const bool a = const bool.fromEnvironment("true");
print(a); // false
Run Code Online (Sandbox Code Playgroud)
是的,默认值为 false。a
在不使用默认值的情况下我应该怎么做?那么字符串参数是什么?也许是一把钥匙?
你想达到什么目的?设置a
为 true 可以如下完成const a = true;
。
该bool.fromEnvironment
函数允许您查找定义的命名字符串属性,这些属性可以在编译时在命令行添加,或者可以由您正在编译/运行的平台定义。String.fromEnvironment
和也是如此int.fromEnvironment
。
为平台支持的每个库dart.library.*
设置一组此类平台属性。true
dart:*
因此,要打印 以外的内容false
,您可以执行以下操作:
print(const bool.fromEnvironment("dart.library.core"));
Run Code Online (Sandbox Code Playgroud)
这很无聊,因为所有平台都支持dart:core
. 您可以检查其他库的可用性:
const bool supportsMirrors = bool.fromEnvironment("dart.library.mirrors");
const bool isJavaScript = bool.fromEnvironment("dart.library.js");
Run Code Online (Sandbox Code Playgroud)
或者,您可以在编译时在命令行上提供一个值。我们以dart
单机虚拟机为例。编写以下脚本script.dart
:
void main() {
print(const bool.fromEnvironment("my-fancy-thing"));
}
Run Code Online (Sandbox Code Playgroud)
如果您在dart script.dart
打印时运行它false
。如果您在dart -Dmy-fancy-thing=true script.dart
打印时运行它true
。
归档时间: |
|
查看次数: |
2891 次 |
最近记录: |