-3
我想创建一个具有免费分类功能的模块InsertSort
和SelectionSort
。根据Sedgwick的实现,我想使用内部exch
和less
辅助函数。我不想让他们暴露,以免任何人不小心使用它们。如何实现这个目标?如何使内部功能非公开?
我想创建一个具有免费分类功能的模块InsertSort
和SelectionSort
。根据Sedgwick的实现,我想使用内部exch
和less
辅助函数。我不想让他们暴露,以免任何人不小心使用它们。如何实现这个目标?如何使内部功能非公开?
正如克里斯说,项目是私人默认:
mod foo {
fn helper() -> u8 { 1 }
pub fn algorithm() -> u8 {
helper() + helper()
}
}
fn main() {
println!("{}", foo::algorithm());
// error: function `helper` is private
// println!("{}", foo::helper());
}
只需写fn
而不是pub fn
。
注意锈病的风格是有'的模块,功能,方法和变量名snake_case'名。 'CamelCase'名称是为结构和枚举而设计的。 – Shepmaster 2015-02-10 23:31:37
另外,我觉得你可能会收到一些downvotes,因为这包括在[Rust书](http://doc.rust-lang.org/book/crates-and-modules.html)中。在提出问题之前,预计会做一些调整工作。如果您想要澄清文档的特定部分,请随时添加示例代码和有关该代码的特定问题。 – Shepmaster 2015-02-11 03:23:05
我仔细阅读了整个防锈指南。但是,与C++相比,可能会误解一些概念。在C++中,没有办法在命名空间中隐藏自由函数,您必须在.cpp中定义函数,而不在头中声明。但是,据我所知在Rust中没有这样的概念作为'header file'。这就是我错过如此明显的事实的原因。 – likern 2015-02-11 09:08:02