فرمت‌بندی رشته

خانواده Printf: فعل‌های قالب (%v، %d، %s)، Sprintf، Sprintln و قالب‌بندی خروجی.

خانواده توابع چاپ

تابعکاربردخروجی
fmt.Printچاپ بدون خط جدیدروی صفحه
fmt.Printlnچاپ + خط جدیدروی صفحه
fmt.Printfچاپ قالب‌بندی‌شدهروی صفحه
fmt.Sprintfقالب‌بندیرشته (برمی‌گرداند)
fmt.Sprintlnچاپ + خط جدیدرشته

فعل‌های قالب (Format Verbs)

فعلکاربردمثالنتیجه
%vمقدار (پیش‌فرض همه‌کاره)Printf("%v", 42)42
%dعدد صحیح ده‌دهیPrintf("%d", 42)42
%fعدد اعشاریPrintf("%f", 3.14)3.140000
%.2fاعشاری با ۲ رقمPrintf("%.2f", 3.14159)3.14
%sرشتهPrintf("%s", "سلام")سلام
%qرشته با گیومهPrintf("%q", "سلام")"سلام"
%tبولیPrintf("%t", true)true
%Tنوع مقدارPrintf("%T", 42)int
%cکاراکتر (rune)Printf("%c", 65)A
%xمبنای ۱۶Printf("%x", 255)ff
%bمبنای ۲Printf("%b", 5)101
%eنمایش علمیPrintf("%e", 1234.5)1.234500e+03
%pاشاره‌گر (آدرس)—0x...

پهنای فیلد و ترازبندی

fmt.Printf("|%10s|", "go")   ← |        go|  (راست‌چین در ۱۰ فاصله)
fmt.Printf("|%-10s|", "go")   ← |go        |  (چپ‌چین)
fmt.Printf("|%10d|", 42)      ← |        42|
fmt.Printf("|%010.2f|", 3.14) ← |000003.14|  (پر کردن با صفر)

Sprintf — ساخت رشته

وقتی می‌خواهید نتیجه را برگردانید نه چاپ کنید:

name := "علی"
age := 25

msg := fmt.Sprintf("نام: %s، سن: %d", name, age)
fmt.Println(msg)  ← نام: علی، سن: ۲۵
برای دیباگ سریع، %+v برای struct ها فوق‌العاده است — نام فیلدها را هم نشان می‌دهد!

چند مثال کاربردی

// قیمت با دو رقم اعشار
price := 19.5
fmt.Printf("قیمت: %.2f دلار\n", price)  ← قیمت: 19.50 دلار

// درصد پیشرفت
progress := 73.5
fmt.Printf("پیشرفت: %.1f%%\n", progress)  ← پیشرفت: 73.5%

// جدول تراز شده
fmt.Printf("%-10s %5d\n", "علی", 25)
fmt.Printf("%-10s %5d\n", "سارا", 30)

این مبحث بخشی از دوره آموزش کامل گو است.

ابزارهای مرتبط