Sprintf dan Fprintf
Format kepada rentetan dan penulis
Sprintf dan Fprintf ialah pelajaran Go Academy percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Go Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Go Academy merangkumi sejumlah 4 pelajaran.
Keluarga Printf
Pakej fmt mempunyai tiga fungsi pemformatan yang berkaitan:
Printfmenulis ke keluaran standard.Sprintfmengembalikan rentetan yang telah diformatkan.Fprintfmenulis kepada mana-mana penulis.
package main
import "fmt"
func main() {
fmt.Printf("hello %s\n", "world")
}Sprintf Mengembalikan Rentetan
fmt.Sprintf memformatkan sama seperti Printf tetapi, bukannya mencetak, ia mengembalikan hasilnya sebagai rentetan yang boleh Anda simpan atau gunakan semula.
package main
import "fmt"
func main() {
msg := fmt.Sprintf("%s scored %d", "Bob", 95)
fmt.Println(msg)
}Membina Pengecam
Sprintf berguna untuk membina kunci, nama fail atau label daripada beberapa bahagian.
package main
import "fmt"
func main() {
id := fmt.Sprintf("user-%04d", 42)
fmt.Println(id)
}Memformatkan Nombor Menjadi Teks
Gunakan Sprintf untuk menukar nombor menjadi rentetan yang diformatkan dengan kemas, seperti mata wang.
package main
import "fmt"
func main() {
label := fmt.Sprintf("Price: $%.2f", 7.5)
fmt.Println(label)
}Fprintf Menulis kepada Penulis
fmt.Fprintf menerima io.Writer sebagai argumen pertama dan memformatkan kandungan ke dalamnya. os.Stdout ialah salah satu penulis sedemikian.
package main
import (
"fmt"
"os"
)
func main() {
fmt.Fprintf(os.Stdout, "to stdout: %d\n", 1)
}Menulis kepada Ralat Standard
Hantar maklumat diagnostik ke os.Stderr dengan Fprintf supaya ia kekal berasingan daripada keluaran biasa.
package main
import (
"fmt"
"os"
)
func main() {
fmt.Fprintf(os.Stderr, "warning: %s\n", "low disk")
}Fprintf ke dalam Builder
Oleh sebab strings.Builder juga merupakan io.Writer, Anda boleh memformatkan kandungan terus ke dalamnya dan membaca rentetan itu pada akhirnya.
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 dalam bytes.Buffer
bytes.Buffer ialah satu lagi sasaran penulis yang biasa. Bina kandungan sedikit demi sedikit, kemudian tukarkannya menjadi rentetan.
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 f menerima rentetan format. Gugurkan f untuk Sprint/Fprint, yang hanya menggabungkan argumen menggunakan pemformatan lalai.
package main
import "fmt"
func main() {
s := fmt.Sprint("a", 1, true)
fmt.Println(s)
}Sprintln Menambah Ruang
fmt.Sprintln menggabungkan argumen dengan ruang dan menambah baris baharu, lalu mengembalikan rentetan tersebut.
package main
import "fmt"
func main() {
s := fmt.Sprintln("x", 1, "y", 2)
fmt.Print(s)
}Memilih Alat yang Tepat
Pilih berdasarkan destinasi:
- Perlukan rentetan? Gunakan
Sprintf. - Menulis ke keluaran standard? Gunakan
Printf. - Menulis ke fail, penimbal atau aliran ralat? Gunakan
Fprintf.
package main
import (
"fmt"
"os"
)
func main() {
s := fmt.Sprintf("count=%d", 3)
fmt.Fprintf(os.Stdout, "%s\n", s)
}Semakan Pantas
Fungsi manakah yang mengembalikan teks yang telah diformatkan dan bukannya mencetaknya?
Ulang Kaji: Sprintf dan Fprintf
Anda telah mempelajari keluarga pemformatan:
Sprintfmengembalikan rentetan.Fprintfmenulis kepada mana-manaio.Writer(keluaran standard, ralat standard, penimbal dan pembina).- Varian tanpa
fmenggunakan pemformatan lalai.
package main
import (
"fmt"
"strings"
)
func main() {
var b strings.Builder
fmt.Fprintf(&b, "result=%s", fmt.Sprintf("%d%%", 80))
fmt.Println(b.String())
}Pelajari Go dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 51
- Pelajaran
- 203
Soalan Lazim
Adakah pelajaran “Sprintf dan Fprintf” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Go Academy, termasuk “Sprintf dan Fprintf”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Go Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Sprintf dan Fprintf”?
Format kepada rentetan dan penulis Anda berlatih Go Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Go Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Go Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.
Berapa lamakah pelajaran “Sprintf dan Fprintf” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Go Academy ini?
Ya. Setiap pelajaran Go Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Kata Kerja Printf
- Sprintf dan Fprintf
- Antara Muka Stringer
- Mengimbas Input