Junior — Middle
Koks dydis turi duomenų struktūra be jokių elementų ar duomenų viduje?
sobes.tech AI
Atsakymas iš AI
Go kalboje struktūra be laukų (tuščia struktūra) užima 0 baitų atminties. Tai kalbos ypatybė: tuščia struktūra neapima duomenų, todėl jos dydis yra nulis.
Pavyzdys:
package main
import (
"fmt"
"unsafe"
)
type Empty struct{}
func main() {
var e Empty
fmt.Println(unsafe.Sizeof(e)) // Išves 0
}
Tai naudinga, pavyzdžiui, kurti rinkinį (set) naudojant žemėlapį map[Empty]struct{}, kur reikšmė neužima papildomos atminties.