Cara Memformat String di Go

Cara Memformat String di Go

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.





cara mencari di tiktok pc

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 memperoleh 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 kata kerja pemformatan string dengan Mencetak dan Cetak metode. Anda dapat menggunakannya dengan metode seperti Cetak dan lari cepat .

fmt.Println("This is a test %v", 90) 
fmt.Printf("This is a test %v", 90)

Itu %di 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.





  hasil pemformatan bilangan bulat

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("This is a test %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 result = fmt.Sprintf("This is a test %v", 90) 

Itu Fprintf metode memformat string dan menulisnya ke penulis (metode yang mengimplementasikan io.Penulis antarmuka)

// write data to standard output 
result, err = fmt.Fprintf(writer, "This is a test %v", 90)

Itu Fscanf metode scan dari pembaca dan format sesuai dengan format yang ditentukan.

var take string 

// read data from the given string
readString := strings.NewReader("This is a test")

read, err := fmt.Fscanf(reader, "%v", &take)

Dalam hal ini, Fscanf menerjemahkan string dari pembaca ke dalam mengambil variabel, dan Baca variabel memegang 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 %di kata kerja dalam contoh fungsi pemformatan string. Anda dapat menggunakan verba pemformatan string umum untuk memformat tipe data apa pun.

Anda dapat menggunakan %#di kata kerja untuk menampilkan nilai apa pun, the %+v untuk struct, %T kata kerja untuk jenis nilai apa pun, dan %% kata kerja tanpa nilai.

type any struct {  
name string
age int
isLoggedIn bool
}

var instance = any {
name: "John Doe",
age: 34,
isLoggedIn: true,
}

var result = fmt.Sprintf("This is a struct formatting example %+v", instance)
fmt.Println(result)

Itu hasil variabel memegang string yang diformat dari struct yang dipakai. Jika Anda mencetaknya, itu akan terlihat seperti ini:

This is a struct formatting example {name:John Doe age:34 isLoggedIn:true}

Ada kata kerja untuk memformat tipe data asli Go tertentu, termasuk saluran dan pointer.

%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 verba pemformatan string untuk memformat bilangan bulat di basis yang berbeda . Anda dapat menggunakan salah satu dari kata kerja ini untuk memformat bilangan bulat

%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.
%DI Format Unicode: U+1234; sama dengan 'U+%04X'.

Misalnya, Anda dapat memformat bilangan bulat menggunakan %d kata kerja:

var result = fmt.Sprintf("This is an integer formatting example %d", 90) 
fmt.Println(result)

Ini adalah kata kerja untuk memformat angka floating point.

%b notasi ilmiah tanpa desimal dengan eksponen pangkat dua, dengan cara strconv. FormatFloat dengan format 'b', mis. -123456p-78
%dan notasi ilmiah, mis. -1.234456e+78
%DAN 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 result = fmt.Sprintf("This is a floating point formatting example %f", 432.9503) 
fmt.Println(result)

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.

%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 score = "example" 
var result = fmt.Sprintf("This is a string formatting example %s", score)
fmt.Println(result)

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 io.Penulis dan io.Pembaca antarmuka. Anda akan merasa berguna untuk banyak kasus penggunaan seperti membangun web dan aplikasi baris perintah.