为了账号安全,请及时绑定邮箱和手机立即绑定

如何让函数支持一两个返回值

如何让函数支持一两个返回值

Go
开满天机 2021-06-29 13:19:16
在 go 教程中经常看到以下代码:a := foo()b, c := foo()或者实际上我看到的是:m["Answer"] = 48a := m["Answer"]v, ok := m["Answer"]定义了多少个 foo()?是两种,一种具有一种返回类型,另一种具有两种返回类型?或者只是一个 foo() 定义了两个返回类型,当只需要一个返回值 ( a := foo())时,以某种方式神奇地省略了另一个返回值?我试过了package mainfunc main() {    a := foo()    a = 1}func foo() (x, y int) {    x = 1    y = 2    return}func foo() (y int) {    y = 2    return}但我收到错误信息 foo redeclared in this block
查看完整描述

2 回答

?
茅侃侃

TA贡献1842条经验 获得超21个赞

虽然一些内置操作支持单返回值模式和多返回值模式(例如从映射中读取、类型断言或在循环中使用 range 关键字),但用户定义的函数无法使用此功能。

如果您想要具有不同返回值的函数的两个版本,则需要为它们指定不同的名称。


查看完整回答
反对 回复 2021-07-05
  • 2 回答
  • 0 关注
  • 209 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信