2012-04-08 26 views
12

Trong trường hợp sử dụng cụ thể của tôi, tôi muốn biết làm thế nào mã Java sau đây sẽ được thực hiện tại Gò -Tương đương với Java ArrayList <E> ở Golang là gì?

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

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

tôi đã nhận được bắt đầu, và tôi nghĩ rằng đây sẽ là struct thích hợp cho kênh tại Gò -

type Channel struct { 
    Name string 
} 

tôi chỉ cần biết làm thế nào ArrayList sẽ làm việc tại Gò

Trả lời

30

Sử dụng một lát:

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

Ngoài ra, tuyên bố Kênh của mình là hơi hết, bạn cần phải 'loại' từ khóa:

type Channel struct { 
    name string 
} 

Dưới đây là một ví dụ hoàn chỉnh: http://play.golang.org/p/HnQ30wOftb

Mọi chi tiết, xem các slices article.

Ngoài ra còn có chuyến tham quan (tour.golang.org) và thông số ngôn ngữ (golang.org/ref/spec, xem #Slice_types, #Slices và #Appending_and_copying_slices).

+0

Cảm ơn, ngược lại của hàm append là những gì (ví dụ để loại bỏ một phần tử)? – liamzebedee

+4

'a = nối thêm (a [: i], a [i + 1:] ...)' – Mostafa

+1

nếu tất cả những gì bạn muốn làm là xóa một từ phía trước hoặc phía cuối thì nó thậm chí còn dễ dàng hơn: a = a [1 :] hoặc a = a [: len (a) - 2] Mostafa cho phép bạn loại bỏ một từ giữa lát. Phần tốt nhất là phụ thêm sẽ trong những trường hợp này thậm chí không cần phải thay đổi kích thước của slice vì vậy nó chỉ là một sửa đổi tại chỗ. –

0

này hoạt động

//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"}) 
Các vấn đề liên quan