【发布时间】:2016-07-17 03:04:56
【问题描述】:
我想在一个拥有切片的结构上创建一个函数。 我的问题是:我想使用指针参数,因为我必须修改我的结构内容。
这是我的代码:
type CampaignIndexMemory []CampaignIndex
type CampaignIndex struct {
Objects []CampaignIndexObject
}
type CampaignIndexObject struct {
//They don't really care about us
}
func (c *CampaignIndexMemory) setCampaignIndex(object CampaignIndex) {
valueSet := false
for i,_ := range c {
if c[i].Objects[0].ID == object.Objects[0].ID {
c[i] = object
valueSet = false
break
}
}
if valueSet {
c = append(c, object)
}
}
我来自 Java 世界(我深表歉意)所以也许我的处理方式是错误的。
使用此代码,编译出错并在我的“对象”属性上显示“未解析的引用”。
我的问题很简单:发生了什么事?
感谢您的帮助、您的时间和您的善意:)
【问题讨论】:
-
"我想在一个拥有切片的结构上创建一个函数。" 但是你的接收者不是
struct,它是*CampaignIndexMemory,即一个指针到CampaignIndexes 的一部分。 -
我刚刚将我的类型转换为结构,它运行良好。谢谢。这是我的新代码: type CampaignIndexMemory struct {indexes []CampaignIndex} 我只需要将我所有的 c[i] 替换为 c.indexes[i]
标签: arrays pointers go struct slice