首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将多重放函数的结果传递给另一个只使用Go中的一个参数的函数。

将多重放函数的结果传递给另一个只使用Go中的一个参数的函数。
EN

Stack Overflow用户
提问于 2014-06-16 18:50:11
回答 2查看 377关注 0票数 1

是否可以将直接返回多个值的结果表单函数传递给只接受一个值的函数?示例:

代码语言:javascript
复制
func MarshallCommandMap(mapToMarshall map[string]string) string {
    return string(json.Marshal(mapToMarshall))
}

上面的示例将导致编译错误:multiple-value json.Marshal() in single-value context。我知道通过附加变量可以得到相同的结果:

代码语言:javascript
复制
func MarshallCommandMap(mapToMarshall map[string]string) string {
    marshaledBytes, marshalingError := json.Marshal(mapToMarshall)
    if (marshalingError != nil) {
        panic(marshalingError)
    }
    return string(marshaledBytes)
}

但是,是否有可能只传递没有任何变量的第一个值direclty?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-16 18:56:38

我想你是说做些像python的tuple解包之类的事情。不幸的是,这在Go中是不可能的(AFAIK)。

票数 3
EN

Stack Overflow用户

发布于 2014-06-16 19:25:18

不,你不能,但是用你的代码做两件事。

  1. 不要惊慌失措,要么返回错误,要么返回空字符串。
  2. 你可以把它缩短一些。

例子:

代码语言:javascript
复制
func MarshallCommandMap(mapToMarshall map[string]string) string {
    js, _ := json.Marshal(mapToMarshall) //ignore the error
    return string(js)
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24250222

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档