การเขียนเอาต์พุตและรหัสจบการทำงาน
รายงานผลลัพธ์และส่งสัญญาณสถานะ
การเขียนเอาต์พุตและรหัสจบการทำงาน เป็นบทเรียน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การอ่านอาร์กิวเมนต์จากบรรทัดคำสั่ง
- การอ่านไฟล์และ stdin
- การเขียนเอาต์พุตและรหัสจบการทำงาน
- จัดแพ็กเกจและเผยแพร่ไบนารี