gpt4 book ai didi

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

转载 作者:数据小太阳 更新时间:2023-10-29 03:13:46 25 4
gpt4 key购买 nike

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

 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
}

cannot use fE (type *TODO) as Type TODO in assignment

我不知道为什么我也想知道是否有像这样在 golang 中声明和初始化数组/slice 的简短形式

[]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

您可以使用字面量语法声明 slice

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

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

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

关于go - 创建结构数组并初始化其中的元素时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43379394/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com