我是golang的新手。我想在阵列中获取用户详细信息。
这是我的代码
package main
import (
"fmt"
)
type user struct {
name string
email string
}
func main() {
u := []user{}
u[0].name = "Vanaraj"
fmt.Println(u)
}
如何实现这一目标?
提前致谢。非常感谢任何帮助。
答案 0 :(得分:4)
它工作正常,但它是空的;尝试访问第一个元素(设置其字段)失败,不是因为数组不起作用,而是因为没有第一个元素。
使用元素like this初始化它:
u := []user{user{name: "foo", email: "foo@bar.com"}}
数组中的
u := []user{}
newuser := user{name: "Vanaraj"}
u = append(u, newuser)
所以它不再是空的。
答案 1 :(得分:2)
首先,你要创建一个切片,而不是一个数组。 Go也有数组,所以尽量不要混淆它们。
你[0] .name =“Vanaraj”
在这里,您尝试访问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)
}