#4 Dartで学ぶ標準入力の基本

Dartにおける標準入力は、主にコマンドラインツールを作る際に使う機能です。この記事では、Dartで利用者からの入力を受け取る基本的な方法と、安全な変換の仕方を解説します。

stdin.readLineSync()を使う

Dartでは、dart:ioというライブラリを読み込むことで、標準入力を扱えるようになります。

import 'dart:io';

print("名前を入力してください: ");
String? name = stdin.readLineSync();

readLineSync()の結果は、Kotlinと同じように「値が入っていないかもしれない(null許容型)」として扱われます。

数値として受け取る

数値として使いたい場合は、int.parse()や、失敗してもエラーにならないint.tryParse()を使って変換します。

int age = int.tryParse(stdin.readLineSync() ?? "") ?? 0;

「入力がなければ空文字を使い、数値に変換できなければ0を使う」という安全な処理を1行で表しています。

複数の値をまとめて受け取る

スペース区切りで複数の値が入力される場合は、splitで分割してから、それぞれを変換します。

final line = stdin.readLineSync() ?? "";
final numbers = line.split(" ").map((s) => int.parse(s));
print(numbers.reduce((a, b) => a + b));

入力を繰り返し受け取る

利用者が特定の文字を入力するまで繰り返し受け付けたい場合は、whileと組み合わせます。

String? line;
while ((line = stdin.readLineSync()) != null && line != "exit") {
    print("入力: $line");
}

Dartならではの注意点

Dartの標準入力はFlutterアプリの開発では基本的に使いません。Flutterでは、画面上のテキスト入力欄(ウィジェット)を通じて利用者からの入力を受け取ります。標準入力はあくまで、コマンドラインで動くDartプログラムを書く場合の機能だと理解しておきましょう。

まとめ

Dartの標準入力はstdin.readLineSync()を使い、null許容型を意識しながら扱うのが基本です。Flutter開発とは別の文脈の機能であることも覚えておきましょう。


本ページはプロモーションを含みます。

参考書籍(PR)

Dartをもっと学びたい方には「ゼロから学ぶFlutterアプリ開発」がおすすめです。


PR

コードを書かずに自動化したい方へ

「学んだけど自分の作業に組み込む時間がない」という方向けに、ダブルクリックで動く Windows専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。

コメント

このブログの人気の投稿

#25 Rustで学ぶAI API(ChatGPT等)の呼び出し方の基本

#8 C++で学ぶ文字列操作の基本

#16 TypeScriptで学ぶ辞書型(マップ)の基本