Layout format string
Cetak nilai dengan verb format Printf.
Pahami konsepnya
fmt.Printf memakai verb — placeholder yang diawali % — untuk menyisipkan nilai ke dalam teks. Verb terpenting: %v (representasi umum apa pun), %+v (struct dengan nama field), %#v (sintaks Go), %s (string), %d (bilangan bulat), %f (desimal, mis. %.2f dua angka di belakang koma), %t (bool), %T (tipe nilai), dan %% untuk karakter persen itu sendiri.
Keluarga sejawat: Sprintf mengembalikan string alih-alih mencetak — sumber pesan error dan teks berformat; Fprintf menulis ke io.Writer seperti berkas; Errorf membangun error dengan format.
Verb %T dan %v adalah sahabat debugging: satu menunjukkan tipe dinamis, satu isinya. Untuk nilai any atau interface, keduanya sering menjadi cara tercebat memahami apa yang sebenarnya kamu pegang.
Coba contoh kode
package main
import "fmt"
type Titik struct{ X, Y int }
func main() {
t := Titik{X: 3, Y: 7}
nama := "Ari"
ipk := 3.8125
fmt.Printf("hai %s, IPK %.2f\n", nama, ipk)
fmt.Printf("struct: %v / %+v\n", t, t)
fmt.Printf("tipe ipk: %T, persen: 100%%\n", ipk)
}%.2f membulatkan tampilan ke dua desimal (3.81) tanpa mengubah nilainya. %v mencetak struct polos {3 7} sedangkan %+v menyertakan nama field — sangat membantu saat inspeksi data. %T melaporkan float64 dan %% menjadi tanda persen literal.
Sprintf: format tanpa mencetak
func label(nama string, skor int) string {
return fmt.Sprintf("%s — %d poin", nama, skor)
}
func main() {
fmt.Println(label("Ari", 95))
}Sprintf membangun string berformat untuk disimpan, dikirim, atau dijadikan pesan error — pola yang akan kamu pakai di mana-mana, dari log sampai template respons API.
Latihan singkat
Uji: satu Printf dengan verb yang tepat — harus mencetak persis `Ari berumur 17, tinggi 168.50 cm, aktif: true (100%)`.