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)
}