Constante structuur in Go

Waarom kan ik geen constante structuur creëren?

const FEED_TO_INSERT = quzx.RssFeed{ 0,
                    "",
                    "desc",
                    "www.some-site.com",
                    "upd_url",
                    "img_title",
                    "img_url",
                    0,
                    0,
                    0,
                    0,
                    0,
                    100,
                    "alt_name",
                    1,
                    1,
                    1,
                    "test",
                    100,
                    100,
                    0 }

.\rss_test.go:32: const initializer quzx.RssFeed letterlijk is geen constante


Antwoord 1, autoriteit 100%

Omdat Go geen structuurconstanten ondersteunt (nadruk van mij)

Er zijn booleaanse constanten, runenconstanten, integer-constanten,
drijvende-kommaconstanten, complexe constanten en stringconstanten.

Rune, integer, floating-point en complexe constanten zijn samen
numerieke constanten genoemd.

Lees hier meer: ​​https://golang.org/ref/spec#Constants


Antwoord 2, autoriteit 28%

Een goede oplossing is om het in een functie te verpakken.

func FEED_TO_INSERT() quzx.RssFeed {
    return quzx.RssFeed{ 0,
                    "",
                    "desc",
                    "www.some-site.com",
                    "upd_url",
                    "img_title",
                    "img_url",
                    0,
                    0,
                    0,
                    0,
                    0,
                    100,
                    "alt_name",
                    1,
                    1,
                    1,
                    "test",
                    100,
                    100,
                    0 }
}

Opmerking: zorg ervoor dat de functie altijd een nieuw object (of kopie) retourneert.


Antwoord 3, autoriteit 12%

Je moet het declareren als een var.

Go stelt je in staat om globale variabelen te declareren en te initialiseren binnen het bereik van de module.

Go heeft geen enkel concept van onveranderlijkheid. ‘const’ is niet bedoeld als een manier om te voorkomen dat variabelen muteren of iets dergelijks.

Other episodes