3 回答

TA贡献1836条经验 获得超4个赞
从错误消息来看,您似乎正在尝试将string pointer
( *string
) 与实际的string
.
release.Name
是一个*string
(指向一个string
值的指针)""
是一个string
(是一个string
值)
它们是两种不同的类型。所以你不能比较它们。
你可能想做的是 release.Name == nil
当一个指针引用到什么(等于nil
待)试图取消引用你得到第二个错误。所以在你的情况下*release.Name
恐慌,因为事实上release.Name
是nil

TA贡献1873条经验 获得超9个赞
var release github.RepositoryTag
您永远不会为该 var 分配任何值。这就是为什么*release.Name
给你一个“运行时错误”:release.Name
是一个空指针

TA贡献1799条经验 获得超9个赞
根据您的代码,您已声明 var release github.RepositoryTag,但您尚未对其进行初始化。
在结构 RepositoryTag 中,Name 被声明为 *string,它是一个指针,在 release.Name == "" 的情况下,尝试进行字符串比较,这是不正确的,因此“类型不匹配 *string 和 string”错误。
在 *release.Name == "" 的情况下,由于 release 尚未初始化,它会抱怨“无效的内存地址或 nil 指针取消引用”
你需要做两件事,第一次初始化,释放,第二次,检查 release.Name = nil。
- 3 回答
- 0 关注
- 241 浏览
添加回答
举报