2015-02-10 68 views
-3

我想创建一个具有免费分类功能的模块InsertSortSelectionSort。根据Sedgwick的实现,我想使用内部exchless辅助函数。我不想让他们暴露,以免任何人不小心使用它们。如何实现这个目标?如何使内部功能非公开?

+0

注意锈病的风格是有'的模块,功能,方法和变量名snake_case'名。 'CamelCase'名称是为结构和枚举而设计的。 – Shepmaster 2015-02-10 23:31:37

+2

另外,我觉得你可能会收到一些downvotes,因为这包括在[Rust书](http://doc.rust-lang.org/book/crates-and-modules.html)中。在提出问题之前,预计会做一些调整工作。如果您想要澄清文档的特定部分,请随时添加示例代码和有关该代码的特定问题。 – Shepmaster 2015-02-11 03:23:05

+0

我仔细阅读了整个防锈指南。但是,与C++相比,可能会误解一些概念。在C++中,没有办法在命名空间中隐藏自由函数,您必须在.cpp中定义函数,而不在头中声明。但是,据我所知在Rust中没有这样的概念作为'header file'。这就是我错过如此明显的事实的原因。 – likern 2015-02-11 09:08:02

回答

1

正如克里斯说,项目是私人默认:

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()); 
} 
3

只需写fn而不是pub fn