我目前正在自学围棋,但我无法理解某种行为:
package main
import (
"fmt"
)
type List struct {
n int
}
func (l List) Increment() {
l.n += 1
l.LogState() // size: 1
}
func (l List) LogState() {
fmt.Printf("size: %v\n", l.n)
}
func main() {
list := List{}
list.Increment()
fmt.Println("----")
list.LogState() // size: 0
}
https://play.golang.org/p/-O24DiNPkxx
LogState被执行两次。最初,在Increment通话期间,它打印size: 1但Increment返回后打印size: 0。为什么这些值不同?
ITMISS
喵喔喔
相关分类