V Go je veľmi jednoduché vytvoriť si vlastný typ (custom type), vytvoriť konštantu vlastného typu alebo enumerátor (enum).
Konštanta (Constant)
Ako už názov KONŠTANTA (constant) označuje niečo fixné - pevné/stálé, aj v programovacích jazykoch je to rovnaké. Keď je raz hodnota konštanty definovaná, už viac nemôže byť zmenená. V Go to platí rovnako.
Konštanta v Go môže byť akýkoľvek z jednoduchých a zložených typov - celočíselná konštanta (integer), konštanta s plávajúcou desatinnou čiarkou (float, complex), znak (character), reťazec (string), pravdivostná konštanta (boolean). Tiež rozlišujeme enumované konštanty (enum).
S konštantou pracujeme ako s regulárnou premennou s jedinou výnimkou, že hodnota konštanty musí byť známa pri kompilácii a teda nemôže byť priradená k hodnote vrátenej volaním funkcie. Taktiež ju nemôžeme meniť počas behu programu. Konštantu definujeme pomocou rovná sa =
(bez :
), prípadne môžeme explicitne definovať typ const <názov> <typ> = <hodnota>
.
|
|
iota
Go má špecialnu konštantu nazývanú iota, ktorej defaultná hodnota je 0 a automaticky narastá o 1, keď je priradená k inej konštante.
|
|
Vlastný typ (Custom type)
Vlastný typ vytvoríme pomocou type <meno> <podkladový-typ>
pričom podkladový typ (underlying type) je typ, ktorý Go pozná (int, float64, struct,…).
Meno typu (ale tiež aj premenných a funkcií) je tzv. identifikátor. Go používa UTF-8 kódovanie namiesto ASCII, preto môžeme vytvoriť pomenovanie napríklad z písmen gréckej abecedy (𝛼ϒ je korektný názov premennej). Podčiarkovník ’_’ je špeciálny prípad identifikátora, takzvaný prázdny identifikátor. Identifikátor môže začínať veľkým alebo malým písmenom, čím rozlišujeme, či sa jedná o verejný (public) alebo súkromný (private, package private) identifikátor.
Identifikátory nemôžu:
- začínať číslicou (
4teen
,9th
), - byť jedným z kľúčových slov v Go (
for
,if
), - obsahovať operátory (
+plus
,*star
).
|
|
$ go run main.go
User: 123 Joe
Na akú kávu máš chuť?
Konštanty a vlastné typy môžeme použiť v príklade s kávovarmi z minulého týždňa. Vytvoríme si konštanty typu coffeeSize
a nahradíme to všade, kde sme používali size (type int)
.
|
|
Referencie
Vaše otázky, návrhy a komentáre
Verím, že vás tento návod inšpiroval a budem vďačný ak dáte spätnú väzbu a pomôžete mi zamerať sa na to čo by vás zaujímalo.