出力と終了コードの書き込み
結果を報告し、状態を通知します
「出力と終了コードの書き込み」はCoddyKit上の無料Zig Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはZig Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Zig Academyコースには全4レッスンが含まれています。
ツールは応答を返す
入力を読み取るだけでは仕事の半分です。完成したCLIは出力を書き込み、実行した側に成功または失敗を伝える必要もあります。📤
2つの出力ストリーム
プログラムには2つのチャネルがあります。通常の結果にはstdout、メッセージやエラーにはstderrを使います。分けておくと、ユーザーは結果をきれいにパイプできます。
stdoutのWriterを取得する
std.io.getStdOutを使ってWriterを取得します。このWriterを通じて、通常の出力をターミナルに送ります。
const out = std.io.getStdOut().writer();printで表示する
Writerのprintメソッドは、使い慣れたフォーマット文字列と引数タプルを使い、1回の呼び出しで整形と書き込みを行います。
try out.print("Result: {d}\n", .{total});書き込みは失敗することがある
出力先は閉じられる可能性のある実際のストリームなので、書き込みはエラーを返します。そのため、すべてのprintの前にtryを置きます。
エラーはstderrに送る
警告や失敗はstd.io.getStdErrに送り、パイプで渡す結果に混ざらないようにします。データが流れている間も、ユーザーはエラーを確認できます。
const err = std.io.getStdErr().writer();手軽なデバッグ出力
簡単なログにはstd.debug.printを使います。tryなしでstderrに直接書き込めるため、開発中には便利ですが、実際の出力には適していません。
std.debug.print("loaded {d} items\n", .{count});終了コードの慣例
プログラムが終了すると、数値を返します。0は成功を意味し、0以外の値はシェルに問題が発生したことを伝えます。
mainはエラーを返せる
mainの戻り値の型を!voidにします。エラーが外へ伝播すると、Zigがトレースを表示し、0以外の終了コードで終了してくれます。
pub fn main() !void {}終了コードを自分で選ぶ
特定のステータスが必要なら、u8を渡してstd.process.exitを呼び出します。プログラムは直ちに終了し、指定した終了コードをそのまま返します。
std.process.exit(2);終了前にフラッシュする
buffered writerを使った場合は、終了前にflush()を呼び出します。そうしないと、バッファー内のテキストがターミナルに届かないことがあります。
try bw.flush();クイックチェック
終了コードが、そのツールを起動したシェルに何を伝えるか思い出しましょう。
まとめ
stdoutに結果を書き込み、stderrにエラーを書き込み、すべての書き込みでtryを使い、明確な終了コードで終了しました。これでツールはきれいに状況を報告できます。🎯
AI チューターと学ぶ Zig — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 30
- レッスン
- 120
よくある質問
「出力と終了コードの書き込み」レッスンは無料ですか?
はい。「出力と終了コードの書き込み」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Zig Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Zig Academyコースには全4レッスンが含まれています。
「出力と終了コードの書き込み」で何を学びますか?
結果を報告し、状態を通知します ブラウザで直接実行するハンズオンコードでZig Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Zig Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのZig Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「出力と終了コードの書き込み」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このZig Academyレッスンでコードを書いて実行できますか?
はい。すべてのZig Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- コマンドライン引数の読み取り
- ファイルとstdinの読み取り
- 出力と終了コードの書き込み
- バイナリのパッケージ化とリリース