验证后替换路径中的多个 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
}
我有一条由 /
分隔的路径,并且期望有多个 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
}