Sobes.tech
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.