Go'da Dizeler Nasıl Formatlanır

Go'da Dizeler Nasıl Formatlanır

Go kodunu yazarken, birçok durumda dize biçimlendirmesini çok yararlı bulacaksınız. Girdileri ayrıştırıyor veya basit birleştirmeden daha karmaşık çıktılar oluşturuyor olabilirsiniz. Düz dizeler dışındaki türlerle çalışıyor olabilirsiniz.





Go'da dize biçimlendirme, Java'dan Haskell'e kadar olan dillerin de kullandığı printf işlevinin tanıdık sürecini ve sözdizimini kullanır.





Go, dizindeki dizeleri biçimlendirmek için çeşitli yöntemler sağlar. fmt paket. Biçimlendirmek istediğiniz işleme veya girişlere bağlı olarak dize biçimlendirme için işlevleri ve fiilleri kullanabilirsiniz.





Go'da Dize Biçimlendirme

fmt paketindeki işlevler, benzerlerine benzer: bash içindeki printf işlevi veya C. Go, biçimlendirme fiillerini C'den alır.

Kullan dize biçimlendirme fiilleri içeren bir dizedeki değişken değerleriniz için yer tutucular olarak. Daha sonra bu biçimlendirme dizesini aşağıdaki gibi bir işleve iletebilirsiniz. Yazdır , bu yer tutuculara karşılık gelen değerlerle birlikte.



ile dize biçimlendirme fiillerini kullanamazsınız. Yazdır ve Println yöntemler. Bunları gibi yöntemlerle kullanabilirsiniz. Yazdır ve Sprintf .

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

bu %içinde fiil, herhangi bir değeri varsayılan biçiminde yazdırır. bu Println yöntem fiilleri tanımaz ve aldığı argümanları yazdırır. bu Yazdır ve Sprintf işlevlerin her ikisi de kendilerine ilettiğiniz ilk dize bağımsız değişkenini biçimlendirir.





  tam sayıları biçimlendirmenin sonucu

fmt Paketindeki Dize Biçimlendirme İşlevleri

Dizeleri biçimlendirme Go programlama dili bir dize biçimlendirme işlevi ve bir fiil kullanmanızı gerektirir. İşlev, biçimlendirilmiş dizeyi döndürür ve fiiller, dizeye yapılan girişler için yer tutuculardır.

bu Yazdır yöntem, girişi biçim belirtecine göre biçimlendirir ve yazılan bayt veya hataların sayısını döndürür.





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

Geleneksel olarak, kullandığınızda hatalar hakkında endişelenmenize gerek kalmayacak. Yazdır yöntem.

bu Sprintf yöntem belirtilen biçime göre biçimlendirir ve sonucu bir dize olarak döndürür.

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

bu Fprintf method dizgiyi biçimlendirir ve bir yazara yazar ( io.Yazar arayüz)

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

bu fscanf Metod bir okuyucudan tarar ve belirtilen formata göre formatlar.

var take string 

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

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

Bu durumda, fscanf dizeyi okuyucudan koda çözer almak değişken ve okuman değişken, biçimin sonucunu tutar.

Dize Biçimlendirme Fiilleri

Go, dize biçimlendirme işlevleriyle birlikte kullanabileceğiniz birçok biçimlendirme fiili sağlar.

chrome'da varsayılan kullanıcı nasıl değiştirilir

gibi genel dize biçimlendirme fiilleri vardır. %içinde dize biçimlendirme işlevleri örneklerinde fiil. Herhangi bir veri türünü biçimlendirmek için genel dize biçimlendirme fiillerini kullanabilirsiniz.

kullanabilirsiniz %#içinde herhangi bir değeri çıktılamak için fiil, %+v yapılar için, %T herhangi bir değerin türü için fiil ve %% değeri olmayan fiil.

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)

bu sonuç değişken, somutlaştırılmış yapının biçimlendirilmiş dizesini tutar. Yazdırırsanız, şöyle görünmelidir:

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

Kanallar ve işaretçiler dahil olmak üzere belirli Go yerel veri türlerini biçimlendirmek için fiiller vardır.

%t boolean.
%d int, int8, vb.
%d, %#x %#v ile yazdırılırsa uint, uint8, vb.
%g float32, kompleks64, vb.
%s sicim.
%p chan.
%P Işaretçi.

Büyük/küçük harfe duyarlı oldukları için fiillerde hata yapmadığınızdan emin olmak isteyeceksiniz. chan ve Işaretçi fiiller.

Tam Sayıları ve Kayan Noktaları Biçimlendirme

Tam sayıları biçimlendirmek için dize biçimlendirme fiilleri vardır. farklı bazlar . Tam sayıları biçimlendirmek için bu fiillerden herhangi birini kullanabilirsiniz.

%b taban 2
%c karşılık gelen Unicode kod noktasıyla temsil edilen karakter.
%d taban 10.
baz 8.
0o öneki ile 8 tabanı.
%q tek tırnaklı bir karakter değişmezi, Go sözdizimi ile güvenli bir şekilde kaçtı.
%x 16 tabanı, a-f için küçük harflerle.
%X 16 tabanı, A-F için büyük harflerle.
%İÇİNDE Unicode formatı: U+1234; 'U+%04X' ile aynı.

Örneğin, bir tamsayıyı şu şekilde biçimlendirebilirsiniz: %d fiil:

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

Bunlar kayan noktalı sayıları biçimlendirme fiilleridir.

%b strconv tarzında, üssü iki olan ondalıksız bilimsel gösterim. 'b' biçimiyle FormatFloat, ör. -123456p-78
%ve bilimsel gösterim, ör. -1.234456e+78
%VE ondalık nokta ancak üs yok, ör. 123.456
%f ondalık nokta ancak üs yok, ör. 123.456
%F %f'nin eş anlamlısı.
%g Büyük üsler için %e, aksi takdirde %f. Aşağıdaki hassasiyet.
%G Büyük üsler için %E, aksi takdirde %F
%x onaltılık gösterim (iki üssün ondalık kuvvetiyle), örneğin, -0x1.23abcp+20.
%X büyük harfli onaltılık gösterim, ör. -0X1.23ABCP+20.

İşte, üs olmadan ondalık basamağı biçimlendirmenin bir örneği: %f fiil.

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

Türünden emin değilseniz her zaman genel fiilleri kullanabilirsiniz.

Dizeleri ve Baytları Biçimlendirme

Go'da dizeler ve dilim bayt türleri oldukça benzerdir. Bunlar, dizeleri ve baytları biçimlendirmek için kullanılan bayraklardır.

%s dizenin veya dilimin yorumlanmamış baytları
%q Go sözdizimi ile güvenli bir şekilde kaçan çift tırnaklı bir dize
%x taban 16, küçük harf, bayt başına iki karakter
%X taban 16, büyük harf, bayt başına iki karakter

Bir dizeyi şu şekilde biçimlendirmeye bir örnek: %s fiil.

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

fmt Paketi Python Programlama için Esastır

bu fmt paketi, dize biçimlendirme için ihtiyaç duyacağınız işlevlerin çoğunu içerir. Git ayrıca bir Teller dize işleme paketi ve bir kayıt günlüğe kaydetme için dizeleri biçimlendirebilen paket.

bu fmt paketi uygulayan işlevlere sahiptir. io.Yazar ve io.Okuyucu arayüzler. Web ve komut satırı uygulamaları oluşturmak gibi birçok kullanım durumu için faydalı bulacaksınız.