Golang反射调用函数
首先,来看看这段 PHP 代码: view source print ? 1 function foobar() { 2 echo "Hello Golang\n" ; 3 } 4 $funcs = array ( 5 "foobar" => "foobar" , 6 "hello" => "foobar" , 7 ); 8 $funcs [ "foobar" ](); 9 $funcs [ "hello" ](); 它会输出: view source print ? 1 mikespook@mikespook-laptop:~/Desktop$ phpfoobar.php 2 HelloGolang 3 HelloGolang 用这个方法调用匹配名字的函数,非常有效。 那么,在 Golang 中是否可能用函数的名字来调用某个函数呢? 作为一个静态、编译型语言,答案是否定的……又是肯定的! 在 Golang 中,你不能这样做: view source print ? 01 func foobar(){ 02 //bla...bla...bla... 03 } 04 funcname := "foobar" 05 funcname() 06 不过可以: 07 08 func foobar(){ 09 //bla...bla...bla... 10 } 11 funcs :=map