2

ユーザーから 1 文字 (整数) のキーボード入力を受け取り、それらを Dart コマンドライン アプリの変数に格納する方法はありますか? 私は次のようなことを試しました:

Stream cmdLine = stdin
  .transform(new StringDecoder())
  .transform(new LineTransformer());

StreamSubscription cmdSubscription = cmdLine.listen(
  (line) => (choice = line);
  cmdSubscription.cancel(););

変数 'c​​hoice' にキーボード入力を格納しようとしており、このコードの多くのわずかなバリエーションがありますが、動作させることができません。

4

1 に答える 1

2

現在、一度に行全体を読み取ることしかできません。つまり、Enter キーを押した後です。

この号にスターを付けてください。

更新しました:

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;
}
于 2013-05-01T04:32:53.593 に答える