เครตและรากเครต
โครงสร้างโครงการ
เครตและรากเครต เป็นบทเรียน Learn Rust Coding ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Learn Rust Coding และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Learn Rust Coding มีบทเรียนทั้งหมด 4 บทเรียน
แครตคืออะไร
แครตคือหน่วยที่เล็กที่สุดที่คอมไพเลอร์ Rust ทำงานด้วย มีอยู่สองชนิด ได้แก่ แครตไบนารีที่คอมไพล์เป็นไฟล์ปฏิบัติการ และแครตไลบรารีที่โค้ดอื่นนำไปพึ่งพาได้
ไบนารีกับไลบรารี
แครตไบนารีมีฟังก์ชัน main และสร้างโปรแกรมที่คุณเรียกใช้งานได้ ส่วนแครตไลบรารีไม่มี main แต่เปิดเผยรายการที่นำกลับมาใช้ใหม่ให้แครตอื่น
- รากของไบนารี:
src/main.rs - รากของไลบรารี:
src/lib.rs
รากของแครต
รากของแครตคือไฟล์ซอร์สที่คอมไพเลอร์เริ่มต้นทำงาน ไฟล์นี้อยู่บนสุดของโครงสร้างต้นไม้โมดูล และคีย์เวิร์ด crate ในพาธจะอ้างถึงไฟล์นี้
fn main() {
crate::greet();
}
fn greet() {
println!("hello from the crate root");
}Cargo และแพ็กเกจ
แพ็กเกจคือแครตหนึ่งแครตขึ้นไปที่ Cargo จัดการ โดยมีรายละเอียดระบุไว้ใน Cargo.toml แพ็กเกจหนึ่งมีแครตไลบรารีได้ไม่เกินหนึ่งแครต และมีแครตไบนารีได้กี่แครตก็ได้
Cargo จัดการการสร้าง การทดสอบ และสิ่งที่ต้องพึ่งพา
Cargo.toml ขั้นต่ำ
ไฟล์กำกับจะแจ้งชื่อแพ็กเกจ เวอร์ชัน และสิ่งที่ต้องพึ่งพา Cargo อ่านไฟล์นี้เพื่อทราบวิธีสร้างโครงการของคุณ
[package]— ชื่อ เวอร์ชัน รุ่นภาษา[dependencies]— แครตภายนอก
โครงสร้างโครงการมาตรฐาน
Cargo คาดหวังโครงสร้างตามแบบแผน:
src/main.rs— รากของแครตไบนารีsrc/lib.rs— รากของแครตไลบรารีsrc/bin/— ไบนารีเพิ่มเติมtests/— การทดสอบแบบผสานรวม
การทำตามแบบแผนหมายความว่าไม่ต้องตั้งค่าเพิ่มเติม
โมดูลอยู่ใต้ราก
รากของแครตสามารถประกาศโมดูล ซึ่งจะรวมกันเป็นโครงสร้างต้นไม้โมดูล ทุกสิ่งที่คุณสร้างจะต่อออกจากไฟล์รากไฟล์เดียวนี้
mod utils {
pub fn shout(s: &str) -> String {
s.to_uppercase()
}
}
fn main() {
println!("{}", utils::shout("crate"));
}แบ่งออกเป็นไฟล์
เมื่อรากประกาศ mod utils; พร้อมเครื่องหมายอัฒภาค Cargo จะโหลด src/utils.rs เนื้อหาในไฟล์จะกลายเป็นส่วนเนื้อหาของโมดูลนั้น ทำให้โครงสร้างต้นไม้เดียวกันยังคงอยู่แม้จะแบ่งเป็นหลายไฟล์
ใช้ไลบรารีจากไบนารี
ในแพ็กเกจที่มีทั้ง lib.rs และ main.rs ไบนารีจะอ้างถึงไลบรารีด้วยชื่อแพ็กเกจ ไลบรารีจะเปิดเผยรายการที่เป็น pub ให้ไบนารีนำไปใช้
การแบ่งเช่นนี้ช่วยเก็บตรรกะไว้ในไลบรารี และทำให้จุดเริ่มต้นมีโค้ดบาง
เพิ่มสิ่งที่ต้องพึ่งพา
เรียกใช้ cargo add rand หรือแก้ไข [dependencies] ใน Cargo.toml Cargo จะดาวน์โหลดแครตจาก crates.io และทำให้พร้อมใช้งานผ่าน use
Cargo ยังตรึงเวอร์ชันที่แน่นอนไว้ใน Cargo.lock เพื่อให้การสร้างซ้ำได้ผลเหมือนเดิม
ภาพรวมทั้งหมด
จากเล็กไปใหญ่: โมดูล < แครต < แพ็กเกจ โมดูลจัดระเบียบแครต รากของแครตยึดโครงสร้างต้นไม้ไว้ และแพ็กเกจกับ Cargo ช่วยเชื่อมทุกอย่างเข้าด้วยกัน
ตรวจสอบความเข้าใจอย่างรวดเร็ว
ทดสอบความรู้เรื่องโครงสร้างโครงการของคุณ
ทบทวน
คุณได้เรียนรู้โครงสร้างโครงการแล้ว:
- แครตคือแครตไบนารีหรือแครตไลบรารี
- รากของแครต (
main.rsหรือlib.rs) เป็นจุดยึดของโครงสร้างต้นไม้โมดูล - แพ็กเกจรวมแครตต่าง ๆ และมีรายละเอียดระบุใน
Cargo.toml - Cargo จัดการโครงสร้าง การสร้าง และสิ่งที่ต้องพึ่งพา
คำถามที่พบบ่อย
บทเรียน “เครตและรากเครต” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “เครตและรากเครต” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Learn Rust Coding ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Learn Rust Coding มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “เครตและรากเครต”
โครงสร้างโครงการ คุณปฏิบัติ Learn Rust Coding ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Learn Rust Coding หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Learn Rust Coding บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “เครตและรากเครต” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Learn Rust Coding นี้ได้ไหม
ได้ บทเรียน Learn Rust Coding ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- มอดูลและ mod
- pub และการมองเห็น
- use และเส้นทาง
- เครตและรากเครต