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.