Sobes.tech
Junior — Middle

Go dilinde arayüz nasıl farklıdır ve bilmeniz gereken özellikler nelerdir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Go dilinde, arayüz (interface), bu arayüzle uyumlu sayılmak için bir türün uygulaması gereken yöntemler kümesidir. Go'daki arayüzlerin özellikleri:

  • İzole olmayan uygulama: Bir tür, arayüzdeki tüm yöntemlere sahipse, açıkça bildirmeden arayüzü uygular sayılır.
  • Arayüzler, veri yapısından çok davranışı tanımlar.
  • Boş arayüz (interface{}) — yöntem içermeyen, herhangi bir türdeki değeri içerebilen arayüz.
  • Arayüzler iç içe olabilir, birkaç arayüzün yöntemlerini birleştirerek.

Ö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{} // MyReader, Reader'ı dolaylı olarak uygular
    fmt.Println(r)
}