Rust教學
Rust下載和安裝
Rust簡介
Rust Hello World
Rust的特點
Rust註釋
Rust開發環境安裝
Rust文檔
Rust第一個程序
Rust格式化打印
Rust調試
Rust顯示
測試用例:列表
Rust格式化
Rust原語
Rust常量和運算符
Rust元組
Rust數組和切片
Rust自定義類型
Rust結構
Rust可視性
Rust枚舉
Rust常量
Rust變量綁定
Rust變量綁定-可變性
Rust變量綁定-範圍和陰影
Rust變量綁定-聲明
Rust類型轉換
Rust類型轉換 - 字面量
Rust類型轉換-推導
Rust類型轉換 - 別名
Rust表達式
Rust if/else語句
Rust循環
Rust嵌套和標籤
Rust while循環
Rust for和範圍
Rust匹配/match
Rust匹配析構元組
Rust解構枚舉
Rust指針和引用
Rust解構結構
Rust Guards
Rust綁定
Rust if let
Rust while let
Rust函數
Rust方法
Rust閉包
Rust捕捉
Rust作爲輸入參數
Rust匿名類型
Rust輸入函數
Rust作爲輸出參數
Rust可視性
Rust可視性
結構有可見性的一個額外的級別,它們的字段可以是公共或私有的(這是默認值)。這種可見只有當結構是從那裏它被定義的模塊外部訪問重要的,它的目標是信息隱藏(封裝)。
mod my {
// A public struct with public fields
pub struct WhiteBox
{
pub contents: T,
}
// A public struct with private fields
#\[allow(dead\_code)\]
pub struct BlackBox
{ contents: T, } impl
BlackBox
{ // A public constructor pub fn new(contents: T) -> BlackBox
{ BlackBox { contents: contents, } } } } fn main() { // Public structs with public fields can be constructed as usual let white\_box = my::WhiteBox { contents: "public information" }; // and their fields can be normally accessed println!("The white box contains: {}", white\_box.contents); // but public structs with private fields can't be constructed // Error! \`BlackBox\` has private fields //let black\_box = my::BlackBox { contents: "classified information" }; // TODO ^ Try uncommenting this line // However, structs with private fields can still be created using // constructors let \_black\_box = my::BlackBox::new("classified information"); // The private fields of a struct can't be accessed // Error! The \`contents\` field is private //println!("The black box contains: {}", \_black\_box.contents); // TODO ^ Try uncommenting this line }