- Katılım
- 7 Ocak 2026
- Mesajlar
- 290
- Tepkime puanı
- 2
- Puanları
- 18
Go'nun "Class"ları
Go, tam anlamıyla Nesne Tabanlı (OOP) bir dil değildir; Class (Sınıf) ve Inheritance (Kalıtım) yoktur. Ancak verileri gruplamak ve kendi tiplerimizi oluşturmak için Struct (Yapı) kullanılır. Struct, birbiriyle ilişkili verileri (alanları) tek bir çatı altında toplar.Struct Tanımlama
Genellikle main fonksiyonunun dışında tanımlanır.
Kod:
package main
import "fmt"
// Kendi "User" tipimizi oluşturuyoruztype User struct {ID intUsername stringEmail stringIsActive bool}
func main() {// Yöntem 1: Alan isimlerini belirterekkullanici1 := User{ID: 1,Username: "gopher",Email: "[email protected]",IsActive: true,}
// Yöntem 2: Sırasıyla (Önerilmez, yapı değişirse kod patlar)<br>kullanici2 := User{2, "admin", "[email protected]", false}<br><br>// Alanlara erişim (Nokta ile)<br>fmt.Println("Kullanıcı Adı:", kullanici1.Username)<br><br>// Alanı güncelleme<br>kullanici1.IsActive = false<br>fmt.Printf("%+v\n", kullanici1) // %+v struct'ı detaylı yazdırır<br>
}
Anonim Struct
Bazen tek seferlik bir yapıya ihtiyaç duyarsınız (örneğin JSON verisi çözerken). Tip tanımı yapmadan da struct kullanabilirsiniz.
Kod:
veriler := struct {Host stringPort int}{Host: "localhost",Port: 8080,}