【问题标题】:How do I access argv / command line options in Dart?如何在 Dart 中访问 argv / 命令行选项?
【发布时间】:2012-03-05 23:27:47
【问题描述】:

Dart 有 getopt 库吗?

【问题讨论】:

    标签: command-line-arguments argv getopt dart


    【解决方案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

        【讨论】:

          猜你喜欢
          • 2015-02-16
          • 2017-09-25
          • 2011-01-29
          • 2019-08-24
          • 1970-01-01
          • 2016-04-16
          • 2011-12-19
          • 1970-01-01
          相关资源
          最近更新 更多