在许多语言中,如下所示,for循环都可以更改<div class="container">
<div class="container--button simple-button">
<button>Button A</button>
</div>
<div class="container--button multiple-buttons">
<button>Button B</button>
<button>Button C</button>
</div>
</div>
。这个for循环将使每个循环加倍。
i
雨燕有for(int i = 0; i < total; i = i + i){}
和for var i in stride(from: 0, to: total, by: N)
但都不允许我们像上述循环的C样式那样更改for i in 0..<total
。
有没有一种快速的方法来做到这一点? 目标是改变每个循环的速度,而不是像大步前进N那样以恒定的方式。
答案 0 :(得分:1)
您正在寻找sequence
全局函数。相当于您的
for(int i = 0; i < total; i = i + i)
(我假设您的意思是1,而不是0,否则您将永远得到0,是吗?)是
let total = 100 // let's say
let seq = sequence(first:1) {$0 >= 100 ? nil : $0 + $0}
for i in seq {
print(i)
}
输出:
1
2
4
8
16
32
64
128