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()
被执行并打印出选项。
使用此处的示例: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()
被执行并打印出选项。