首页 > 解决方案 > 在 golang 中编写 while (for) 的更好方法

问题描述

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

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

如您所见,在上面的代码中,我根据 while (for) 内的条件调用了 functionA 两次

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

标签: for-loopgowhile-loop

解决方案


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

更新:更新答案以反映新要求。

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

游乐场: https: //play.golang.org/p/KbIH7s45aFR


推荐阅读