Golang,添加项目并使用随机字符串返回新结构

时间:2016-07-06 14:23:09

标签: go

我试图弄清楚如何在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,任何建议都会非常感激。谢谢!

2 个答案:

答案 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)
}

请注意,在这种情况下,输出是字符串。