2012-04-08 46 views
12

在我的具體使用情況,我想知道怎麼下面的Java代碼將在圍棋中實現 -Golang中的Java ArrayList <E>等效於什麼?

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

ArrayList<Channel> channels = new ArrayList<Channel>(); 

我已經得到啓動,我認爲這將是海峽圍棋適當的結構 -

type Channel struct { 
    Name string 
} 

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

回答

30

使用切片:

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

另外,你的頻道聲明是稍微偏離,你所需要的「型」關鍵字:

type Channel struct { 
    name string 
} 

這裏有一個完整的例子:http://play.golang.org/p/HnQ30wOftb

欲瞭解更多信息,請參閱slices article

還有go tour(tour.golang.org)和語言規範(golang.org/ref/spec,請參閱#Slice_types,#片和#Appending_and_copying_slices)。

+0

謝謝,什麼是追加功能的相反(例如,以除去的元素)? – liamzebedee 2012-04-08 06:33:07

+4

'a = append(a [:i],a [i + 1:] ...)' – Mostafa 2012-04-08 07:46:24

+1

如果您只想從前端或末端移除一個,則更容易:a = a [1 :]或a = a [:len(a) - 2] Mostafa's允許您從切片中間刪除一個。最好的部分是,在這些情況下,append將不需要調整片的大小,所以它只是一個適當的修改。 – 2012-04-08 18:55:16

0

這工作

//make the object Channel 
type Channel struct { 
    name string 
} 

// a empty list 
var channels = []*Channel {} 

//and finally add this object 
channels = append(channels, Channel{name:"juan carlos anez mejias"}) 
相關問題