← Kembali ke kursus
Pelajaran kursus · Go
Pelajaran 33

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%)`.