为了账号安全,请及时绑定邮箱和手机立即绑定

Golang结构数组不起作用

Golang结构数组不起作用

Go
富国沪深 2022-01-17 16:53:34
我是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)

这样它就不再是空的了。


查看完整回答
反对 回复 2022-01-17
?
慕哥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)

}


查看完整回答
反对 回复 2022-01-17
  • 2 回答
  • 0 关注
  • 134 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信