我试图弄清楚如何在golang中设置基本端点。我有一个带有效负载的调用并将其添加到列表中(现在在内存中)。以前它只是返回它获得的确切有效载荷。我希望它返回一个随机生成的字符串的新json对象。这就是最初的样子:
在我的repo.go
func RepoCreateActivity(t Activity) Activity {
activities = append(activities, t)
return t
}
这很好用。但是我想用随机生成的字符串返回一个不同的对象,这是我试过的
在我的repo.go中(randomstring函数来自谷歌搜索 - https://siongui.github.io/2015/04/13/go-generate-random-string/)
func RandomString(strlen int) string {
rand.Seed(time.Now().UTC().UnixNano())
const chars = "abcdefghijklmnopqrstuvwxyz0123456789"
result := make([]byte, strlen)
for i := 0; i < strlen; i++ {
result[i] = chars[rand.Intn(len(chars))]
}
return string(result)
}
func RepoCreateActivity(t Activity) ActivityReturn {
activities = append(activities, t)
b := ActivityReturn({Cgid: RandomString(10)})
return b
}
actvitityReturn.go看起来像:
package main
type ActivityReturn struct {
Cgid string `json:"cgid"`
}
我似乎无法做到这一点。我只想要回电话
{ cgid : "random string here" }
。我仍然在学习golang,任何建议都会非常感激。谢谢!
答案 0 :(得分:1)
我认为你可能错误地创建了你的结构。你能尝试一下吗?
func RepoCreateActivity(t Activity) ActivityReturn {
activities = append(activities, t)
b := ActivityReturn{Cgid: RandomString(10)} // remove parens
return b
}
答案 1 :(得分:1)
如果您只是以这种方式担心输出,那么以下方法将起作用:
func RepoCreateActivity(t Activity) string {
activities = append(activities, t)
b := ActivityReturn{Cgid: RandomString(10)}
temp,_:=json.Marshal(b)
return string(temp)
}
请注意,在这种情况下,输出是字符串。