在 C# 语言中存在用于此目的的全局系统变量。
Environment.CommandLine
当当前进程启动时,此属性提供对程序名称和命令行上指定的任何参数的访问。
Dart 是异步语言。它允许自启动过程。
void main() {
task("foo", callback1);
task("baz", callback2);
}
打包任务。
void task(String name, action()) {
schedule();
addTask(name. action);
}
void schedule() {
// Here we start timer if it not started.
// This timer will get cmd line arguments
// And executes task specified in cmd line arguments
}
附言
Dart Team 的官方回答:“未计划”。
我无法理解:“为什么通过他们的库在其他平台上这是可能的,但在 Dart 平台上这是不可能的?”。
为什么只通过“主要”参数,甚至不能确保其他隔离不会在不是真正的操作系统进程命令行参数的代理参数上替换这些参数)?
这里的例子:
围棋语言
func main() {
fmt.Println(len(os.Args), os.Args)
}
锈语言
fn main() {
let args = os::args();
println!("The first argument is {}", args[1]);
}
C#语言
class Sample {
public static void Main() {
Console.WriteLine();
String[] arguments = Environment.GetCommandLineArgs();
Console.WriteLine("GetCommandLineArgs: {0}", String.Join(", ", arguments));
}
}
红宝石语言
ARGV.each do|a|
puts "Argument: #{a}"
end
Python 语言
import sys
print(sys.argv)
PHP 语言
foreach($argv as $value)
{
echo "$value\n";
}
Node.js 语言
process.argv.forEach(function (val, index, array) {
console.log(index + ': ' + val);
});
附言
同样,我确信 Dart 平台与其他平台不同。
这只是我的意见。它不会改变任何东西。
感谢 Günter Zöchbauer 的关心,但无需编辑。