走进 Rust:Crate、模板
Rust About 1,378 wordsCrate
src/main.rs
构建成二进制
src/lib.rs
构建成依赖包
Module
Rust中的items
(函数、方法、结构体、枚举、模块和常量)默认都是私有的,父模块中私有的items
不能在子模块中使用,而子module
的私有items
可以在父模块中使用。原因是子模块包装并隐藏了它们的实现细节,但是子模块可以看到定义它们的上下文。
如果模块中的结构体定义为pub
的,其字段也必须指定为pub
,否则将是默认私有的。而且如果结构体有字段是私有的,必须提供初始化结构体函数。
如果模块中的枚举定义为pub
的。其字段默认都为pub
。
mod front_of_house {
pub mod hosting {
pub fn add_to_waitlist() {
println!("add_to_waitlist")
}
fn seat_at_table() {}
}
mod serving {
fn take_order() {}
fn serve_order() {}
fn take_payment() {}
}
}
mod back_of_house {
pub struct Breakfast {
pub toast: String,
seasonal_fruit: String,
}
impl Breakfast {
pub fn summer(toast: &str) -> Breakfast {
Breakfast {
toast: String::from(toast),
seasonal_fruit: String::from("peaches"),
}
}
}
pub enum Appetizer {
Soup,
Salad,
}
}
pub fn eat_at_restaurant() {
// 绝对路径
crate::front_of_house::hosting::add_to_waitlist();
// 相对路径
front_of_house::hosting::add_to_waitlist();
let mut meal = back_of_house::Breakfast::summer("Rye");
meal.toast = String::from("Wheat");
println!("I'd like {} toast please", meal.toast);
let order1 = back_of_house::Appetizer::Soup;
let order2 = back_of_house::Appetizer::Salad;
}
Views: 3,052 · Posted: 2020-07-14
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb/LiteNote扫描下方二维码关注公众号和小程序↓↓↓
Loading...