我正在学习Rust。我正在尝试计算最大数量的质数列表。为此,我需要vec1
在一个if
块中创建一个vector()并在if
。
我在MATLAB中尝试了具有相同逻辑的代码,并且可以正常工作。
实际代码的简化版本如下所示:
fn main() {
let mut initiate = 1;
let mut whilechecker = 2;
while whilechecker > 0 {
whilechecker = whilechecker - 1;
if initiate == 1 {
let mut vec1 = vec![2];
}
for i in &vec1 {
if *i == 2 {
break;
}
} //for
initiate = 2;
vec1.push(5);
} //while
} //main
应该在中放置一个质数列表vec1
。但是,由于它是简化的代码,因此应进行编译,并给出一个向量(vec1)就足够了。但是编译器说:
vec1
在此范围内找不到价值
在for i in &vec1{
和在vec1.push(5);
。
你可以编译吗?
没有理由进行复杂的if initialize==1
检查。只需将向量的初始化移到while循环之外,因此只需完成一次:
fn main() {
let mut whilechecker = 2;
let mut vec1 = vec![2];
while whilechecker > 0 {
whilechecker = whilechecker - 1;
for i in &vec1 {
if *i == 2 {
break;
}
} //for
vec1.push(5);
} //while
} //main
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句