Go语言错误:无法将 'v' 用作类型 *UserRelationship
Go 语言中出现“无法将 'v'(类型为 UserRelationship)用作类型 *UserRelationship”错误,通常是因为你试图将一个 UserRelationship 类型的变量直接赋值给一个类型为 *UserRelationship 的指针变量。
错误原因
*UserRelationship 表示 UserRelationship 类型的指针,而 'v' 是 UserRelationship 类型的变量。Go 语言不允许直接将变量赋值给指针。
解决方案
- 使用取地址运算符 (&) 获取变量的地址,并将地址赋值给指针变量。
var v UserRelationship
var ptr *UserRelationship = &v
- 使用
new()函数创建一个指针变量,并将变量的值赋给它。
var v UserRelationship
ptr := new(UserRelationship)
*ptr = v
示例
type UserRelationship struct {
// ...
}
func main() {
var v UserRelationship
var ptr *UserRelationship = &v
// 或者
ptr := new(UserRelationship)
*ptr = v
// 现在可以使用 ptr 访问 UserRelationship 结构体
fmt.Println(ptr.Name)
}
注意
如果你的代码中没有使用指针,那么需要检查代码逻辑,确保变量类型与预期一致。
原文地址: https://www.cveoy.top/t/topic/qAkq 著作权归作者所有。请勿转载和采集!