V Go je funkce main
vstupním bodem aplikace. Je to ta funkce, která se vykoná, když vybildovanou aplikaci spustíte. Příkazem return
v této funkci pak vykonávání programu končí.
Nejjednoduší Go aplikace pak může vypadat takto:
package main import "fmt" func main() { fmt.Println("Hello, Pepa!") }
Výstup do konzoli je jasný: Hello, Pepa!
Co byste pak, s vědomím informací o funkci main, řekli, že udělá následující kód:
package main import "fmt" func init() { fmt.Println("inir()") } func main() { fmt.Println("Hello, Pepa!") }
No protože se volá main
, pak je výsledek jasný: Hello, Pepa!
. Ale ouha. vypíše se následující:
init() Hello, Pepa!
Je to tak, init() se provede před main()
A aby toho nebylo málo, pak v Go funguje i následující kód:
package main import "fmt" func init() { fmt.Println("1. nit()") } func init() { fmt.Println("2. init()") } func main() { fmt.Println("Hello, Pepa!") }
Přesně tak. funkci init
můžete zadefinovat vícekrát. To se vám s žádnou jinou funkcí nepodaří.
Výsledek pak bude očekávatelný:
1. nit() 2. init() Hello, Pepa!
Funkci init
můžete mít v každém zdrojovém souboru své aplikace. Ta se provede vždy, když soubor budete importovat do jiného souboru pomocí klíčového slova import
.
Pokud budete soubor importovat vícekrát, funkce init
se provede jen jednou.