消息关闭
    暂无新消息!
func (cli *Cli) Command(name string) func(...string) error {
return map[string]func(...string) error{
"help": cli.CmdHelp,
}[name]
}


Cli的方法,方法名为Command,参数string类型的name。 返回值 func(...string) error函数

里面return看不懂了。  

一个map key = string  value = func(..string) error {} [] 函数 这个"help": cli.CmdHelp是什么,[name]是什么
是返回一个函数数组吗?以name下标的函数数组?

3个回答

︿ 1
分开写你就明白:

返回类型
type aaa map[string]func(...string) error
实例化:
var a  =  aaa{"help": cli.CmdHelp,}
返回值:
return a[name]
-------------
也就是说, 你的参数必须是"help"字符串,才会返回一个函数cli.CmdHelp, 否则返回类型为`func(...string) error`的nil;

简写而已;
︿ 0
return map[string]func(...string) error{
"help": cli.CmdHelp,
}[name]


这个return语句干了这么几件事情 
1、定义了一个map,key为string,value为如描述的函数,这个map初始化时定义了一个成员 “help”:xxx
2、取用这个map中的key为 [name] 的value,作为return的结果进行返回

至于为什么用这么奇怪的方式,我就不知道了。

另外,这里发的帖子,自己不要回复,保留回复量为0,获得回复的可能性高一些