验证后替换路径中的多个 id [Golang]

Replace multiple ids in a path after validation [Golang]

我有一条由 / 分隔的路径,并且期望有多个 ID,我想用一个常量值替换它。我面临的问题是,一旦它验证了第一个 id,它就会执行替换并停止。我的假设是我应该在 Golang 中做一些事情(见此 resource - 我知道 Go 中没有这样的结构)并且我尝试使用:

for true {       
      // do something
} 

但还是只替换了第一个id。任何的想法?谢谢

这是我的 Go Playground example 的原始实现

问题是你在第一场比赛后 return 早了。由于您迭代了部分路径,因此您应该将 strings.Replace() 的结果分配给一个变量,并在 for 循环之后将 return 分配给一个变量。分配给 path 而不是 returning,它应该按预期工作。

func SubstituteById(path string, repl string) string {
    ids := strings.Split(path, "/")
    for _, id := range ids {
        if fastuuid.ValidHex128(id) {
            path = strings.Replace(path, id, repl, -1)
        }
    }
    return path
}