จัดรูปแบบข้อความด้วย std.fmt
สร้างสตริงด้วยตัวระบุรูปแบบ
จัดรูปแบบข้อความด้วย std.fmt เป็นบทเรียน Zig Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Zig Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Zig Academy มีบทเรียนทั้งหมด 4 บทเรียน
เหตุผลที่ต้องจัดรูปแบบ
โปรแกรมจริงมักนำค่าต่าง ๆ มาประกอบเป็นข้อความ เช่น ชื่อ จำนวน และราคา Zig จัดการเรื่องนี้ผ่าน std.fmt และภาษาย่อยสำหรับสตริงรูปแบบ
ตัวยึดตำแหน่งในวงเล็บปีกกา
สตริงรูปแบบใช้ {} เป็นตัวยึดตำแหน่ง วงเล็บปีกกาแต่ละคู่จะดึงอาร์กิวเมนต์ถัดไปจากทูเพิลที่คุณส่งมาพร้อมกัน
std.debug.print("x = {}\n", .{42});อาร์กิวเมนต์อยู่ในทูเพิล
คุณส่งอาร์กิวเมนต์เป็นทูเพิลนิรนาม ซึ่งเขียนเป็น .{ a, b } แม้มีอาร์กิวเมนต์เพียงตัวเดียว ก็ยังต้องอยู่ภายในทูเพิลนี้
std.debug.print("{} {}\n", .{1, 2});ตัวระบุสำหรับ String
พิมพ์ค่า []const u8 เป็นข้อความด้วย {s} หากใช้ {} เปล่า ๆ ระบบจะพยายามจัดรูปแบบ slice เป็นโครงสร้างที่มีพอยน์เตอร์และความยาวแทน
std.debug.print("{s}\n", .{"hi"});ฐานของตัวเลข
ควบคุมฐานของจำนวนเต็มด้วยตัวระบุ เช่น {x} สำหรับเลขฐานสิบหก {b} สำหรับเลขฐานสอง และ {o} สำหรับเลขฐานแปด เหมาะอย่างยิ่งสำหรับการแก้ไขข้อผิดพลาดระดับล่าง
std.debug.print("{x}\n", .{255}); // ffความกว้างและการเติมช่องว่าง
เติมค่าให้มีความกว้างคงที่ด้วยเครื่องหมายโคลอน เช่น {d:5} วิธีนี้จัดตัวเลขให้อยู่ตรงกันเป็นคอลัมน์ที่อ่านง่าย
std.debug.print("{d:5}\n", .{7});ความละเอียดของจำนวนทศนิยม
จำกัดจำนวนตำแหน่งทศนิยมด้วยช่องความละเอียด เช่น {d:.2} รูปแบบนี้จะแสดงตัวเลขหลังจุดสองหลักพอดี ทำให้ผลลัพธ์ดูเรียบร้อย
std.debug.print("{d:.2}\n", .{3.14159});ใช้ Escape กับวงเล็บปีกกา
ต้องการวงเล็บปีกกาตามตัวอักษรในผลลัพธ์ใช่ไหมครับ ให้ใส่ซ้ำสองครั้ง: {{ จะแสดงผลเป็น { หนึ่งตัว และ }} จะแสดงผลเป็น } หนึ่งตัว วิธีนี้ช่วยป้องกันความสับสนกับตัวแทนค่า
std.debug.print("{{x}}\n", .{});สร้าง String
หากต้องการจัดรูปแบบลงในหน่วยความจำแทน stdout ให้เรียกใช้ std.fmt.allocPrint ฟังก์ชันนี้จะจัดสรรหน่วยความจำและคืนค่า []u8 ใหม่ที่เก็บข้อความของคุณ
const s = try std.fmt.allocPrint(
alloc, "id={}", .{id});คืนหน่วยความจำที่จัดสรร
เนื่องจาก allocPrint ใช้ตัวจัดสรรหน่วยความจำ คุณจึงเป็นเจ้าของผลลัพธ์และต้อง free ผลลัพธ์นั้น การใช้ defer ทันทีหลังการเรียกใช้จะช่วยให้การล้างหน่วยความจำเป็นระเบียบ
defer alloc.free(s);บัฟเฟอร์ขนาดคงที่ด้วย bufPrint
หากไม่ต้องการใช้ heap เลย ให้เขียนลงในอาร์เรย์ของคุณเองด้วย std.fmt.bufPrint ฟังก์ชันนี้จะคืนค่า slice ที่มีข้อมูลและระบุเฉพาะส่วนที่ใช้งานจริง
var buf: [16]u8 = undefined;
const out = try std.fmt.bufPrint(&buf, "{}", .{9});ตรวจสอบอย่างรวดเร็ว
คุณกำลังพิมพ์ค่า []const u8 และต้องการให้แสดงเป็นข้อความที่อ่านได้
สรุป
คุณได้จัดรูปแบบข้อความด้วย std.fmt: ตัวแทนค่า {} และ {s}, ฐาน ความกว้าง และความละเอียด รวมถึง allocPrint และ bufPrint สำหรับสร้างสตริง 🎨
เรียนรู้ Zig ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 30
- บทเรียน
- 120
คำถามที่พบบ่อย
บทเรียน “จัดรูปแบบข้อความด้วย std.fmt” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “จัดรูปแบบข้อความด้วย std.fmt” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Zig Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Zig Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “จัดรูปแบบข้อความด้วย std.fmt”
สร้างสตริงด้วยตัวระบุรูปแบบ คุณปฏิบัติ Zig Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Zig Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Zig Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “จัดรูปแบบข้อความด้วย std.fmt” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Zig Academy นี้ได้ไหม
ได้ บทเรียน Zig Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- สตริงคือ []const u8
- ค่าตัวอักษรสตริงและอักขระหลีก
- การเปรียบเทียบและค้นหาไบต์
- จัดรูปแบบข้อความด้วย std.fmt