Go, yapı değişkenlerinin içeriğini konsol çıktınıza göstermek için çeşitli etkili yöntemler sunar. Bu kılavuz, üç popüler yaklaşımı ele almaktadır: yapıyı tanımlama, fmt.Printf
fonksiyonunu kullanma ve encoding/json
paketini kullanma.
İçindekiler Tablosu
Go’da Yapılar Oluşturma
Bir yapıyı yazdırmadan önce, onu tanımlamanız gerekir. Bir yapı, farklı türlerdeki değerleri tek bir ad altında gruplar. İşte bir kişiyi temsil eden bir örnek:
package main
import "fmt"
type Person struct {
FirstName string
LastName string
Age int
}
func main() {
person := Person{FirstName: "John", LastName: "Doe", Age: 30}
// ... (Yazdırma yöntemleri buraya gelecektir) ...
}
Bu, adı, soyadı ve yaşı için alanlara sahip bir Person
yapısı tanımlar. person
adında bir örnek oluşturulur ve başlatılır.
fmt.Printf
Kullanımı
fmt.Printf
, çok yönlü biçimlendirilmiş çıktı sunar. Yapı alanlarını tek tek yazdırabilirsiniz, ancak bu büyük yapılar için zahmetli hale gelir.
package main
import "fmt"
type Person struct {
FirstName string
LastName string
Age int
}
func main() {
person := Person{FirstName: "John", LastName: "Doe", Age: 30}
fmt.Printf("Adı: %s %s, Yaş: %dn", person.FirstName, person.LastName, person.Age)
}
Bu, biçim belirticilerini kullanarak kişinin bilgilerini yazdırır. İşlevsel olsa da, her alanın manuel olarak belirtilmesini gerektirir.
json.Marshal
‘dan Faydalanma
encoding/json
paketi, özellikle karmaşık yapılar için daha zarif bir çözüm sunar. json.Marshal
, bir Go değerini JSON’a dönüştürür ve bu daha sonra yazdırılır. Bu, tüm alanları otomatik olarak işler.
package main
import (
"encoding/json"
"fmt"
)
type Person struct {
FirstName string `json:"firstName"`
LastName string `json:"lastName"`
Age int `json:"age"`
}
func main() {
person := Person{FirstName: "John", LastName: "Doe", Age: 30}
jsonData, err := json.Marshal(person)
if err != nil {
fmt.Println("Hata:", err)
return
}
fmt.Println(string(jsonData))
}
json.Marshal
, person
‘ı bir JSON bayt dizisine dönüştürür. json:"..."
etiketleri JSON alan adlarını kontrol eder. Hata işleme çok önemlidir. Çıktı, günlük tutma veya hata ayıklama için ideal olan ve büyük yapılar için iyi ölçeklenen biçimlendirilmiş bir JSON gösterimidir.
Doğru Yöntemi Seçme
fmt.Printf
, basit yapılar için ince ayarlı kontrol sağlar; json.Marshal
ise karmaşık yapılar için özlü ve ölçeklenebilir bir çözüm sunar. En iyi yaklaşım, yapınızın karmaşıklığına ve özel gereksinimlerine bağlıdır.