Zig Academy · บทเรียน

การเขียนเอาต์พุตและรหัสจบการทำงาน

รายงานผลลัพธ์และส่งสัญญาณสถานะ

บทเรียน 3 จาก 413 ขั้นตอน

การเขียนเอาต์พุตและรหัสจบการทำงาน เป็นบทเรียน Zig Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Zig Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Zig Academy มีบทเรียนทั้งหมด 4 บทเรียน

เครื่องมือตอบกลับ

การอ่านข้อมูลป้อนเข้าเป็นเพียงครึ่งหนึ่งของงาน CLI ที่เสร็จสมบูรณ์ยังต้องเขียนข้อมูลส่งออกและส่งสัญญาณความสำเร็จหรือความล้มเหลวให้สิ่งที่เรียกใช้งานมันด้วย 📤

สตรีมข้อมูลส่งออกสองช่องทาง

โปรแกรมมีช่องทางสองช่องทาง: stdout สำหรับผลลัพธ์ปกติ และ stderr สำหรับข้อความกับข้อผิดพลาด การแยกทั้งสองช่องทางทำให้ผู้ใช้ส่งผลลัพธ์ผ่านไพป์ได้อย่างสะอาด

รับ Writer ของ stdout

เรียกใช้ std.io.getStdOut และขอ writer จากมัน writer นี้คือช่องทางสำหรับส่งข้อมูลส่งออกปกติไปยังเทอร์มินัล

const out = std.io.getStdOut().writer();

พิมพ์ด้วย print

เมธอด print ของ writer จะจัดรูปแบบและเขียนข้อมูลในการเรียกครั้งเดียว โดยใช้สตริงรูปแบบและทูเพิลอาร์กิวเมนต์เดียวกับที่คุณคุ้นเคย

try out.print("Result: {d}\n", .{total});

การเขียนอาจล้มเหลว

ข้อมูลส่งออกจะไปยังสตรีมจริงที่อาจถูกปิดอยู่ ดังนั้นการเขียนจึงคืนข้อผิดพลาด นั่นเป็นเหตุผลที่ต้องวาง try ไว้หน้าการเรียก print ทุกครั้ง

ข้อผิดพลาดไปที่ stderr

ส่งคำเตือนและความล้มเหลวไปที่ std.io.getStdErr เพื่อไม่ให้ปนเปื้อนผลลัพธ์ที่ส่งผ่านไพป์ ผู้ใช้จะอ่านข้อผิดพลาดได้ขณะที่ข้อมูลยังไหลต่อไป

const err = std.io.getStdErr().writer();

ข้อมูลส่งออกเพื่อแก้ไขข้อผิดพลาดอย่างรวดเร็ว

สำหรับการบันทึกข้อมูลแบบคร่าว ๆ std.debug.print จะเขียนตรงไปยัง stderr โดยไม่ต้องใช้ try เหมาะสำหรับระหว่างการพัฒนา ไม่ใช่สำหรับข้อมูลส่งออกจริง

std.debug.print("loaded {d} items\n", .{count});

ธรรมเนียมของรหัสจบการทำงาน

เมื่อโปรแกรมจบการทำงาน โปรแกรมจะคืนตัวเลขหนึ่งค่า ศูนย์หมายถึงสำเร็จ ส่วนค่าที่ไม่ใช่ศูนย์จะบอกเชลล์ว่ามีบางอย่างผิดพลาด

main สามารถคืนข้อผิดพลาดได้

กำหนดชนิดค่าที่คืนของ main เป็น !void หากข้อผิดพลาดถูกส่งออกมา Zig จะแสดงเส้นทางการเกิดข้อผิดพลาดและจบการทำงานด้วยรหัสที่ไม่ใช่ศูนย์ให้คุณ

pub fn main() !void {}

เลือกรหัสของคุณเอง

ต้องการสถานะเฉพาะใช่ไหม เรียก std.process.exit พร้อมค่า u8 โปรแกรมจะจบการทำงานทันทีด้วยรหัสจบการทำงานนั้นโดยตรง

std.process.exit(2);

ล้างบัฟเฟอร์ก่อนจบการทำงาน

หากคุณใช้ buffered writer ให้เรียก flush() ก่อนจบการทำงาน มิฉะนั้นข้อความในบัฟเฟอร์อาจไม่ไปถึงเทอร์มินัล

try bw.flush();

ตรวจสอบอย่างรวดเร็ว

ลองนึกย้อนดูว่ารหัสจบการทำงานบอกอะไรแก่เชลล์ที่เปิดใช้งานเครื่องมือของคุณ

สรุป

คุณเขียนผลลัพธ์ไปยัง stdout เขียนข้อผิดพลาดไปยัง stderr ใช้ try กับการเขียนทุกครั้ง และจบการทำงานด้วยรหัสที่ชัดเจน เครื่องมือของคุณรายงานผลได้อย่างเรียบร้อย 🎯

เริ่มต้นได้ฟรี

เรียนรู้ Zig ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
30
บทเรียน
120

คำถามที่พบบ่อย

บทเรียน “การเขียนเอาต์พุตและรหัสจบการทำงาน” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การเขียนเอาต์พุตและรหัสจบการทำงาน” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Zig Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Zig Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การเขียนเอาต์พุตและรหัสจบการทำงาน”

รายงานผลลัพธ์และส่งสัญญาณสถานะ คุณปฏิบัติ Zig Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Zig Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Zig Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “การเขียนเอาต์พุตและรหัสจบการทำงาน” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Zig Academy นี้ได้ไหม

ได้ บทเรียน Zig Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การอ่านอาร์กิวเมนต์จากบรรทัดคำสั่ง
  2. การอ่านไฟล์และ stdin
  3. การเขียนเอาต์พุตและรหัสจบการทำงาน
  4. จัดแพ็กเกจและเผยแพร่ไบนารี
← กลับไปที่ Zig Academy