0Pricing
Go Academy · Pelajaran

Sprintf dan Fprintf

Format ke string dan writer

Sprintf dan Fprintf adalah pelajaran Go Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Go Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Go Academy mencakup 4 pelajaran total.

Keluarga Printf

Paket fmt memiliki tiga fungsi pemformatan yang serupa:

  • Printf menulis ke keluaran standar.
  • Sprintf mengembalikan teks yang telah diformat.
  • Fprintf menulis ke penulis mana pun.
package main

import "fmt"

func main() {
    fmt.Printf("hello %s\n", "world")
}

Sprintf Mengembalikan Teks

fmt.Sprintf memformat dengan cara yang sama seperti Printf, tetapi alih-alih mencetak, fungsi ini mengembalikan hasilnya sebagai teks yang dapat Anda simpan atau gunakan kembali.

package main

import "fmt"

func main() {
    msg := fmt.Sprintf("%s scored %d", "Bob", 95)
    fmt.Println(msg)
}

Membangun Pengenal

Sprintf berguna untuk menyusun kunci, nama berkas, atau label dari beberapa bagian.

package main

import "fmt"

func main() {
    id := fmt.Sprintf("user-%04d", 42)
    fmt.Println(id)
}

Memformat Bilangan Menjadi Teks

Gunakan Sprintf untuk mengubah bilangan menjadi teks yang diformat dengan baik, misalnya mata uang.

package main

import "fmt"

func main() {
    label := fmt.Sprintf("Price: $%.2f", 7.5)
    fmt.Println(label)
}

Fprintf Menulis ke Penulis

fmt.Fprintf menerima io.Writer sebagai argumen pertamanya dan memformat data ke dalamnya. os.Stdout adalah salah satu penulis tersebut.

package main

import (
    "fmt"
    "os"
)

func main() {
    fmt.Fprintf(os.Stdout, "to stdout: %d\n", 1)
}

Menulis ke Galat Standar

Kirim informasi diagnostik ke os.Stderr dengan Fprintf agar tetap terpisah dari keluaran biasa.

package main

import (
    "fmt"
    "os"
)

func main() {
    fmt.Fprintf(os.Stderr, "warning: %s\n", "low disk")
}

Fprintf ke Builder

Karena strings.Builder juga merupakan io.Writer, Anda dapat memformat langsung ke dalamnya lalu membaca teksnya di akhir.

package main

import (
    "fmt"
    "strings"
)

func main() {
    var b strings.Builder
    fmt.Fprintf(&b, "%s=%d;", "x", 10)
    fmt.Fprintf(&b, "%s=%d", "y", 20)
    fmt.Println(b.String())
}

Fprintf ke bytes.Buffer

bytes.Buffer adalah target penulis umum lainnya. Susun konten, lalu ubah menjadi teks.

package main

import (
    "bytes"
    "fmt"
)

func main() {
    var buf bytes.Buffer
    fmt.Fprintf(&buf, "row %d\n", 1)
    fmt.Fprintf(&buf, "row %d\n", 2)
    fmt.Print(buf.String())
}

Sprint dan Fprint Tanpa f

Versi dengan f menerima teks format. Hilangkan f untuk Sprint/Fprint, yang hanya menggabungkan argumen dengan pemformatan bawaan.

package main

import "fmt"

func main() {
    s := fmt.Sprint("a", 1, true)
    fmt.Println(s)
}

Sprintln Menambahkan Spasi

fmt.Sprintln menggabungkan argumen dengan spasi dan menambahkan baris baru, lalu mengembalikan teksnya.

package main

import "fmt"

func main() {
    s := fmt.Sprintln("x", 1, "y", 2)
    fmt.Print(s)
}

Memilih Alat yang Tepat

Pilih berdasarkan tujuannya:

  • Memerlukan teks? Gunakan Sprintf.
  • Menulis ke keluaran standar? Gunakan Printf.
  • Menulis ke berkas, penyangga, atau aliran galat? Gunakan Fprintf.
package main

import (
    "fmt"
    "os"
)

func main() {
    s := fmt.Sprintf("count=%d", 3)
    fmt.Fprintf(os.Stdout, "%s\n", s)
}

Pemeriksaan Singkat

Fungsi mana yang mengembalikan teks yang telah diformat, bukan mencetaknya?

Ringkasan: Sprintf dan Fprintf

Anda telah mempelajari keluarga pemformatan:

  • Sprintf mengembalikan teks.
  • Fprintf menulis ke io.Writer mana pun (keluaran standar, galat standar, penyangga, atau pembangun).
  • Varian tanpa f menggunakan pemformatan bawaan.
package main

import (
    "fmt"
    "strings"
)

func main() {
    var b strings.Builder
    fmt.Fprintf(&b, "result=%s", fmt.Sprintf("%d%%", 80))
    fmt.Println(b.String())
}

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Sprintf dan Fprintf” gratis?

Ya — teks lengkap “Sprintf dan Fprintf” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Go Academy, upgrade ke CoddyKit PRO. Kursus Go Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Sprintf dan Fprintf”?

Format ke string dan writer Kamu berlatih Go Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Go Academy?

Tidak diperlukan pengalaman sebelumnya. Go Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.

Berapa lama pelajaran “Sprintf dan Fprintf” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Go Academy ini?

Ya. Setiap pelajaran Go Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Kata Kerja Printf
  2. Sprintf dan Fprintf
  3. Interface Stringer
  4. Memindai Input
← Kembali ke Go Academy