Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

سرزمین راست: ماجراهای فریس خرچنگ فضایی

فصل ۱: فریس، خرچنگ فضایی و جعبه ابزار گمشده (نصب و سلام دنیا)

📑 فهرست فصل

۱.۱. ماجرا شروع می‌شود!
۱.۱.۱. معرفی فریس
۱.۱.۲. چرا فریس به زبان جدید نیاز دارد؟
۱.۱.۳. صفحه مصور: فریس در ترمینال
۱.۲. جعبه ابزار جادویی: نصب rustup
۱.۲.۱. رفتن به سایت rustup.rs
۱.۲.۲. کلیک روی دکمه دانلود
۱.۲.۳. اجرای فایل دانلودی
۱.۲.۴. انتخاب نصب پیش‌فرض
۱.۲.۵. بررسی نصب
۱.۲.۶. صفحه مصور: ترمینال موفق
۱.۳. اولین جمله‌مان به کامپیوتر: Hello, World
۱.۳.۱. ساختن پوشه ماجرا
۱.۳.۲. باز کردن ویرایشگر
۱.۳.۳. نوشتن کد جادویی
۱.۳.۴. توضیح خط به خط
۱.۳.۵. ذخیره فایل
۱.۳.۶. کامپایل و اجرا
۱.۳.۷. دیدن نتیجه
۱.۴. دستیار باهوش من، کارگو (Cargo)
۱.۴.۱. کارگو چیست؟
۱.۴.۲. ساخت پروژه جدید با کارگو
۱.۴.۳. آشنایی با Cargo.toml
۱.۴.۴. آشنایی با پوشه src
۱.۴.۵. اجرا با cargo run
۱.۴.۶. تفاوت cargo build و cargo run
۱.۴.۷. تمرین تغییر پیام
۱.۵. جمع‌بندی و چالش
۱.۵.۱. مرور کارها
۱.۵.۲. معرفی اصطلاحات
۱.۵.۳. چالش کوچک


۱.۱. ماجرا شروع می‌شود!

۱.۱.۱. معرفی فریس

سلام رفیق! 👋 اسم من فریس است. من یک خرچنگ فضایی بامزه از سیاره‌ی «کراب» هستم! 🦀🚀
سفینه‌ی من چند شب پیش دقیقاً توی حیاط خلوت خانه‌ی شما فرود اومد. (بله، همان صداهای عجیب و غریبی که شنیدی… من بودم!)

حالا سفینه‌ام حسابی لنگ می‌زنه. موتورها خاموش‌اند، صفحه‌ی نقشه‌خوانی سیاه شده و تنها چیزی که سالم مونده، یک کامپیوتر قدیمی زمینی‌ه. 💻
من باید با این کامپیوتر حرف بزنم تا بتونم سفینه‌ام رو تعمیر کنم. ولی مشکل اینجاست که کامپیوترهای زمینی فقط زبان‌های خاصی رو می‌فهمن. یکی از آن زبان‌ها Rust هست.

💡 یک نکته باحال: کلمه‌ی Rust توی انگلیسی یعنی «زنگ‌زده». ولی اصلاً نترس! این زبان نه زنگ زده و نه قدیمیه. اتفاقاً یکی از جدیدترین، سریع‌ترین و امن‌ترین زبان‌های دنیاست! ✨

🖼️ پرامپت تصویر:
A cute cartoon space crab with a red shell and big expressive eyes, standing on two legs next to a retro computer monitor. The screen shows glowing green text: "Earth, I am here!". Background: slightly messy spaceship interior with a round window showing a starry sky. Style: vibrant children's book illustration, soft lighting, friendly and inviting


۱.۱.۲. چرا فریس به زبان جدید نیاز دارد؟

شاید بپرسی: «مگه کامپیوترها فارسی بلد نیستن؟» 😄
نه دوست من! کامپیوترها فقط صفر و یک می‌فهمن. ما انسان‌ها هم که نمی‌تونیم با صفر و یک حرف بزنیم! برای همین، مهندسا زبان‌های برنامه‌نویسی رو ساختن تا پلی باشن بین حرف‌های ما و زبان کامپیوتر.

