1 回答

TA貢獻(xiàn)1844條經(jīng)驗(yàn) 獲得超8個(gè)贊
值接收者制作類(lèi)型的副本并將其傳遞給函數(shù)。
只需將其設(shè)置為指針即可:
func (t *test) s1(v int) {
t.x1 = append(t.x1, v)
t.s2(v)
}
輸出:
&{[0 1 2 3 4 5 6 7 8 9] [0 1 2 3 4 5 6 7 8 9]}
代碼:
package main
import "fmt"
type runner interface {
s1(int)
s2(int)
}
type test struct {
x1 []int
x2 []int
}
func (t *test) s1(v int) {
t.x1 = append(t.x1, v)
t.s2(v)
}
func (t test) s2(v int) {
t.x2[v] = v
}
func main() {
t := &test{
x1: make([]int, 0),
x2: make([]int, 10)}
for i := 0; i < 10; i++ {
t.s1(i)
}
fmt.Println(t)
}
- 1 回答
- 0 關(guān)注
- 120 瀏覽
添加回答
舉報(bào)