Terokai perbezaan antara fungsi berbeza dalam pakej golang fmt

PHPz
Lepaskan: 2023-04-11 11:39:56
asal
598 orang telah melayarinya

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)
Salin selepas log masuk

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
Salin selepas log masuk

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

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

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
Salin selepas log masuk

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
Salin selepas log masuk

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
Salin selepas log masuk

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)
Salin selepas log masuk

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)
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!