Dart, NoSuchMethodError: method not found: 'options' when using CommandRunner

Dart, NoSuchMethodError: method not found: 'options' when using CommandRunner

使用此处的示例: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);
  }
} 

我猜这个例子应该是这样的

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() 被执行并打印出选项。