فرمتبندی رشته
خانواده 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)
این مبحث بخشی از دوره آموزش کامل گو است.