有没有办法从用户那里获取单个字符(整数)键盘输入并将它们存储到Dart命令行应用程序中的变量?我尝试过类似的东西:
Stream cmdLine = stdin
.transform(new StringDecoder())
.transform(new LineTransformer());
StreamSubscription cmdSubscription = cmdLine.listen(
(line) => (choice = line);
cmdSubscription.cancel(););
尝试将键盘输入存储到变量'choice'中,并且此代码的许多细微变化但无法使其工作。
答案 0 :(得分:2)
目前,您一次只能读取整行 - 即按下输入后。
将此issue加注星标。
<强>更新强>
readLine()函数等待来自用户的一行输入并将其作为字符串返回。
import 'dart:async';
import 'dart:io';
main() {
print('1 + 1 = ...');
readLine().then((line) {
print(line.trim() == '2' ? 'Yup!' : 'Nope :(');
});
}
Future<String> readLine() {
var completer = new Completer<String>();
var input = stdin
.transform(new StringDecoder())
.transform(new LineTransformer());
var subs;
subs = input.listen((line) {
completer.complete(line);
subs.cancel();
});
return completer.future;
}