for-loop - 在 golang 中写 while (for) 的更好方法

标签 for-loop go while-loop

我正在研究一个 while 循环,它是 Go 中的一个 for,如下面的代码

ele = path.Dir(str)
for ele != "." {
    functionA()
    ele = path.Dir(ele)
    if ele == "." {
        functionA()
        functionB()
    }
}

在上面的代码中,您可以看到我根据 while (for) 中的条件调用了 functionA 两次

有没有更好更简洁的方法来做到这一点?

最佳答案

这是执行相同任务的稍微不同的方式。

更新:更新了答案以反射(reflect)新要求。

ele := path.Dir(str)
if ele == "." {
    return
}
for ele != "." {
    functionA()
    ele = path.Dir(ele)
}
functionA()
functionB()

Playground :https://play.golang.org/p/KbIH7s45aFR

关于for-loop - 在 golang 中写 while (for) 的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51622033/

相关文章:

r - 如何从两个列表中获取每个组合?

java - 在 while 循环中使用日历?

java - 我如何返回到之前的菜单?

java - 为什么我可以在循环中创建多个同名实例?

javascript - 如何在javascript中遍历对象中的所有对象

ios - For-in 循环要求 '[UserVehicles]?' 符合 'Sequence' ;你的意思是解开可选的吗? swift

go - 在解码字段的 JSON 内容时打印结构字段标签?

xml - 如何在 Go 中解码具有多个项目的简单 xml?

json - golang GET请求运行时json类型错误

linux - 虽然 shell 脚本中的循环说 [ : too many arguments