سرزمین راست: ماجراهای فریس خرچنگ فضایی
فصل ۱: فریس، خرچنگ فضایی و جعبه ابزار گمشده (نصب و سلام دنیا)
📑 فهرست فصل
۱.۱. ماجرا شروع میشود!
۱.۱.۱. معرفی فریس
۱.۱.۲. چرا فریس به زبان جدید نیاز دارد؟
۱.۱.۳. صفحه مصور: فریس در ترمینال
۱.۲. جعبه ابزار جادویی: نصب rustup
۱.۲.۱. رفتن به سایت rustup.rs
۱.۲.۲. کلیک روی دکمه دانلود
۱.۲.۳. اجرای فایل دانلودی
۱.۲.۴. انتخاب نصب پیشفرض
۱.۲.۵. بررسی نصب
۱.۲.۶. صفحه مصور: ترمینال موفق
۱.۳. اولین جملهمان به کامپیوتر: Hello, World
۱.۳.۱. ساختن پوشه ماجرا
۱.۳.۲. باز کردن ویرایشگر
۱.۳.۳. نوشتن کد جادویی
۱.۳.۴. توضیح خط به خط
۱.۳.۵. ذخیره فایل
۱.۳.۶. کامپایل و اجرا
۱.۳.۷. دیدن نتیجه
۱.۴. دستیار باهوش من، کارگو (Cargo)
۱.۴.۱. کارگو چیست؟
۱.۴.۲. ساخت پروژه جدید با کارگو
۱.۴.۳. آشنایی با Cargo.toml
۱.۴.۴. آشنایی با پوشه src
۱.۴.۵. اجرا با cargo run
۱.۴.۶. تفاوت cargo build و cargo run
۱.۴.۷. تمرین تغییر پیام
۱.۵. جمعبندی و چالش
۱.۵.۱. مرور کارها
۱.۵.۲. معرفی اصطلاحات
۱.۵.۳. چالش کوچک
۱.۱. ماجرا شروع میشود!
۱.۱.۱. معرفی فریس
سلام رفیق! 👋 اسم من فریس است. من یک خرچنگ فضایی بامزه از سیارهی «کراب» هستم! 🦀🚀
سفینهی من چند شب پیش دقیقاً توی حیاط خلوت خانهی شما فرود اومد. (بله، همان صداهای عجیب و غریبی که شنیدی… من بودم!)
حالا سفینهام حسابی لنگ میزنه. موتورها خاموشاند، صفحهی نقشهخوانی سیاه شده و تنها چیزی که سالم مونده، یک کامپیوتر قدیمی زمینیه. 💻
من باید با این کامپیوتر حرف بزنم تا بتونم سفینهام رو تعمیر کنم. ولی مشکل اینجاست که کامپیوترهای زمینی فقط زبانهای خاصی رو میفهمن. یکی از آن زبانها Rust هست.
💡 یک نکته باحال: کلمهی Rust توی انگلیسی یعنی «زنگزده». ولی اصلاً نترس! این زبان نه زنگ زده و نه قدیمیه. اتفاقاً یکی از جدیدترین، سریعترین و امنترین زبانهای دنیاست! ✨
🖼️ پرامپت تصویر:
۱.۱.۲. چرا فریس به زبان جدید نیاز دارد؟
شاید بپرسی: «مگه کامپیوترها فارسی بلد نیستن؟» 😄
نه دوست من! کامپیوترها فقط صفر و یک میفهمن. ما انسانها هم که نمیتونیم با صفر و یک حرف بزنیم! برای همین، مهندسا زبانهای برنامهنویسی رو ساختن تا پلی باشن بین حرفهای ما و زبان کامپیوتر.
Rust یکی از بهترین این پلهاست، و یک چیز خیلی خاص دارد: بهت اجازه میدهد مثل یک جادوگر، ببینی داخل کامپیوتر چه خبر است:
- ⚡ خیلی سریع است – میتوانی بازی، ربات و حتی موشک بسازی!
- 🛡️ خیلی امن است – اجازه نمیدهد برنامهات یکدفعه قفل کند یا بترکد.
- 🔍 بهت یاد میدهد کامپیوتر واقعاً چطور کار میکند (حافظه، دادهها و جادوی پنهان).
شرکتهای بزرگ مثل گوگل، مایکروسافت و حتی سازندههای بازی از Rust استفاده میکنند. اما جذابترین بخش این است: Rust به تو کمک میکند تا یک جادوگر کامپیوتر بشوی – بفهمی زیر صفحه چه میگذرد، نه فقط چطور چند خط کد بنویسی.
من خودم توی سفرهای فضاییام فقط از Rust استفاده میکنم تا سفینهام سالم بمونه و تو فضا سرگردون نشم! 🌌
🖼️ پرامپت تصویر:
۱.۱.۳. صفحه مصور: فریس در ترمینال
🖼️ پرامپت تصویر:
👨👩👧 نکته برای والدین و مربیان
این فصل نصب Rust و نوشتن اولین برنامهی «سلام دنیا» را پوشش میدهد. هدف فقط تجربهی موفق اولین اجرا است – نیازی نیست کودک همهی جزئیات را بفهمد. اگر نصب کمی پیچیده به نظر میرسد، نگران نباشید: آموزش واقعی از فصل ۲ شروع میشود. برای مطالعهی عمیقتر، کتاب رسمی Rust یک فصل رایگان دربارهی نصب دارد:
doc.rust-lang.org/book
۱.۲. جعبه ابزار جادویی: نصب rustup
برای اینکه بتونیم با کامپیوتر به زبان Rust حرف بزنیم، اول باید یک جعبهابزار جادویی به اسم rustup رو نصب کنیم. این جعبه سه تا چیز مهم داره:
🔹 کامپایلر (rustc): مثل یک ربات مترجم، حرفهای ما رو به صفر و یک تبدیل میکنه.
🔹 مدیر بسته (cargo): یک دستیار باهوش که کارهای تکراری رو برامون انجام میده (بعداً باهاش آشنا میشیم).
🔹 مستندات محلی: یک دفترچهی راهنمای کامل که همیشه آفلاین و دم دست ماست.
📌 قبل از شروع: توی این فصل از یک پنجرهی مخصوص به اسم ترمینال استفاده میکنیم. ترمینال یک صفحهی سیاه رنگه که میتونیم دستورهای متنی رو توش بنویسیم و به کامپیوتر بگیم چکار کنه. برای باز کردنش:
- در ویندوز: دکمهی Start رو بزن،
cmdرو تایپ کن و روی Command Prompt کلیک کن.- در مک: کلیدهای
Command + Spaceرو بزن،Terminalرو تایپ کن و Enter بزن.- در لینوکس: کلیدهای
Ctrl + Alt + Tرو همزمان بزن. حالا بریم سراغ نصب!
۱.۲.۱. رفتن به سایت rustup.rs
مرورگرت رو باز کن (کروم، فایرفاکس، هر چی که داری). توی نوار آدرس بالا بنویس:https://rustup.rs
و دکمهی Enter رو بزن. صفحهای میاد که شبیه اینه:
🖼️ پرامپت تصویر:
۱.۲.۲. کلیک روی دکمه دانلود
روی دکمهی آبی بزرگ که نوشته Download کلیک کن. فایل نصب مخصوص ویندوز، مک یا لینوکسات شروع به دانلود میکنه.
📌 نکته برای بزرگترها: توی ویندوز یک فایل rustup-init.exe دانلود میشه. توی مک و لینوکس یک اسکریپت شل دریافت میکنید.
۱.۲.۳. اجرای فایل دانلودی
🪟 ویندوز:
به پوشهی Download برو و روی فایل دوبار کلیک کن. یک پنجرهی سیاه (همان ترمینال) باز میشه.
🍎 مک:
ترمینال رو باز کن. بعد دستورهای زیر رو یکییکی تایپ کن و Enter بزن:
cd Downloads
sh rustup-init
(اگر پیام «اجازه ندارید» آمد، اول دستور chmod +x rustup-init رو بزن و بعد دوباره sh rustup-init رو اجرا کن.)
🐧 لینوکس (مثل اوبونتو):
ترمینال رو با Ctrl+Alt+T باز کن. بعد بنویس:
cd Downloads
chmod +x rustup-init
./rustup-init
۱.۲.۴. انتخاب نصب پیشفرض
بعد از اجرا، یک منوی متنی میاد. فقط عدد 1 رو تایپ کن (همان «نصب پیشفرض») و Enter بزن.
حالا چند ثانیه صبر کن… چند خط سبز رنگ مثل بارون روی صفحه میریزن. وقتی این نوشته رو دیدی:
Rust is installed now. Great!
یعنی کار تمومه! 🎉
۱.۲.۵. بررسی نصب
برای اینکه مطمئن بشی همهچی درست کار میکنه، توی همان ترمینال بنویس:
rustc --version
باید چیزی شبیه این ببینی:
rustc 1.85.0 (4d91de4e4 2025-02-17)
(عددها ممکنه فرق کنن، مهم اینه که ارور قرمز نده!)
همین کار رو برای cargo هم انجام بده:
cargo --version
اگر هر دو دستور یک شماره نسخه نشون دادن، یعنی جعبهابزار جادویی آمادهی کاره! 🛠️✨
🖼️ پرامپت تصویر:
۱.۳. اولین جملهمان به کامپیوتر: Hello, World
حالا که جعبهابزار رو داریم، بیا اولین جملهمون رو به کامپیوتر بگیم. قراره بنویسیم:زمین، من اینجام!
۱.۳.۱. ساختن پوشه ماجرا
یک پوشهی جدید روی کامپیوترت بساز به اسم majara. اینجا خونهی همهی برنامههای ما تو این کتاب میشه.
میتونی با موس بسازیش، یا توی ترمینال این دو تا دستور رو بزن:
mkdir majara
cd majara
(دستور mkdir یعنی «پوشه بساز» و cd یعنی «برو تو این پوشه».)
۱.۳.۲. باز کردن ویرایشگر
ما به یک دفترچهی جادویی نیاز داریم تا کدهامون رو توش بنویسیم. میتونی از Notepad (ویندوز) یا TextEdit (مک) استفاده کنی، ولی خیلی بهتره یک ویرایشگر مخصوص نصب کنی. پیشنهاد من VS Code هست (رایگان و عالی).
از سایت code.visualstudio.com دانلودش کن. بعد از نصب، بازش کن و پوشهی majara رو باز کن (File → Open Folder).
🖼️ پرامپت تصویر:
۱.۳.۳. نوشتن کد جادویی
توی VS Code یک فایل جدید بساز (Ctrl+N) و دقیقاً این کد رو تایپ کن:
fn main() {
println!("زمین، من اینجام!");
}
۱.۳.۴. توضیح خط به خط
بیا هر خط رو با دقت ببینیم:
- خط ۱:
fn main() {fnمخففfunction(تابع) هست.mainاسم خاصیه که کامپایلر میدونه برنامه باید از اینجا شروع بشه. پرانتز()الان خالیه، چون فعلاً اطلاعاتی بهش نمیدیم. - خط ۲:
println!("زمین، من اینجام!");
چهار فاصله (یا یک دکمهی Tab) اول خط یعنی: «این دستور داخل تابعmainقرار داره». علامت!آخرprintlnیعنی این یک طلسم جادویی است که کار خاصی انجام میده (نمایش متن روی صفحه).lnهم یعنی «بعد از چاپ، برو خط بعدی». - خط ۳:
}
آکولاد بسته میشه. یعنی تابع تموم شد.
۱.۳.۵. ذخیره فایل
فایل رو با اسم main.rs توی پوشهی majara ذخیره کن. پسوند .rs مخفف Rust هست.
⚠️ دقت کن: اسم فایل حتماً باید main.rs باشه. Rust وقتی main رو میبینه میفهمه نقطهی شروع برنامه کجاست.
۱.۳.۶. کامپایل و اجرا
حالا باید کدمون رو به صفر و یک تبدیل کنیم. این کار رو کامپایلر انجام میده.
ترمینال رو باز کن (اگر بسته بود) و برو تو پوشهی majara. برای رفتن به پوشه، دستور cd رو به همراه آدرس پوشه بنویس. مثلاً اگر پوشهی majara روی دسکتاپ است:
cd Desktop/majara
(اگر در آدرسها مطمئن نیستی، از پدر یا مادرت کمک بگیر.)
بعد بنویس:
rustc main.rs
چند لحظه صبر کن. اگر ارور نده، یک فایل جدید به اسم main (یا main.exe توی ویندوز) ساخته میشه. حالا اجراش کن:
🪟 ویندوز: main.exe
🍎🐧 مک/لینوکس: ./main
۱.۳.۷. دیدن نتیجه
💥 بوم! توی صفحه نوشته شده:
زمین، من اینجام!
تبریک میگم! 🎉 تو اولین برنامهی Rust خودت رو نوشتی و اجرا کردی. فریس از دیدن این پیام کلی ذوق کرده!
🧠 گاهی بعضی چیزها سخت است، و این اشکالی ندارد!
شاید اولین باری که کامپایلر را اجرا کردی، همهچیز برایت روشن نبود. نگران نباش – این طبیعی است. حتی برنامهنویسهای حرفهای هم روزی از همین نقطه شروع کردند. مهم این است که اولین قدم را برداشتی. 🚀
🖼️ پرامپت تصویر:
۱.۴. دستیار باهوش من، کارگو (Cargo)
تا اینجا برنامه رو دستی با rustc ساختیم. ولی برای پروژههای بزرگتر، به یک دستیار باهوش نیاز داریم که کارهای تکراری رو خودش انجام بده. اسمش کارگو (Cargo) هست. 📦🤖
۱.۴.۱. کارگو چیست؟
کارگو سه کار مهم برامون انجام میده:
۱. ساختار پروژه رو میسازه (پوشهها و فایلهای اولیه).
۲. وابستگیها رو مدیریت میکنه (کتابخانههایی که بقیه نوشتن).
۳. برنامه رو راحت میسازه و اجرا میکنه (با یک دستور ساده!).
۱.۴.۲. ساخت پروژه جدید با کارگو
بیا یک پروژهی جدید بسازیم. برو تو یک پوشهی تمیز (مثلاً دسکتاپ) و توی ترمینال بنویس:
cargo new hello_ferris
cd hello_ferris
کارگو یک پوشه به اسم hello_ferris ساخته که داخلش این چیزهاست:
hello_ferris/
├── Cargo.toml
├── src/
│ └── main.rs
└── .gitignore
(فعلاً نگران .gitignore نباش؛ بعداً یاد میگیری.)
🖼️ پرامپت تصویر:
۱.۴.۳. آشنایی با Cargo.toml
فایل Cargo.toml رو باز کن. چیزی شبیه این میبینی:
[package]
name = "hello_ferris"
version = "0.1.0"
edition = "2021"
[dependencies]
🔹 [package]: کارت شناسایی پروژهات (اسم، نسخه و استاندارد سال).
🔹 [dependencies]: اینجا بعداً اسم کتابخانههای کمکی رو مینویسیم (الان خالیه).
به این فایل «شناسنامهی پروژه» هم میگن. هر پروژهی Rust حتماً یک Cargo.toml داره.
۱.۴.۴. آشنایی با پوشه src
همهی کدهای ما باید برن تو پوشهی src. کارگو خودش یک main.rs آماده گذاشته:
fn main() {
println!("Hello, world!");
}
(بله! دقیقاً همان کدی که خودمون نوشتیم، فقط به انگلیسی.)
۱.۴.۵. اجرا با cargo run
حالا دیگه لازم نیست دستی rustc بزنی. فقط کافیه توی ترمینال (داخل پوشهی hello_ferris) بنویسی:
cargo run
کارگو خودش این کارا رو میکنه:
✅ چک میکنه کد تغییر کرده یا نه.
✅ اگر لازم بود، کامپایل میکنه.
✅ برنامه رو اجرا میکنه.
خروجی رو میبینی:
Hello, world!
سریع و آسان، درسته؟ 😎
🖼️ پرامپت تصویر:
۱.۴.۶. تفاوت cargo build و cargo run
🔹 cargo run = کامپایل + اجرا (وقتی میخوای نتیجه رو همان لحظه ببینی).
🔹 cargo build = فقط کامپایل (یک فایل اجرایی توی target/debug/ میسازه، بدون اجرا).
یک نکته برای وقتی بزرگ شدی: اگر
cargo build --releaseبزنی، یک خروجی بهینهشده و سریعتر میگیری (ولی ساختش طولانیتره). فعلاً نیازی به آن نداریم.
۱.۴.۷. تمرین تغییر پیام
حالا بیا متن رو عوض کنیم. فایل src/main.rs رو باز کن و به جای "Hello, world!" بنویس:
#![allow(unused)]
fn main() {
println!("سلام فریس! خوش اومدی به زمین!");
}
ذخیرهاش کن و دوباره cargo run رو بزن. حالا خروجی اینه:
سلام فریس! خوش اومدی به زمین!
آفرین! تو حالا با کارگو دوست شدی. 🤝
۱.۵. جمعبندی و چالش
۱.۵.۱. مرور کارها
تو این فصل یاد گرفتی:
✅ فریس کیه و چرا به Rust نیاز داریم.
✅ چطور rustup رو نصب کنی.
✅ چطور یک فایل main.rs بنویسی و با rustc کامپایل کنی.
✅ چطور با cargo new پروژه بسازی و با cargo run اجراش کنی.
✅ معنی fn main()، println!، آکولادها و نقطهویرگول رو فهمیدی.
✅ اینکه برنامهنویسی گاهی میتواند بزرگ و چالشبرانگیز به نظر برسد، اما با کمی حوصله به یک جادوگر کامپیوتر تبدیل خواهی شد.
۱.۵.۲. معرفی اصطلاحات
بیا چند کلمهی جدید رو مرور کنیم:
| اصطلاح | معنی ساده | ایموجی |
|---|---|---|
| کامپایلر | رباتی که کد ما رو به صفر و یک ترجمه میکنه | 🤖 |
| کد منبع | همان متنی که ما مینویسیم (مثل main.rs) | 📝 |
| ترمینال | صفحهی سیاهی که دستورات رو توش مینویسیم | ⬛ |
| اجرا (Run) | وقتی برنامه رو روشن میکنیم تا کار کنه | ▶️ |
| طلسم جادویی (ماکرو) | دستوری که با ! میاد و کارهای خاص انجام میده | ✨ |
۱.۵.۳. چالش کوچک
حالا نوبت توئه قهرمان! 🏆 این مأموریتها رو انجام بده:
1️⃣ با دستور cargo new یک پروژه به اسم my_first_program بساز.
2️⃣ توی src/main.rs بنویس: "من دارم برنامهنویسی رو یاد میگیرم!"
3️⃣ با cargo run اجراش کن و نتیجه رو ببین.
4️⃣ 🎁 (اختیاری) دو خط println! پشت سر هم بنویس:
fn main() {
println!("سلام!");
println!("من فریس هستم. 🦀");
}
ببین چه اتفاقی میافته.
اگر تونستی اینا رو انجام بدی، یعنی کاملاً آمادهی فصل بعدی! توی فصل بعد با هم یک بازی «عدد گمشده» میسازیم که کامپیوتر یک عدد انتخاب میکنه و تو باید حدس بزنی. هیجانانگیزه، نه؟ 😉
💬 به یاد داشته باش: هر برنامهنویس بزرگی، روزی از همین «سلام دنیا» شروع کرده. تو الان اولین قدم رو برداشتی! 🚀
🖼️ پرامپت تصویر: