Rustのprintによる標準出力がプログラム実行完了まで出力されないのはラインバッファに溜まっているから

開発の途中でどんな値が流れてきているか一時的に変数の値を標準出力に出して確認することがある。例えばKotlinならprintln、PHPならvar_dump、JavaScriptならconsole.logを呼ぶのと同じ気持ちです。

はじめてテストでコードを書いた時、下記のように出力を試みたのですがプログラムの終了まで出力されませんでした。

print!("hoge");

どうやらprintはデフォルトでラインバッファされるらしいので下記のようにしてフラッシュしてあげるか

print!("hoge");
stdout().flush().unwrap();

改行付き出力ができるprintlnを使うと良いみたい。通常はこっちを使うのが正しいそうです。

println!("hoge");

今まで触った言語で指定していないのにバッファに貯まるってのがあまりなかったので新鮮でございました。下記は参考にしたページでございます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA