Rumah >pembangunan bahagian belakang >Golang >Terokai perbezaan antara fungsi berbeza dalam pakej golang fmt

Terokai perbezaan antara fungsi berbeza dalam pakej golang fmt

PHPz
PHPzasal
2023-04-11 10:42:04616semak imbas

Pakej golang fmt ialah perpustakaan standard yang biasa digunakan dalam bahasa Go. Ia menyediakan pelbagai mekanisme untuk memformat input dan output. Dalam pakej fmt, terdapat banyak fungsi berbeza yang mencapai tugas yang berbeza. Artikel ini akan meneroka perbezaan antara fungsi berbeza dalam pakej fmt.

1. Perbezaan antara Println dan Printf
Println dan Printf adalah kedua-dua fungsi yang mengeluarkan kandungan, tetapi terdapat beberapa perbezaan asas di antara keduanya.

Println mengeluarkan satu siri nilai kepada output standard dalam format yang ditentukan. Tandatangan fungsi Println ialah:

func Println(a ...interface{}) (n int, err error)

di mana, a...antara muka{} mewakili sebarang bilangan data dari sebarang jenis. Tiada pemformatan tambahan apabila menggunakan Println ke output, seperti:

fmt.Println("Hello", "World!", 1, 2, 3)  //输出:Hello World! 1 2 3

Printf mengeluarkan rentetan yang diformatkan kepada output standard. Tandatangan fungsi Printf ialah:

func Printf(format string, a ...interface{}) (n int, err error)

di mana format ialah format output, dan...antara muka{} mewakili sebarang bilangan data dari sebarang jenis. Printf akan memformat dan menggabungkan rentetan terformat dan data yang akan dikeluarkan. Seperti yang ditunjukkan di bawah:

fmt.Printf("My name is %s, and I am %d years old\n", "Jack", 25)   //输出:My name is Jack, and I am 25 years old

2 Perbezaan antara Sprintf dan Fprintf
Sprintf dan Fprintf juga merupakan fungsi output yang diformatkan, tetapi terdapat beberapa perbezaan di antara mereka.

Sprintf memformat rentetan yang diformat menjadi pembolehubah rentetan. Tandatangan fungsi Sprintf ialah:

func Sprintf(format string, a ...interface{}) string

di mana format ialah format output, dan...antara muka{} mewakili sebarang bilangan data dari sebarang jenis. Sprintf akan memformat dan menggabungkan rentetan terformat dan data yang akan dikeluarkan, dan mengembalikan hasilnya kepada rentetan. Seperti yang ditunjukkan di bawah:

s := fmt.Sprintf("My name is %s, and I am %d years old\n", "Jack", 25)
fmt.Println(s) //输出:My name is Jack, and I am 25 years old

Fprintf memformat rentetan yang diformatkan ke dalam fail. Tandatangan fungsi Fprintf ialah:

func Fprintf(w io.Writer, format string, a ...interface{}) (n int, err error)

Antaranya, w io.Writer mewakili lokasi sasaran output, format ialah format output dan a...antara muka{} mewakili sebarang bilangan data daripada sebarang jenis. Fprintf akan memformat dan menggabungkan rentetan yang diformat dan data yang akan dikeluarkan, dan mengeluarkan hasilnya kepada fail yang ditentukan. Seperti yang ditunjukkan di bawah:

f, err := os.Create("output.txt")
if err != nil {
    return err
}
fmt.Fprintf(f, "My name is %s, and I am %d years old\n", "Jack", 25)

3. Ringkasan
Empat fungsi di atas adalah semua fungsi yang biasa digunakan dalam pakej golang fmt, tetapi terdapat perbezaan tertentu di antara mereka. Println dan Printf adalah kedua-dua fungsi yang mengeluarkan kandungan Println secara langsung, manakala Printf perlu memformat rentetan dan data sebelum mengeluarkannya. Sprintf dan Fprintf adalah kedua-dua fungsi output yang diformatkan Sprintf mengeluarkan rentetan yang diformat kepada pembolehubah rentetan, manakala Fprintf mengeluarkan rentetan yang diformatkan ke fail yang ditentukan. Menguasai kandungan di atas boleh membantu kami menggunakan fungsi ini dengan lebih baik untuk kerja pembangunan harian.

Atas ialah kandungan terperinci Terokai perbezaan antara fungsi berbeza dalam pakej golang fmt. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn