Go Academy · Pelajaran

Sprintf dan Fprintf

Format kepada rentetan dan penulis

Pelajaran 2 daripada 413 langkah

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:

  • Printf menulis ke keluaran standard.
  • Sprintf mengembalikan rentetan yang telah diformatkan.
  • Fprintf menulis 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:

  • Sprintf mengembalikan rentetan.
  • Fprintf menulis kepada mana-mana io.Writer (keluaran standard, ralat standard, penimbal dan pembina).
  • Varian tanpa f menggunakan 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())
}
Percuma untuk bermula

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

  1. Kata Kerja Printf
  2. Sprintf dan Fprintf
  3. Antara Muka Stringer
  4. Mengimbas Input
← Kembali ke Go Academy