rust学习笔记(6)
生活随笔
收集整理的這篇文章主要介紹了
rust学习笔记(6)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
模塊
定義自己的模塊,方便外部的調(diào)用
mod可以嵌套
可見程度
分為private和public
其中pub可以分為模塊內(nèi)可見和模塊外可見
mod也遵循可見性的要求
// 一個(gè)名為 `my_mod` 的模塊
mod my_mod {
// 模塊中的項(xiàng)默認(rèn)具有私有的可見性
fn private_function() {
pub fn function() {
pub mod nested {
pub fn function() {
使用模塊的時(shí)候,需要使用::訪問
fn main() {
// 模塊機(jī)制消除了相同名字的項(xiàng)之間的歧義。
function();
my_mod::function();
// 公有項(xiàng),包括嵌套模塊內(nèi)的,都可以在父模塊外部訪問。
my_mod::indirect_access();
my_mod::nested::function();
結(jié)構(gòu)體
一個(gè)mod里面的struct默認(rèn)是不可見的,并且它的字段默認(rèn)也是不可見的.
mod my {
// 一個(gè)公有的結(jié)構(gòu)體,帶有一個(gè)公有的字段(類型為泛型 `T`)
pub struct OpenBox<T> {
pub contents: T,
}
// 一個(gè)公有的結(jié)構(gòu)體,帶有一個(gè)私有的字段(類型為泛型 `T`)
#[allow(dead_code)]
pub struct ClosedBox<T> {
contents: T,
}
impl<T> ClosedBox<T> {
// 一個(gè)公有的構(gòu)造器方法
pub fn new(contents: T) -> ClosedBox<T> {
ClosedBox {
contents: contents,
}
}
}
}
use
使用use字段可以使用模塊
// 將 `deeply::nested::function` 路徑綁定到 `other_function`。
use deeply::nested::function as other_function;
self和super
使用不同的關(guān)鍵詞可以訪問不同的級(jí)別的內(nèi)容
像GO的package一樣編寫mod
現(xiàn)在的mod編寫需要在外部套上一個(gè){},如何讓這個(gè)文件里面的全部內(nèi)容屬于一個(gè)mod,這樣可以減少一層嵌套
// 此聲明將會(huì)查找名為 `my.rs` 或 `my/mod.rs` 的文件,并將該文件的內(nèi)容放到
// 此作用域中一個(gè)名為 `my` 的模塊里面。
mod my;
fn function() {
println!("called `function()`");
}
fn main() {
my::function();
function();
my::indirect_access();
my::nested::function();
}
這個(gè)文件應(yīng)該被單獨(dú)放在一個(gè)文件夾下面(文件夾的名字應(yīng)該和mod的名字相同)
總結(jié)
以上是生活随笔為你收集整理的rust学习笔记(6)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 美的置业香港上市 主要业务涵盖三个方面
- 下一篇: [tldr]GO使用正则表达式