没有List.PushBack

时间:2015-05-13 14:26:04

标签: list go

查看以下源代码:

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())
}

此代码将一直打印01。我做错了吗?

1 个答案:

答案 0 :(得分:2)

您正在Append方法中复制Stream和List值。

使Append指针接收器

func (s *Stream) Append(value interface{}) {

或使Stream.list成为*list.List

type Stream struct {
    list *list.List
}