猿问

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

我想创建类型的元素切片*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

是否可以将 type*Person元素转换为 type元素Person?这种愿望可能看起来很奇怪,但我的目标函数接受类型参数,*Person并且在此目标函数中我必须创建切片。


慕沐林林
浏览 151回答 1
1回答

白板的微信

[]Person{}是 的切片Person,但是,您希望拥有指向Person. 它应该被定义为people := []*Person{personRef}。
随时随地看视频慕课网APP

相关分类

Go
我要回答