Junior — Middle
Go programlama dilinde boş arayüz ile nil değere sahip arayüz arasındaki fark nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Go dilinde, boş arayüz interface{}, metod içermeyen ve herhangi bir türdeki değeri saklayabilen bir arayüzdür. Ancak, bir arayüz türü değişkeni nil içeriyorsa, tam olarak nil'in ne olduğunu anlamak önemlidir.
- Boş arayüz, değer içermeyen: herhangi bir değere işaret etmeyen arayüz türü değişkeni nil olarak kabul edilir.
- Nil değeri içeren arayüz: arayüz belirli bir tür içeriyorsa, ancak bu türün değeri nil ise, arayüz kendisi nil'e eşit değildir, çünkü tür bilgisi içerir.
Örnek:
var i interface{} // i == nil
var p *int = nil // p == nil
i = p // i != nil, çünkü *int türünü içeriyor, ama değeri nil
fmt.Println(i == nil) // false
fmt.Println(p == nil) // true
Nil kontrolü yaparken bunu dikkate almak, beklenmedik hataları önlemek için önemlidir.