我使用UI庫(https://github.com/andlabs/ui)製作關於學生組的程序。Golang - 如何將數組([])「轉換」爲列表(...)?
的ui.SimpleGrid允許「列表」中輸入控制:
func NewSimpleGrid(nPerRow int, controls ...Control) SimpleGrid
我覺得在Java等語言,它只是擔任一個數組,這基本上意味着給它一會工作。但是,這在Go中似乎並不一樣。
func initStudentsGrid(students ...Student) ui.SimpleGrid {
var i int
var grd_studentsList []ui.Grid
for i = 0; i < len(students); i++ {
grd_student := ui.NewGrid()
grd_student.Add(ui.NewLabel(students[i].group), nil, ui.West, true, ui.LeftTop, true, ui.LeftTop, 1, 1)
grd_student.Add(ui.NewLabel(students[i].lastName), nil, ui.West, true, ui.LeftTop, true, ui.LeftTop, 1, 1)
grd_student.Add(ui.NewLabel(students[i].firstName), nil, ui.West, true, ui.LeftTop, true, ui.LeftTop, 1, 1)
grd_studentsList = append(grd_studentsList, grd_student)
}
return ui.NewSimpleGrid(1, grd_studentsList)
程序的編譯沒有因爲:
不能使用grd_studentsList(類型[] ui.Grid)作爲參數類型ui.Control到ui.NewSimpleGrid:[] ui.Grid未實現ui.Control(缺少ui.containerHide法)
有沒有辦法在一個陣列所需的格式做了一種「演員」,因爲它是不可能通過一個添加一個網格(在SimpleGrid上沒有附加方法)?
坦克的小費,但它也不管用.. (無法使用grd_studentsList(類型[] ui.Grid)作爲類型[] ui.Control在參數爲ui.NewSimpleGrid) – Razakhel 2015-03-13 13:20:45
因此,使'grd_studentsList' [] ui.Control'。假設網格類型符合接口,其餘的代碼應該工作。 – 2015-03-14 01:21:16