我是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 关注
 - 172 浏览
 
添加回答
举报
0/150
	提交
		取消
	