Golang - 创建结构体数组?

3

如何创建一个带有用户输入的结构体数组?

我正在尝试创建一个循环,从用户那里获取结构体输入,并将其添加到一个结构体数组中。

package main

import "fmt"

type person struct {
    name string
    age  int
}

var n int
var p person
var list []person

func main() {
    //Enter your code here. Read input from STDIN. Print output to STDOUT
    fmt.Scanln(&n)
    for i := 0; i < n; i++ {
        var namez string
        var numberz int
        fmt.Scanln(&namez)
        fmt.Scanln(&numberz)
        list[i] = person{name: namez, age: numberz}

    }

}

我也建议您在此处添加错误和其他可能有用的内容。 - Yuvraj Jaiswal
1个回答

5
你在这里使用了一个切片而不是数组,所以你需要将元素附加到该切片。 var list []person 是一个切片。
例如:切片
package main

import "fmt"

type person struct {
    name string
    age  int
}

var n int
var p person
var list []person

func main() {
    //Enter your code here. Read input from STDIN. Print output to STDOUT
    fmt.Scanln(&n)
    for i := 0; i < n; i++ {
        var namez string
        var numberz int
        fmt.Scanln(&namez)
        fmt.Scanln(&numberz)
        list = append(list, person{name: namez, age: numberz})

    }

}

你也可以使用数组,但需要初始化数组的元素数量。

更多信息请参见:https://go.dev/blog/slices-intro


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接