我是golang的新手。我正在尝试获取数组中的用户详细信息。这是我的代码package mainimport ( "fmt")type user struct { name string email string}func main() { u := []user{} u[0].name = "Vanaraj" fmt.Println(u)}如何做到这一点?提前致谢。任何帮助是极大的赞赏。
2 回答
呼唤远方
TA贡献1856条经验 获得超11个赞
它工作正常,但它是空的;尝试访问第一个元素(设置其字段)失败,不是因为数组不工作,而是因为没有第一个元素。
用这样的元素初始化它:
u := []user{user{name: "foo", email: "foo@bar.com"}}
或者在数组中推送新元素:
u := []user{}
newuser := user{name: "Vanaraj"}
u = append(u, newuser)
这样它就不再是空的了。
慕哥9229398
TA贡献1877条经验 获得超6个赞
首先,您正在创建一个切片,而不是一个数组。Go 也有数组,所以尽量不要混淆它们。
u[0].name = "瓦纳拉杰"
在这里,您尝试访问 u[0] 但它不存在,因为您的切片大小为零。
您应该使用 append,如果需要,它会自动为您的切片分配一个更大的底层数组。
func main() {
u := []user{}
u = append(u, user{name: "Vanaraj"})
fmt.Println(u)
}
或者,您可以在创建切片时使用 make 以一些非零大小对其进行初始化。
func main() {
u := make([]user, 1)
u[0].name = "Vanaraj"
fmt.Println(u)
}
- 2 回答
- 0 关注
- 134 浏览
添加回答
举报
0/150
提交
取消