0Pricing
Learn Rust Coding · บทเรียน

มอดูลและ mod

จัดระเบียบโค้ด

มอดูลและ mod เป็นบทเรียน Learn Rust Coding ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Learn Rust Coding และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Learn Rust Coding มีบทเรียนทั้งหมด 4 บทเรียน

เหตุใดจึงต้องใช้โมดูล

เมื่อโปรแกรมเติบโตขึ้น การใส่ทุกอย่างไว้ในไฟล์เดียวจะยุ่งยาก โมดูล ช่วยจัดกลุ่มโค้ดที่เกี่ยวข้อง ควบคุมว่าส่วนใดเปิดให้ใช้งานภายนอก และหลีกเลี่ยงชื่อซ้ำกัน

คีย์เวิร์ด mod ใช้ประกาศโมดูล

การประกาศโมดูลแบบอยู่ในไฟล์

คุณสามารถกำหนดโมดูลไว้ภายในไฟล์ได้โดยตรงด้วย mod name { ... } ทุกอย่างระหว่างวงเล็บปีกกาจะเป็นของโมดูลนั้น

mod greetings {
    fn hello() {
        println!("hello from the module");
    }
}

fn main() {
    println!("module declared above");
}

การเรียกฟังก์ชันของโมดูล

รายการต่าง ๆ ภายในโมดูลจะเป็นส่วนตัวตามค่าเริ่มต้น หากต้องการเรียกจากภายนอก รายการนั้นต้องเป็น pub และคุณต้องอ้างอิงด้วยเส้นทางของโมดูลโดยใช้ ::

mod greetings {
    pub fn hello() {
        println!("hello!");
    }
}

fn main() {
    greetings::hello();
}

โมดูลซ้อนกัน

โมดูลสามารถมีโมดูลอื่นอยู่ภายใน ทำให้เกิดเป็นโครงสร้างต้นไม้ เส้นทางจะแสดงแต่ละระดับโดยคั่นด้วย ::

mod app {
    pub mod ui {
        pub fn draw() {
            println!("drawing ui");
        }
    }
}

fn main() {
    app::ui::draw();
}

โมดูลจัดกลุ่มได้มากกว่าฟังก์ชัน

โมดูลสามารถเก็บฟังก์ชัน โครงสร้าง อีนัม ค่าคงที่ และแม้แต่โมดูลอื่น ๆ ได้ ช่วยให้ชนิดข้อมูลและพฤติกรรมที่เกี่ยวข้องอยู่รวมกัน

mod shapes {
    pub struct Circle {
        pub radius: f64,
    }
    pub const PI: f64 = 3.14159;
}

fn main() {
    let c = shapes::Circle { radius: 2.0 };
    println!("area = {}", shapes::PI * c.radius * c.radius);
}

โครงสร้างต้นไม้ของโมดูล

ทุก crate มีโมดูลราก โมดูลที่คุณประกาศจะสร้างเป็นต้นไม้ต่อจากโมดูลราก เส้นทางใช้บอกว่ารายการหนึ่งอยู่ที่ใด คล้ายกับโฟลเดอร์ในระบบไฟล์

super: โมดูลแม่

ภายในโมดูล super หมายถึงโมดูลแม่ ทำให้โมดูลลูกเรียกใช้สิ่งที่กำหนดไว้ในระดับที่อยู่เหนือขึ้นไปหนึ่งระดับได้

fn top_level() {
    println!("called via super");
}

mod inner {
    pub fn run() {
        super::top_level();
    }
}

fn main() {
    inner::run();
}

self: โมดูลปัจจุบัน

self หมายถึงโมดูลปัจจุบัน โดยส่วนใหญ่ใช้เพื่อระบุให้ชัดเจนว่ารายการหนึ่งอยู่ที่ใดภายในเส้นทาง

mod tools {
    pub fn helper() {
        println!("helper running");
    }
    pub fn run() {
        self::helper();
    }
}

fn main() {
    tools::run();
}

โมดูลในไฟล์แยกต่างหาก

นอกเหนือจากโมดูลที่อยู่ในไฟล์แล้ว mod network; (มีอัฒภาคและไม่มีเนื้อหา) จะบอกให้ Rust โหลดเนื้อหาจาก network.rs หรือ network/mod.rs

นี่คือวิธีที่โปรเจกต์จริงใช้แยกโค้ดออกเป็นหลายไฟล์ โดยยังคงรักษาโครงสร้างต้นไม้ของโมดูลเดียวกัน

ขอบเขตความเป็นส่วนตัว

โมดูลสร้างขอบเขตความเป็นส่วนตัว โมดูลลูกสามารถมองเห็นรายการส่วนตัวของบรรพบุรุษได้ แต่โมดูลแม่ไม่สามารถเข้าถึงรายการส่วนตัวของโมดูลลูก

การห่อหุ้มนี้ช่วยซ่อนรายละเอียดภายใน

mod bank {
    fn secret() -> i32 { 42 }
    pub fn reveal() -> i32 { secret() }
}

fn main() {
    println!("{}", bank::reveal());
}

การจัดระเบียบโปรเจกต์จริง

ใช้โมดูลให้สอดคล้องกับขอบเขตงานของคุณ เช่น auth, db, handlers ทำให้แต่ละโมดูลมุ่งเน้นหน้าที่ของตน เปิดเผยส่วนที่ใช้งานภายนอกเพียงเล็กน้อย และซ่อนส่วนที่เหลือ

ขอบเขตโมดูลที่ชัดเจนทำให้โค้ดเบสขนาดใหญ่ค้นหาและทำความเข้าใจได้ง่าย

ตรวจสอบความเข้าใจอย่างรวดเร็ว

ทดสอบความรู้เกี่ยวกับโมดูล

สรุปทบทวน

คุณได้เรียนรู้การจัดระเบียบโค้ดด้วยโมดูลแล้ว:

  • mod name { ... } ประกาศโมดูลแบบฝังในไฟล์
  • รายการต่าง ๆ จะเป็นส่วนตัวโดยค่าเริ่มต้น ใช้ pub เพื่อเปิดเผยรายการเหล่านั้น
  • พาธใช้ :: เพื่อเดินไปตามโครงสร้างต้นไม้ของโมดูล
  • super, self และ mod name; ใช้สำหรับนำทางและแบ่งโมดูล

คำถามที่พบบ่อย

บทเรียน “มอดูลและ mod” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “มอดูลและ mod” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Learn Rust Coding ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Learn Rust Coding มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “มอดูลและ mod”

จัดระเบียบโค้ด คุณปฏิบัติ Learn Rust Coding ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Learn Rust Coding หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Learn Rust Coding บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “มอดูลและ mod” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Learn Rust Coding นี้ได้ไหม

ได้ บทเรียน Learn Rust Coding ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. มอดูลและ mod
  2. pub และการมองเห็น
  3. use และเส้นทาง
  4. เครตและรากเครต
← กลับไปที่ Learn Rust Coding