[英]How do I make a customized type array of customized type elements in Go?
I'm attempting to create a person with a name and salary, then an array of persons. 我正在尝试创建一个名字和薪水的人,然后是一群人。 The error I get at "data[0] = a" states: "cannot use a (type person) as type *person in assignment."
我在“data [0] = a”处得到的错误表明:“不能使用(类型人)作为类型*人员。” Is there some sort of casting I need to do, as in Java?
我需要做某种类型的转换,就像在Java中一样吗?
package main
import "fmt"
type person struct {
name string
salary float64
}
type people []*person
func main() {
var data = make(people, 10)
var a person
var b person
a.name = "John Smith"
a.salary = 74000
b.name = "Jane Smith"
b.salary = 82000
data[0] = a
data[1] = b
fmt.Print(data)
}
You construct slice of pointers to person
. 你构建一个指向
person
的指针 。 That's why you should take pointer of you a
and b
. 这就是为什么你应该指向你
a
和b
。
package main
import "fmt"
type person struct {
name string
salary float64
}
type people []*person
func main() {
var data = make(people, 10)
var a person
var b person
a.name = "John Smith"
a.salary = 74000
b.name = "Jane Smith"
b.salary = 82000
data[0] = &a
data[1] = &b
fmt.Print(data)
}
Alternative approach is to define a
and b
as pointers to structs. 另一种方法是将
a
和b
定义为结构的指针。
package main
import "fmt"
type person struct {
name string
salary float64
}
type people []*person
func main() {
var data = make(people, 10)
a := &person{}
b := &person{}
a.name = "John Smith"
a.salary = 74000
b.name = "Jane Smith"
b.salary = 82000
data[0] = a
data[1] = b
fmt.Print(data)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.