Golang中Java ArrayList <E>的等价物是什么?

lia*_*dee 15 java arraylist go

在我的特定用例中,我想知道如何在Go中实现以下Java代码 -

class Channel {
    public String name;
    public Channel(){}
}

ArrayList<Channel> channels = new ArrayList<Channel>();
Run Code Online (Sandbox Code Playgroud)

我已经开始了,我认为这将是Go in Channel的合适结构 -

struct Channel {
    name string
}
Run Code Online (Sandbox Code Playgroud)

我只需要知道ArrayList如何在Go中工作

小智 35

使用切片:

var channels []Channel  // an empty list
channels = append(channels, Channel{name:"some channel name"})
Run Code Online (Sandbox Code Playgroud)

此外,您的频道声明略有偏差,您需要'type'关键字:

type Channel struct {
    name string
}
Run Code Online (Sandbox Code Playgroud)

这是一个完整的例子:http://play.golang.org/p/HnQ30wOftb

有关详细信息,请参阅切片文章.

还有go tour(tour.golang.org)和语言规范(golang.org/ref/spec,请参阅#Slice_types,#Slices和#Appending_and_copying_slices).

  • `a =追加(a [:i],a [i + 1:] ...)` (5认同)
  • 如果您不关心列表的顺序,则元素删除可以是固定时间。从末尾取出元素,将其复制到要删除的元素索引,然后将切片长度减小1。 (2认同)
  • golang中的append()是否像ArrayList.add()一样在固定的固定时间上运行? (2认同)