Golang结构数组不起作用

我是golang的新手。我正在尝试获取数组中的用户详细信息。


这是我的代码


package main


import (

    "fmt"

)


type user struct {

    name  string

    email string

}


func main() {

    u := []user{}

    u[0].name = "Vanaraj"

    fmt.Println(u)

}

如何做到这一点?


提前致谢。任何帮助是极大的赞赏。


富国沪深
浏览 138回答 2
2回答

呼唤远方

它工作正常,但它是空的;尝试访问第一个元素(设置其字段)失败,不是因为数组不工作,而是因为没有第一个元素。用这样的元素初始化它:u := []user{user{name: "foo", email: "foo@bar.com"}}或者在数组中推送新元素:u := []user{}newuser := user{name: "Vanaraj"}u = append(u, newuser)这样它就不再是空的了。

慕哥9229398

首先,您正在创建一个切片,而不是一个数组。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)}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go