Cara Memformat Rentetan dalam Go

Cara Memformat Rentetan dalam Go

Semasa anda menulis kod Go, anda akan mendapati pemformatan rentetan sangat berguna dalam banyak situasi. Anda mungkin menghuraikan input atau mencipta output yang lebih kompleks daripada penggabungan mudah. Anda mungkin menggunakan jenis selain daripada rentetan biasa.





Pemformatan rentetan dalam Go menggunakan proses biasa dan sintaks fungsi printf, yang juga digunakan oleh bahasa dari Java ke Haskell.





Go menyediakan pelbagai kaedah untuk memformat rentetan dalam fmt pakej. Anda boleh menggunakan fungsi dan kata kerja untuk pemformatan rentetan bergantung pada operasi atau input yang ingin anda formatkan.





Pemformatan Rentetan dalam Go

Fungsi dalam pakej fmt adalah serupa dengan rakan sejawat, seperti fungsi printf dalam bash atau C. Go memperoleh kata kerja pemformatannya daripada C.

awak guna kata kerja pemformatan rentetan sebagai ruang letak untuk nilai pembolehubah anda dalam rentetan yang mengandungi. Anda kemudiannya boleh menghantar rentetan pemformatan itu kepada fungsi seperti Cetakanf , bersama-sama dengan nilai yang sepadan dengan ruang letak tersebut.



Anda tidak boleh menggunakan kata kerja pemformatan rentetan dengan Cetak dan Println kaedah. Anda boleh menggunakannya dengan kaedah seperti Cetakanf dan Sprintf .

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

The %dalam kata kerja mencetak sebarang nilai dalam format lalainya. The Println kaedah tidak mengenali kata kerja dan mencetak apa sahaja hujah yang diterimanya. The Cetakanf dan Sprintf berfungsi kedua-duanya memformat hujah rentetan pertama yang anda berikan kepada mereka.





tetapan tidur windows 10 tidak berfungsi
  hasil pemformatan integer

Fungsi Pemformatan Rentetan dalam Pakej fmt

Memformat rentetan dalam bahasa pengaturcaraan Go memerlukan anda menggunakan fungsi pemformatan rentetan dan kata kerja. Fungsi mengembalikan rentetan yang diformatkan, dan kata kerja adalah ruang letak untuk input kepada rentetan.

The Cetakanf kaedah memformat input mengikut penentu format dan mengembalikan bilangan bait atau ralat bertulis.





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

Secara konvensional, anda tidak perlu risau tentang ralat apabila anda menggunakan Cetakanf kaedah.

The Sprintf format kaedah mengikut format yang ditentukan dan mengembalikan hasilnya sebagai rentetan.

var result = fmt.Sprintf("This is a test %v", 90) 

The Fprintf kaedah memformat rentetan dan menulisnya kepada penulis (kaedah yang melaksanakan io.Penulis antara muka)

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

The Fscanf kaedah mengimbas daripada pembaca dan memformat mengikut 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 kes ini, Fscanf menyahkod rentetan daripada pembaca ke dalam ambil pembolehubah, dan membaca pembolehubah memegang hasil format.

Kata Kerja Pemformatan Rentetan

Go menyediakan banyak kata kerja pemformatan yang boleh anda gunakan bersama-sama dengan fungsi pemformatan rentetan.

Terdapat kata kerja pemformatan rentetan umum seperti %dalam kata kerja dalam contoh fungsi pemformatan rentetan. Anda boleh menggunakan kata kerja pemformatan rentetan umum untuk memformat sebarang jenis data.

Anda boleh menggunakan %#dalam kata kerja untuk mengeluarkan sebarang nilai, the %+v untuk struct, the %T kata kerja untuk jenis sebarang nilai, dan %% kata kerja untuk tiada 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)

The hasil pembolehubah memegang rentetan terformat bagi struct instantiated. Jika anda mencetaknya, ia sepatutnya kelihatan seperti ini:

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

Terdapat kata kerja untuk memformat jenis data asli Go tertentu, termasuk saluran dan penunjuk.

%t boolean.
%d int, int8, dsb.
%d, %#x jika dicetak dengan %#v uint, uint8, dll.
%g float32, complex64, dsb.
%s tali.
%p chan.
%P penunjuk.

Anda perlu memastikan bahawa anda tidak membuat kesilapan dengan kata kerja kerana ia adalah sensitif huruf besar-besaran, seperti chan dan penunjuk kata kerja.

Memformat Integer dan Terapung

Terdapat kata kerja pemformatan rentetan untuk memformat integer asas yang berbeza . Anda boleh menggunakan mana-mana kata kerja ini untuk memformat integer

%b asas 2
%c aksara yang diwakili oleh titik kod Unicode yang sepadan.
%d asas 10.
%O asas 8.
%O asas 8 dengan awalan 0o.
%q aksara petikan tunggal secara literal selamat melarikan diri dengan sintaks Go.
%x asas 16, dengan huruf kecil untuk a-f.
%X asas 16, dengan huruf besar untuk A-F.
%DALAM Format Unicode: U+1234; sama seperti 'U+%04X'.

Sebagai contoh, anda boleh memformatkan integer menggunakan %d kata kerja:

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

Ini ialah kata kerja untuk memformat nombor titik terapung.

%b tatatanda saintifik tanpa perpuluhan dengan eksponen kuasa dua, dengan cara strconv. FormatFloat dengan format 'b', mis. -123456p-78
%dan tatatanda saintifik, cth. -1.234456e+78
%DAN titik perpuluhan tetapi tiada eksponen, cth., 123.456
%f titik perpuluhan tetapi tiada eksponen, cth., 123.456
%F sinonim untuk %f.
%g %e untuk eksponen besar, %f sebaliknya. Ketepatan di bawah.
%G %E untuk eksponen besar, %F sebaliknya
%x tatatanda perenambelasan (dengan kuasa perpuluhan dua eksponen), cth., -0x1.23abcp+20.
%X tatatanda heksadesimal huruf besar, cth. -0X1.23 ABCP+20.

Berikut ialah contoh memformat titik perpuluhan tanpa eksponen dengan %f kata kerja.

var result = fmt.Sprintf("This is a floating point formatting example %f", 432.9503) 
fmt.Println(result)

Anda sentiasa boleh menggunakan kata kerja am jika anda tidak pasti tentang jenisnya.

Memformat Rentetan dan Bait

Rentetan dan kepingan jenis bait agak serupa dalam Go. Ini adalah bendera untuk memformat rentetan dan bait.

%s bait rentetan atau hirisan yang tidak ditafsirkan
%q rentetan petikan dua selamat terlepas dengan sintaks Go
%x asas 16, huruf kecil, dua aksara setiap bait
%X asas 16, huruf besar, dua aksara setiap bait

Berikut ialah contoh memformat rentetan dengan %s kata kerja.

var score = "example" 
var result = fmt.Sprintf("This is a string formatting example %s", score)
fmt.Println(result)

Pakej fmt Penting untuk Pengaturcaraan Python

The fmt pakej mengandungi kebanyakan fungsi yang anda perlukan untuk pemformatan rentetan. Go juga menyediakan a rentetan pakej untuk manipulasi rentetan dan a log pakej yang boleh memformat rentetan untuk pengelogan.

The fmt pakej mempunyai fungsi yang melaksanakan io.Penulis dan io.Pembaca antara muka. Anda akan mendapati ia berguna untuk banyak kes penggunaan seperti membina web dan aplikasi baris arahan.