stride
といえば、最近 AtCoder 用にパフォーマンス計測しながらコード書いてるんだけど、 for k in 2 ... number / m { sieve[k * m] = true }
っていうコードを for k in stride(from: 2, through: number / 2, by: 2) { sieve[k] = true }
に書き換えたら乗算を減らせて速くなるかと思ったら激遅になっておどろいたんだけど、 Range<Int>
や ClosedRange<Int>
の場合だけ特殊な最適化が行われてる? (edited)+ 2
と比べてインクリメントが速い? (edited)