簡體   English   中英

創建結構數組並在其中初始化元素時出錯

[英]Error while creating array of struct and initializing elements in it

我正在嘗試創建包含兩個元素的數組,但出現錯誤

 type TODO struct {
    Number             int
    Task               string
}

func main() {
    var todoArr [2]TODO

    fE := &TODO{Number: 10, Task: "Task1"}
    sE := &TODO{Number: 11, Task: "Task2"}
    todoArr[0] = fE
    todoArr[1] = sE
}

不能在分配中使用fE(* TODO類型)作為TODO類型

我不知道為什么我也想知道是否有一個簡短的形式像這樣在golang中聲明和初始化數組/切片

[]TODO{&TODO{Number: 10, Task: "Task1"}, &TODO{Number: 11, Task: "Task2"}}

更改代碼以聲明指向TODO的指針數組:

var todoArr [2]*TODO

fE := &TODO{Number: 10, Task: "Task1"}
sE := &TODO{Number: 11, Task: "Task2"}
todoArr[0] = fE
todoArr[1] = sE

或更改代碼以將TODO值放入數組中:

var todoArr [2]TODO

fE := TODO{Number: 10, Task: "Task1"}
sE := TODO{Number: 11, Task: "Task2"}
todoArr[0] = fE
todoArr[1] = sE

您可以使用文字語法聲明切片

[]*TODO{&TODO{Number: 10, Task: "Task1"}, &TODO{Number: 11, Task: "Task2"}}

要么

[]TODO{TODO{Number: 10, Task: "Task1"}, TODO{Number: 11, Task: "Task2"}}

取決於您是否選擇使用指針。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM