Dart,NoSuchMethodError:找不到方法:' options'使用CommandRunner时

时间:2015-03-15 22:32:04

标签: dart command

使用此处的示例:http://www.dartdocs.org/documentation/args/0.13.0/index.html

我正在尝试编写命令行应用程序,但在尝试使用此示例代码时,我得到NoSuchMethodError: method not found: 'options'。为什么没有为Command子类实例定义options?如果我不应该使用options那么我应该使用什么来访问传递给该命令的选项?

这是我的代码也失败了:

class ShuffleCommand extends Command {

  final name = "shuffle";
  final description = "Shuffle and choose cards from a deck";

  ShuffleCommand() {
    argParser
      ..addFlag('count', abbr: 'c', defaultsTo: "1")
      ..addOption('deck');
  }

  void run() {
    print(options);
  }
} 

1 个答案:

答案 0 :(得分:1)

我猜这个例子看起来应该是

import 'package:args/args.dart';
import 'package:args/command_runner.dart';

void main(List<String> args) {
  var parser = new ArgParser();

  var command = new ArgParser();
  parser.addCommand('shuffle', command);

  var runner = new CommandRunner('shuffle', '')
    ..addCommand(new ShuffleCommand())
    ..run(args);

}

class ShuffleCommand extends Command {

  final name = "shuffle";
  final description = "Shuffle and choose cards from a deck";

  ShuffleCommand() {
    argParser
      ..addFlag('count', abbr: 'c', defaultsTo: true)
      ..addOption('deck');
  }

  void run() {
    print(argParser.options);
  }
}

当您使用dart main.dart shuffle运行时,会执行run()并打印出选项。