Sobes.tech
Junior — Middle

Proqramlaşdırmada boş interfeys ilə adi interfeys arasındakı əlaqə nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Go-da boş interfeys interface{} — bu heç bir metod içerməyən interfeysdir. O, hər hansı bir növün dəyərini saxlaya bilər, çünki bütün növlər standart olaraq boş interfeysi həyata keçirir. Normal interfeys isə, bu interfeysə uyğun olması üçün növlərin həyata keçirməli olduğu metodlar toplusunu müəyyən edir.

Beləliklə, Go-da boş və normal interfeyslər arasındakı əlaqə odur ki, boş interfeys hər növ dəyər üçün ümumi konteynerdir, normal interfeys isə müəyyən növlərin riayət etməli olduğu müqaviləni təyin edir. Boş interfeys tez-tez müəyyən olmayan növü saxlamaq və ötürmək üçün istifadə olunur, normal interfeyslər isə obyektlərin davranışını təyin etmək üçün.

Nümunə:

var any interface{} = 42 // boş interfeys hər hansı bir dəyəri saxlaya bilər

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

// Reader-i həyata keçirən növ
type File struct {}
func (f File) Read(p []byte) (int, error) {
    // həyata keçirmə
    return 0, nil
}

var r Reader = File{} // File, Reader interfeysini həyata keçirir