Sobes.tech
Junior — Middle

Go dilinde arayüz ile diğer programlama dillerindeki arayüzler arasındaki fark nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Go dilinde arayüzler, dolaylı olmalarıyla ayrılır — türün arayüzü açıkça belirtmesi gerekmez. Eğer bir tür, arayüzün tüm yöntemlerini içeriyorsa, otomatik olarak onun uygulaması olarak kabul edilir.

Bu, birçok diğer dilden farklıdır; burada, bir sınıf veya türün arayüzü uyguladığını açıkça belirtmek gerekir.

Örnek:

package main
import "fmt"

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

type File struct {}

func (f File) Read(p []byte) (n int, err error) {
    // yöntem uygulaması
    return 0, nil
}

func main() {
    var r Reader
    var f File
    r = f // File otomatik olarak Reader'ı uygular
    fmt.Println(r)
}