Junior — Middle
Bir programlama dilinde metodsuz yapı ile arayüz arasındaki fark nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Go dilinde, yapı (struct) belirli bir veri türüdür ve bir dizi alan (değişken) içerir. Verilerin nasıl düzenlendiğini tanımlar, ancak kendisi davranış içermez.
Go'da arayüz (interface), bu arayüze uygun olması için bir türün uygulaması gereken yöntemleri tanımlar. Arayüz veri içermez, sadece yöntemlerin imzalarını içerir.
Ana farklar:
- Yapı: alanlara sahip somut bir uygulamadır.
- Arayüz: yöntemler aracılığıyla davranışı tanımlayan soyutlamadır.
- Bir yapı, uygun yöntemlere sahipse, bir veya daha fazla arayüzü uygulayabilir.
Örnek:
// Yöntemsiz yapı
type User struct {
Name string
Age int
}
// Yöntem içeren arayüz
type Greeter interface {
Greet() string
}
// Arayüzün uygulanması
func (u User) Greet() string {
return "Hello, " + u.Name
}
Burada, User alanlara sahip bir yapıdır ve Greeter davranışı tanımlayan bir arayüzdür. Greet yöntemi olmadan, User yapısı Greeter arayüzünü uygulamaz.