Rust یکی از بهترین این پل‌هاست، و یک چیز خیلی خاص دارد: بهت اجازه می‌دهد مثل یک جادوگر، ببینی داخل کامپیوتر چه خبر است:

  • ⚡ خیلی سریع است – می‌توانی بازی، ربات و حتی موشک بسازی!
  • 🛡️ خیلی امن است – اجازه نمی‌دهد برنامه‌ات یکدفعه قفل کند یا بترکد.
  • 🔍 بهت یاد می‌دهد کامپیوتر واقعاً چطور کار می‌کند (حافظه، داده‌ها و جادوی پنهان).

شرکت‌های بزرگ مثل گوگل، مایکروسافت و حتی سازنده‌های بازی از Rust استفاده می‌کنند. اما جذاب‌ترین بخش این است: Rust به تو کمک می‌کند تا یک جادوگر کامپیوتر بشوی – بفهمی زیر صفحه چه می‌گذرد، نه فقط چطور چند خط کد بنویسی.

من خودم توی سفرهای فضایی‌ام فقط از Rust استفاده می‌کنم تا سفینه‌ام سالم بمونه و تو فضا سرگردون نشم! 🌌

🖼️ پرامپت تصویر:
Flat vector illustration of a laptop screen showing a split view: left side zeros and ones, right side colorful code blocks. A small friendly crab mascot sits on the keyboard pointing at the code. Background: simple desk with a coffee mug, notebook, and a tiny toy rocket. Style: clean, bright, educational, children's book


۱.۱.۳. صفحه مصور: فریس در ترمینال

🖼️ پرامپت تصویر:
Wide cartoon scene showing Ferris the red crab sitting in front of a dark terminal screen, typing with his claws. Glowing code lines reflect on his shell. Floating around him are tiny cartoon spaceships, stars, and gears. Bottom text area reserved for caption. Style: whimsical, colorful, high-quality children's book illustration, cinematic lighting

👨‍👩‍👧 نکته برای والدین و مربیان
این فصل نصب 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 رو بزن. صفحه‌ای میاد که شبیه اینه:

🖼️ پرامپت تصویر:
Close-up illustration of a laptop screen displaying the rustup.rs homepage. A large, inviting blue "Download" button is visible. A tiny cartoon crab logo peeks from the corner of the browser window. Background: clean, minimal desk setup with soft pastel lighting. Style: modern educational illustration, clear UI focus

۱.۲.۲. کلیک روی دکمه دانلود

روی دکمه‌ی آبی بزرگ که نوشته 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

اگر هر دو دستور یک شماره نسخه نشون دادن، یعنی جعبه‌ابزار جادویی آماده‌ی کاره! 🛠️✨

🖼️ پرامپت تصویر:
Terminal window with dark background and bright green success text "Rust is installed now. Great!". Next to the screen, Ferris the crab is doing a happy little dance, holding a tiny wrench. Desk has a small lamp and a notebook. Style: cheerful, cartoon, educational, vibrant colors


۱.۳. اولین جمله‌مان به کامپیوتر: Hello, World

حالا که جعبه‌ابزار رو داریم، بیا اولین جمله‌مون رو به کامپیوتر بگیم. قراره بنویسیم:
زمین، من اینجام!

۱.۳.۱. ساختن پوشه ماجرا

یک پوشه‌ی جدید روی کامپیوترت بساز به اسم majara. اینجا خونه‌ی همه‌ی برنامه‌های ما تو این کتاب می‌شه.
می‌تونی با موس بسازیش، یا توی ترمینال این دو تا دستور رو بزن:

mkdir majara
cd majara

(دستور mkdir یعنی «پوشه بساز» و cd یعنی «برو تو این پوشه».)

۱.۳.۲. باز کردن ویرایشگر

ما به یک دفترچه‌ی جادویی نیاز داریم تا کدهامون رو توش بنویسیم. می‌تونی از Notepad (ویندوز) یا TextEdit (مک) استفاده کنی، ولی خیلی بهتره یک ویرایشگر مخصوص نصب کنی. پیشنهاد من VS Code هست (رایگان و عالی).
از سایت code.visualstudio.com دانلودش کن. بعد از نصب، بازش کن و پوشه‌ی majara رو باز کن (File → Open Folder).

