Saat Anda menulis kode Go, Anda akan menemukan pemformatan string sangat berguna dalam banyak situasi. Anda mungkin mem-parsing input atau membuat output yang lebih kompleks daripada penggabungan sederhana. Anda mungkin bekerja dengan tipe selain string biasa.
Pemformatan string di Go menggunakan proses dan sintaks yang sudah dikenal dari fungsi printf, yang juga digunakan bahasa dari Java hingga Haskell.
Go menyediakan berbagai metode untuk memformat string di fmt kemasan. Anda dapat menggunakan fungsi dan kata kerja untuk pemformatan string tergantung pada operasi atau input yang ingin Anda format.
Pemformatan String di Go
Fungsi-fungsi dalam paket fmt mirip dengan rekan-rekan, seperti fungsi printf di bash atau C Go mendapatkan verba pemformatannya dari C.
Kau gunakan kata kerja pemformatan string sebagai placeholder untuk nilai variabel Anda dalam string yang berisi. Anda kemudian dapat meneruskan string pemformatan itu ke fungsi seperti Cetak, bersama dengan nilai yang sesuai dengan placeholder tersebut.
Anda tidak dapat menggunakan verba pemformatan string dengan Mencetak dan Cetak metode. Anda dapat menggunakannya dengan metode seperti Cetak dan lari cepat.
fmt. Println("Ini adalah percobaan %v", 90)
fmt. Printf("Ini adalah ujian %v", 90)
Itu %v verb mencetak nilai apa pun dalam format defaultnya. Itu Cetak metode tidak mengenali kata kerja dan mencetak argumen apa pun yang diterimanya. Itu Cetak dan lari cepat fungsi keduanya memformat argumen string pertama yang Anda berikan kepada mereka.
Fungsi Pemformatan String dalam Paket fmt
Memformat string dalam bahasa pemrograman Go mengharuskan Anda untuk menggunakan fungsi pemformatan string dan kata kerja. Fungsi mengembalikan string yang diformat, dan kata kerja adalah pengganti untuk input ke string.
Itu Cetak metode memformat input sesuai dengan penentu format dan mengembalikan jumlah byte atau kesalahan tertulis.
fmt. Printf("Ini adalah ujian %v", 90)
Secara konvensional, Anda tidak perlu khawatir tentang kesalahan saat menggunakan Cetak metode.
Itu lari cepat format metode sesuai dengan format yang ditentukan dan mengembalikan hasilnya sebagai string.
var hasil = fmt. Sprintf("Ini adalah ujian %v", 90)
Itu Fprintf metode memformat string dan menulisnya ke penulis (metode yang mengimplementasikan saya Penulis antarmuka)
// tulis data ke output standar
hasil, err = fmt. Fprintf (penulis, "Ini adalah ujian %v", 90)
Itu Fscanf metode scan dari pembaca dan format sesuai dengan format yang ditentukan.
var mengambil rangkaian
// membaca data dari string yang diberikan
readString := string. NewReader("Ini adalah ujian")
baca, err := fmt. Fscanf (pembaca, "%v", &ambil)
Dalam hal ini, Fscanf menerjemahkan string dari pembaca ke dalam mengambil variabel, dan Baca variabel menyimpan hasil format.
Verba Pemformatan String
Go menyediakan banyak verba pemformatan yang dapat Anda gunakan bersama dengan fungsi pemformatan string.
Ada kata kerja pemformatan string umum seperti %v kata kerja dalam contoh fungsi pemformatan string. Anda dapat menggunakan verba pemformatan string umum untuk memformat tipe data apa pun.
Anda dapat menggunakan %#v kata kerja untuk menampilkan nilai apa pun, the %+v untuk struct, %T kata kerja untuk jenis nilai apa pun, dan %% kata kerja tanpa nilai.
Tipe setiap struktur {
nama rangkaian
usia ke dalam
Apakah sudah masuk bool
}var contoh = sembarang {
nama: "John Doe",
usia: 34,
Apakah sudah masuk: BENAR,
}
var hasil = fmt. Sprintf("Ini adalah struktur contoh pemformatan %+v", contoh)
fmt. Println (hasil)
Itu hasil variabel memegang string yang diformat dari struct yang dipakai. Jika Anda mencetaknya, itu akan terlihat seperti ini:
Ini adalah contoh pemformatan struct {nama: John Doe umur: 34 isLoggedIn:BENAR}
Ada kata kerja untuk memformat tipe data asli Go tertentu, termasuk saluran dan pointer.
Kata kerja | Kegunaan |
---|---|
%t | boolean. |
%d | int, int8, dll. |
%d, %#x jika dicetak dengan %#v | uint, uint8, dll. |
%g | float32, complex64, dll. |
%s | rangkaian. |
%p | chan. |
%P | penunjuk. |
Anda ingin memastikan bahwa Anda tidak membuat kesalahan dengan kata kerja karena peka huruf besar-kecil, seperti chan dan penunjuk kata kerja.
Memformat Integer dan Float
Ada kata kerja pemformatan string untuk memformat bilangan bulat di basis yang berbeda. Anda dapat menggunakan salah satu dari kata kerja ini untuk memformat bilangan bulat
Kata kerja | Kegunaan |
---|---|
%b | dasar 2 |
%c | karakter yang diwakili oleh titik kode Unicode yang sesuai. |
%d | dasar 10. |
%Hai | dasar 8. |
%HAI | basis 8 dengan awalan 0o. |
%q | literal karakter dengan tanda kutip tunggal lolos dengan aman dengan sintaks Go. |
%x | basis 16, dengan huruf kecil untuk a-f. |
%X | basis 16, dengan huruf besar untuk A-F. |
%U | Format Unicode: U+1234; sama dengan "U+%04X". |
Misalnya, Anda dapat memformat bilangan bulat menggunakan %d kata kerja:
var hasil = fmt. Sprintf("Ini adalah contoh format bilangan bulat %d", 90)
fmt. Println (hasil)
Ini adalah kata kerja untuk memformat angka floating point.
Kata kerja | Kegunaan |
---|---|
%b | notasi ilmiah tanpa desimal dengan eksponen pangkat dua, dengan cara strconv. FormatFloat dengan format 'b', mis. -123456p-78 |
%e | notasi ilmiah, mis. -1.234456e+78 |
%E | titik desimal tetapi tidak ada eksponen, mis., 123.456 |
%f | titik desimal tetapi tidak ada eksponen, mis., 123.456 |
%F | sinonim untuk %f. |
%g | %e untuk eksponen besar, %f sebaliknya. presisi di bawah. |
%G | %E untuk eksponen besar, %F sebaliknya |
%x | notasi heksadesimal (dengan pangkat desimal dua eksponen), mis., -0x1.23abcp+20. |
%X | notasi heksadesimal huruf besar, mis. -0X1.23ABCP+20. |
Berikut adalah contoh memformat titik desimal tanpa eksponen dengan %f kata kerja.
var hasil = fmt. Sprintf("Ini adalah contoh format floating point %f", 432.9503)
fmt. Println (hasil)
Anda selalu dapat menggunakan kata kerja umum jika Anda tidak yakin tentang jenisnya.
Memformat String dan Bytes
String dan irisan tipe byte sangat mirip di Go. Ini adalah flag untuk memformat string dan byte.
Kata kerja | Kegunaan |
---|---|
%s | byte string atau irisan yang tidak ditafsirkan |
%q | string yang dikutip ganda dengan aman lolos dengan sintaks Go |
%x | basis 16, huruf kecil, dua karakter per byte |
%X | basis 16, huruf besar, dua karakter per byte |
Berikut adalah contoh memformat string dengan %s kata kerja.
var skor = "contoh"
var hasil = fmt. Sprintf("Ini adalah rangkaian contoh format %s", skor)
fmt. Println (hasil)
Paket fmt Penting untuk Pemrograman Python
Itu fmt package berisi sebagian besar fungsionalitas yang Anda perlukan untuk pemformatan string. Go juga menyediakan senar paket untuk manipulasi string dan a catatan paket yang dapat memformat string untuk logging.
Itu fmt paket memiliki fungsi yang mengimplementasikan saya Penulis dan saya Pembaca antarmuka. Anda akan merasa berguna untuk banyak kasus penggunaan seperti membangun web dan aplikasi baris perintah.