查看以下源代码:
import "container/list"
type Stream struct {
list list.List
}
func (s Stream) Append(value interface{}) {
log.Println(s.list.Len())
s.list.PushBack(value)
log.Println(s.list.Len())
}
此代码将一直打印0
和1
。我做错了吗?
答案 0 :(得分:2)
您正在Append方法中复制Stream和List值。
使Append
指针接收器
func (s *Stream) Append(value interface{}) {
或使Stream.list
成为*list.List
type Stream struct {
list *list.List
}