我想如果我尝试将指针传递给函数,那么这个函数声明也应该接收一个指针?不确定,我尝试过这个:
package main
import (
"fmt"
)
type I interface {
Get() int
Set(int)
}
type S struct {
Age int
}
func (s S) Get() int {
return s.Age
}
func (s *S) Set(age int) {
s.Age = age
}
func f(i I) {
i.Set(10)
fmt.Println(i.Get())
}
func main() {
s := S{}
f(&s) //4
fmt.Println(s.Get())
}
它打印
10
10
我们看到 f 的函数是
func f(i I)
我不确定这是否是“按值传递”声明,如果按值传递,则“i”不应该在函数“f”之外更改,它是“f”内部的副本。
那么我到底错在哪一点呢?
芜湖不芜
慕村9548890
相关分类