在 Go 教程中经常看到以下代码:
a := foo()
b, c := foo()
或者实际上我看到的是:
m["Answer"] = 48
a := m["Answer"]
v, ok := m["Answer"]
定义了多少个 foo()?
是两种,一种具有一种返回类型,另一种具有两种返回类型?
或者只是一个定义了两个返回类型的 foo(),并且当只需要一个返回值 () 时,又以某种方式神奇地a := foo()
省略了另一个返回值?
我试过
package main
func 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