上个星期,我写了篇《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