创建结构数组并在其中初始化元素时出错

艾哈迈德·马格迪(Ahmed Magdy):

我正在尝试创建包含两个元素的数组,但出现错误

 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"}}

取决于您选择是否使用指针。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章