打印一块结构

时间:2017-10-27 21:31:44

标签: go struct printing slice

道歉,如果这是错误的开始。我正在尝试学习Golang,并正在研究各种概念。我很确定我在这里混淆了一些东西......我正在尝试编写一个简单的程序来创建一个名为“人物”的结构体。它接受名字,姓氏和年龄。我希望用户能够指定他们将进入一个结构人员的人数,然后迭代输入的人数,获取输入并将其存储在人的切片中。然后,我希望能够打印其中一个人物#39;终端,例如第6个(假设输入了许多)。以下是我到目前为止的情况:

package main

import "fmt"

func main() {
    var people int

    type person struct {
        firstName string
        lastName  string
        age       int
    }

    listOfPeople := make([]person, 10)

    fmt.Println("Please enter the number of users you would like to   create:")
    fmt.Scan(&people)

    for i := 0; i < people; i++ {
        var a, b string
        var c int
        fmt.Println("Please enter a person's information: ")
        fmt.Print("First Name: ")
        fmt.Scan(&a)
        fmt.Print("Last Name: ")
        fmt.Scan(&b)
        fmt.Print("Age: ")
        fmt.Scan(&c)
        listOfPeople = append(listOfPeople, person{a, b, c})
    }
    //Print the contents of listOfPeople
}

代码注释&#34;打印listOfPeople的内容是我希望能够打印“#person”的人。我尝试了几件事,但没有任何打印或编译失败。无需尝试从listOfPeople打印出一个人,代码就会编译并运行。我知道我在这里遗漏了一些东西。任何帮助表示赞赏。我意识到这个代码可能没有优化,或者可能有更简单的方法,所以如果有,请随时纠正我。 谢谢

1 个答案:

答案 0 :(得分:1)

您已经附加到已分配的10个人的片段中,因此您可能认为您添加的第一个人位于第0个索引但实际上是在10日。

https://play.golang.org/p/bPXsdWk9sa

你可能想要的是这样的东西

https://play.golang.org/p/kcfzJ4M0Wp