Go 语言中出现“无法将 'v'(类型为 UserRelationship)用作类型 *UserRelationship”错误,通常是因为你试图将一个 UserRelationship 类型的变量直接赋值给一个类型为 *UserRelationship 的指针变量。

错误原因

*UserRelationship 表示 UserRelationship 类型的指针,而 'v' 是 UserRelationship 类型的变量。Go 语言不允许直接将变量赋值给指针。

解决方案

  1. 使用取地址运算符 (&) 获取变量的地址,并将地址赋值给指针变量。
var v UserRelationship
var ptr *UserRelationship = &v
  1. 使用 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)
}

注意

如果你的代码中没有使用指针,那么需要检查代码逻辑,确保变量类型与预期一致。

Go语言错误:无法将 'v' 用作类型 *UserRelationship

原文地址: https://www.cveoy.top/t/topic/qAkq 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录