上个星期,我写了篇《Function call by name in Golang》。由于是英文的,所以被人诟病(说谁,谁知道!)。好吧,现在用中文重新写一遍。
Golang 中的函数跟 C 的一样,是个代码块,不过它可以像其他类型那样赋值给一个变量。
如果你对函数不熟悉,《Codewalk: First-Class Functions in Go》应该是个不错的起点。已经有所了解?那么继续吧!
首先,来看看这段 PHP 代码:
function foobar() { echo "Hello Golang\n"; } $funcs = array( "foobar" => "foobar", "hello" => "foobar", ); $funcs["foobar"](); $funcs["hello"]();它会输出:
mikespook@mikespook-laptop:~/Desktop$ php foobar.php Hello Golang Hello Golang