使用此处的示例: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);
}
}
答案 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()
并打印出选项。