Sobes.tech
Junior — Middle

Golang'daki arayüzlerin diğer programlama dillerindeki arayüzlere göre farkı nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Go dilinde arayüzler, örtük uygulama ilkesiyle uygulanır. Bu, bir türün, arayüzün gerektirdiği tüm yöntemlere sahipse, kodda açıkça belirtmeye gerek kalmadan otomatik olarak arayüzü uyguladığı anlamına gelir (Java veya C# gibi dillerde, arayüz uygulamasını açıkça belirtmek gerekirken).

Bu, türler ve arayüzler birbirine doğrudan bağlı olmadığından, daha esnek ve daha az bağlı kodlar yazmayı sağlar.

Örnek:

package main
import "fmt"

type Reader interface {
    Read(p []byte) (n int, err error)
}

type MyReader struct{}

func (r MyReader) Read(p []byte) (n int, err error) {
    // okuma uygulaması
    return 0, nil
}

func main() {
    var r Reader = MyReader{} // örtük arayüz uygulaması
    fmt.Println(r)
}

Ayrıca, Go'da sınıf kalıtımı yoktur, arayüzler çok biçimlilik ve bileşim için kullanılır, bu da onları birçok diğer dilden ayırır.