RAGNAROK: no hele nevim, jestli tomu uplne rozumim, ale timhle tu funkci rovnou zavolas s tema parametrama a predavas pak jeji vystup
func(10,"abc")
takze bud teda parametry musis predat pri jejim volani a dostat je tam nejak jinak:
func worker(task func(string)) {
task("asdf")
}
printer := func(s string) {
fmt.Println(s)
}
worker(printer)
nebo pouzit closure, tj treba nejakej jakoby konstruktor, kde nastavis promenny, takze neco ve smyslu:
func worker(task func()) {
task()
}
func createPrinter(s string) func() {
return func() {
fmt.Println(s)
}
}
printer1 := createPrinter("asdf")
printer2 := createPrinter("qwerty")
worker(printer1)
worker(printer2)
v Go ma anonymni funkce pristup k promennejm ve svym scope, coz je myslim stejne napriklad v Javascriptu, ale v PHP to myslim takhle nefunguje.. ale uz si teda nejsem jistej, nejak se mi to zacina plest :))