我正在尝试生成素数。代码需要存储所有生成的素数(生成下一个素数),有一些私有函数可以提供帮助,一个公共函数(generate_next_prime
)。是否可以在Rust中创建一个私有变量?
在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);
}
所以,我该怎么办?
领域的结构是由默认私人。 –
@FrancisGagné我加了我的代码,我做错了什么? – Neo
您与定义'PrimesGen'的文件相同,因此您可以随心所欲地做任何事情。 – loganfsmyth