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