【发布时间】:2017-09-04 07:05:29
【问题描述】:
在 C 语言家族中,我可以在一行中做到这一点:
for(int i = lo, int j = mid+1; i <= mid && j <= hi; i++, j++){
...
}
但是在 Rust 中……我只能这样写:
for i in lo..mid+1 {
let mut j = mid+1;
if j <= hi {
break;
}
...
j += 1;
}
有没有更有效的方法来实现这一点?
使用迭代器适用于上述情况,但是使用迭代器会使某些场合(例如使用算术)变得麻烦,例如
for (int i = 0; i < n; i ++) {
if (a[i] == ...) {
i += 5;
}
}
在 Rust 中,这不起作用。变量i 不会增加 5,而是增加 1:
for i in 0..n {
if a[i] == ... {
i += 5;
}
}
【问题讨论】:
-
谢谢~它有效。 Rust 的 for 循环使用迭代器,这使得像使用算术这样的一些场合有点麻烦。就像
for (int i = 0; i < n; i ++) if (a[i] == ...) i += 5;。在 rust 中,它使用迭代器,因此for i in 0..n{ if a[i] == ... { i+=5; }}不起作用。变量i下一轮不会加5,而是加1...
标签: rust