มอดูลและ 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- มอดูลและ mod
- pub และการมองเห็น
- use และเส้นทาง
- เครตและรากเครต