Sobes.tech
Junior — Middle

Programlamada boş arayüz ile normal arayüz arasındaki ilişki nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Go'da boş arayüz interface{}, herhangi bir yöntemi içermeyen bir arayüzdür. Her tür, varsayılan olarak boş arayüzü uygular, bu nedenle herhangi bir değeri depolayabilir. Öte yandan, normal bir arayüz, bu arayüze uygun olması için bir türün uygulaması gereken yöntemler kümesini tanımlar.

Bu nedenle, Go'da boş ve normal arayüzler arasındaki ilişki, boş arayüzün herhangi bir türdeki değerler için evrensel bir konteyner olması, normal arayüzün ise belirli türlerin uyması gereken bir sözleşme olmasıdır. Boş arayüz genellikle belirli olmayan verileri depolamak ve iletmek için kullanılırken, normal arayüzler nesnelerin davranışını tanımlamak için kullanılır.

Örnek:

var any interface{} = 42 // boş arayüz herhangi bir değeri depolayabilir

// Normal arayüz
type Reader interface {
    Read(p []byte) (n int, err error)
}

// Reader'ı uygulayan tür
type File struct {}
func (f File) Read(p []byte) (int, error) {
    // uygulama
    return 0, nil
}

var r Reader = File{} // File, Reader arayüzünü uygular