我想创建*Person
类型的元素片段。
package main
type Person struct {
Name string
}
func convertRefTypeToType(refPerson *Person) Person {
// is it possible to convert *Person to Person
return Person{}
}
func main() {
personRef := &Person{Name: "Nick"}
person := convertRefTypeToType(personRef)
people := []Person{personRef} // person
}
但有错误:
./refConvert.go:16: cannot use personRef (type *Person) as type Person in array element
是否可以将*Person
类型的元素转换为Person
类型的元素?
这个愿望可能看起来很奇怪,但我的目标函数接受类型*Person
的参数,并且在这个目标函数中我必须创建切片。
答案 0 :(得分:3)
[]Person{}
是Person
的切片,但是,您希望切片指向Person
。
它应该定义为people := []*Person{personRef}
。