如何在 Dart 中访问 argv / 命令行选项?
Posted
技术标签:
【中文标题】如何在 Dart 中访问 argv / 命令行选项?【英文标题】:How do I access argv / command line options in Dart? 【发布时间】:2012-03-05 23:27:47 【问题描述】:Dart 有 getopt 库吗?
【问题讨论】:
【参考方案1】:编辑:这不再有效,请参阅上面接受的答案。
见Options
。
http://api.dartlang.org/dart_io/Options.html
List<String> argv = (new Options()).arguments;
【讨论】:
我看到 Dart 从参数中省略了脚本名称。你知道怎么找回吗? Ruby 和 Perl 使用$0
来实现。
啊,Options 有一个script
访问器。 rosettacode.org/wiki/Program_name#Dart
补充一点意见:截至 2013 年 3 月,Options 类位于 dart:io 中。
Options
类不再存在于 dart:io 中。请改用 package:args。【参考方案2】:
#!/usr/bin/env dart
main()
print("Args: " + new Options().arguments);
【讨论】:
一些cmets:(1)不需要导入核心库,(2)+操作符不能作为String连接,所以使用"Args: $new Options().arguments " 我认为对于我正在使用的 Dart/Mac OS X 版本,您实际上必须导入dart:core
。谢谢你的飞镖技巧。显然+
可以用于字符串连接,因为它在这个sn-p 中工作。也许在 Dart 中字符串插值是首选,但它不是唯一的选择。【参考方案3】:
我使用这个库来定义和解析命令行参数http://pub.dartlang.org/packages/args
【讨论】:
【参考方案4】:// dart 1.0
import 'dart:io';
void main(List<String> args)
String exec = Platform.executable;
List<String> flags = Platform.executableArguments;
Uri script = Platform.script;
print("exec=$exec");
print("flags=$flags");
print("script=$script");
print("script arguments:");
for(String arg in args)
print(arg);
【讨论】:
【参考方案5】:使用选项不再是一个选项,使用:
void main(List<String> args)
print(args);
要获得可执行文件,请使用 Platform.executable(Platform 来自 dart:io)
要解析传递给 main 的参数,请使用 cool package
【讨论】:
以上是关于如何在 Dart 中访问 argv / 命令行选项?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Ubuntu 网络服务器上为 Dart 安装 pub(命令行使用)