在golang中将引用类型转换为值类型

时间:2014-12-27 02:55:58

标签: go

我想创建*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的参数,并且在这个目标函数中我必须创建切片。

playground

1 个答案:

答案 0 :(得分:3)

[]Person{}Person的切片,但是,您希望切片指向Person。 它应该定义为people := []*Person{personRef}