两段代码
第一段:
```
func main() {
a, b := testDemo()
fmt.Println(a, b)
}
func testDemo() (int, int) {
var a int
return a, change(&a)
}
func change(a *int) int {
*a++
return 2
}
```
打印的结果是`1 2`
第二段代码
```
func main() {
a, b := testDemo()
fmt.Println(a, b)
}
func testDemo() (interface{}, int) {
var a int
return a, change(&a)
}
func change(a *int) int {
*a++
return 2
}
```
打印的结果是`0 2`
唯一的不同是testDemo这个函数的返回值是int还是interface{}
请教下为什么会有这样的不同呢?
有疑问加站长微信联系(非本文作者)