🖼️ پرامپت تصویر:
Illustration of a child's hand clicking "Open Folder" in VS Code interface. The folder name "majara" is highlighted in blue. Ferris the crab peeks curiously from behind the monitor. Style: semi-realistic cartoon, warm lighting, educational

۱.۳.۳. نوشتن کد جادویی

توی 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 خودت رو نوشتی و اجرا کردی. فریس از دیدن این پیام کلی ذوق کرده!

🧠 گاهی بعضی چیزها سخت است، و این اشکالی ندارد!
شاید اولین باری که کامپایلر را اجرا کردی، همه‌چیز برایت روشن نبود. نگران نباش – این طبیعی است. حتی برنامه‌نویس‌های حرفه‌ای هم روزی از همین نقطه شروع کردند. مهم این است که اولین قدم را برداشتی. 🚀

🖼️ پرامپت تصویر:
Ferris the crab jumping joyfully in front of a terminal screen that displays "زمین، من اینجام!". Colorful confetti and tiny stars float around. Background: cozy desk with a mug and notebook. Style: vibrant, celebratory children's book illustration, high energy


۱.۴. دستیار باهوش من، کارگو (Cargo)

تا اینجا برنامه رو دستی با rustc ساختیم. ولی برای پروژه‌های بزرگ‌تر، به یک دستیار باهوش نیاز داریم که کارهای تکراری رو خودش انجام بده. اسمش کارگو (Cargo) هست. 📦🤖

۱.۴.۱. کارگو چیست؟

کارگو سه کار مهم برامون انجام می‌ده: ۱. ساختار پروژه رو می‌سازه (پوشه‌ها و فایل‌های اولیه).
۲. وابستگی‌ها رو مدیریت می‌کنه (کتابخانه‌هایی که بقیه نوشتن).
۳. برنامه رو راحت می‌سازه و اجرا می‌کنه (با یک دستور ساده!).

۱.۴.۲. ساخت پروژه جدید با کارگو

بیا یک پروژه‌ی جدید بسازیم. برو تو یک پوشه‌ی تمیز (مثلاً دسکتاپ) و توی ترمینال بنویس:

cargo new hello_ferris
cd hello_ferris

کارگو یک پوشه به اسم hello_ferris ساخته که داخلش این چیزهاست:

hello_ferris/
├── Cargo.toml
├── src/
│   └── main.rs
└── .gitignore

(فعلاً نگران .gitignore نباش؛ بعداً یاد می‌گیری.)

🖼️ پرامپت تصویر:
Clean infographic-style illustration showing a folder tree: hello_ferris/ containing Cargo.toml and src/main.rs highlighted in bright colors. Ferris the crab stands beside it pointing like a tour guide. Style: modern, educational, vector-based

۱.۴.۳. آشنایی با 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!

سریع و آسان، درسته؟ 😎

🖼️ پرامپت تصویر:
Cartoon illustration of Ferris the crab pressing a big green button labeled "cargo run". Next to him, a terminal screen pops up showing "Hello, world!". Speed lines and sparkles emphasize quick action. Style: fun, dynamic, children's book

۱.۴.۶. تفاوت 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!("من فریس هستم. 🦀");
}

ببین چه اتفاقی می‌افته.

اگر تونستی اینا رو انجام بدی، یعنی کاملاً آماده‌ی فصل بعدی! توی فصل بعد با هم یک بازی «عدد گمشده» می‌سازیم که کامپیوتر یک عدد انتخاب می‌کنه و تو باید حدس بزنی. هیجان‌انگیزه، نه؟ 😉

💬 به یاد داشته باش: هر برنامه‌نویس بزرگی، روزی از همین «سلام دنیا» شروع کرده. تو الان اولین قدم رو برداشتی! 🚀

🖼️ پرامپت تصویر:
Child sitting at a desk looking happily at a computer terminal with a big green checkmark on screen. Ferris the crab stands on the desk giving a thumbs up. Floating text "Good luck!" in playful font above. Style: encouraging, bright, cartoon children's book illustration