走进Rust:Crate、模板
Rust 大约 1377 字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;
}
阅读 378 · 发布于 2020-07-14
————        END        ————
扫描下方二维码关注公众号和小程序↓↓↓

昵称:
随便看看
换一批
-
面试题:Java内存结构与内存模型阅读 864
-
Linux vi/vim操作阅读 470
-
OpenResty中的几种防止SQL注入的方法阅读 1546
-
MySQL全文检索FULLTEXT搜索不到内容阅读 811
-
Linux tcpdump保存为pcap文件阅读 257
-
算法每日一题20190708:合并两个有序链表阅读 515
-
Android混淆proguard.cfg阅读 1397
-
Android使用adb命令录制视频阅读 1755
-
Git 提示You asked me to pull without telling me which branch you...阅读 2069
-
Golang字符串与字节数组互相转换阅读 472