我有一个持续运行一段时间的for循环,但我只是将它用作我想要每10分钟运行一次的函数。如何声明这个for循环而不必在循环内部的某处使用'x'
interval := time.Tick(10 * time.Minute)
for x := range interval {
...code that does not use x
}
我已经尝试重构for循环但没有任何结果导致它运行而没有专门使用'x',我知道我只能在循环内部用'x'做一些事情,但我宁愿学习如何正确实现这个for循环然后做一个黑客。
答案 0 :(得分:6)
无论
for {
<-time.After(someTime)
// ...
}
或
interval := time.Tick(someTime)
for ; ; <-interval { // First interval == 0
// ...
}
或
interval := time.Tick(someTime)
for {
<-interval
// ...
}
答案 1 :(得分:5)
您可以使用_
来表示您将忽略的变量:
interval := time.Tick(10 * time.Minute)
for _ = range interval {
...
}
spec说:
空格标识符,由下划线字符_表示,可以 在声明中使用,就像任何其他标识符一样,但声明 没有引入新的约束力。
答案 2 :(得分:0)
如何在不必使用&#39; x&#39;的情况下声明此for循环?在循环内的某个地方
开始go1.4(2014年第4季度),您将能够:
for range interval {
...
}
请参阅go tip 1.4 doc:
从Go 1.4开始,无变量形式现在是合法的 这种模式很少出现,但代码可以更清晰。
更新:此更改严格向后兼容现有的Go程序,但可能需要修改分析Go解析树的工具以接受此新表单,因为
Key
的{{1}}字段现在可能是RangeStmt
。