走进 Rust:Crate、模板
Rust 大约 1378 字Crate
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;
}
阅读 2743 · 发布于 2020-07-14
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb扫描下方二维码关注公众号和小程序↓↓↓
昵称:
随便看看
换一批
-
Elasticsearch 使用 filter 和 range 过滤器搜索阅读 3164
-
Spring Boot 使用 MongoTemplate 操作 MongoDB阅读 23445
-
Redis 实现统计在线人数、每日签到功能阅读 5621
-
Docker 运行结束后自动销毁容器阅读 1817
-
JavaScript 格式化时间为音视频时间阅读 186
-
Linux 命令之 Vim 显示行号阅读 2145
-
Windows 使用 netsh 实现端口转发阅读 1525
-
Spring Boot JPA @Lock TransactionRequiredException阅读 854
-
移动端 input 输入框使软键盘回车键变为搜索按钮阅读 4807
-
IDEA 根据 URL 快速定位 Controller 类快捷键阅读 2285