是否可以将直接返回多个值的结果表单函数传递给只接受一个值的函数?示例:
func MarshallCommandMap(mapToMarshall map[string]string) string {
return string(json.Marshal(mapToMarshall))
}上面的示例将导致编译错误:multiple-value json.Marshal() in single-value context。我知道通过附加变量可以得到相同的结果:
func MarshallCommandMap(mapToMarshall map[string]string) string {
marshaledBytes, marshalingError := json.Marshal(mapToMarshall)
if (marshalingError != nil) {
panic(marshalingError)
}
return string(marshaledBytes)
}但是,是否有可能只传递没有任何变量的第一个值direclty?
发布于 2014-06-16 18:56:38
我想你是说做些像python的tuple解包之类的事情。不幸的是,这在Go中是不可能的(AFAIK)。
发布于 2014-06-16 19:25:18
不,你不能,但是用你的代码做两件事。
例子:
func MarshallCommandMap(mapToMarshall map[string]string) string {
js, _ := json.Marshal(mapToMarshall) //ignore the error
return string(js)
}https://stackoverflow.com/questions/24250222
复制相似问题