道歉,如果这是错误的开始。我正在尝试学习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打印出一个人,代码就会编译并运行。我知道我在这里遗漏了一些东西。任何帮助表示赞赏。我意识到这个代码可能没有优化,或者可能有更简单的方法,所以如果有,请随时纠正我。 谢谢
答案 0 :(得分:1)
您已经附加到已分配的10个人的片段中,因此您可能认为您添加的第一个人位于第0个索引但实际上是在10日。
https://play.golang.org/p/bPXsdWk9sa
你可能想要的是这样的东西