我想要生成质数。代码需要储存所有已生成的质数(以便生成下一个质数),并拥有一些私有函数来帮助和一个公共函数 (generate_next_prime
)。
在Java或C++中,我会编写一个PrimesGen
类,但是在Rust中结构体中不能有私有变量。在Python中,我可能会编写一个PrimesGen
模块,但是在Rust中模块不能有变量。
这段代码可以编译并运行:
struct PrimesGen {
primes_so_far: Vec<i32>,
next_candidate: i32,
}
impl PrimesGen {
pub fn new() -> PrimesGen {
PrimesGen {
primes_so_far: vec![],
next_candidate: 2,
}
}
}
fn main() {
let pg: PrimesGen = PrimesGen::new();
println!("{}", pg.next_candidate);
}
那么我该怎么做呢?