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:
Printfmenulis ke keluaran standar.Sprintfmengembalikan teks yang telah diformat.Fprintfmenulis 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:
Sprintfmengembalikan teks.Fprintfmenulis keio.Writermana pun (keluaran standar, galat standar, penyangga, atau pembangun).- Varian tanpa
fmenggunakan 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
- Kata Kerja Printf
- Sprintf dan Fprintf
- Interface Stringer
- Memindai Input