- زبان برنامهنویسی راست
- مقدمه
- معرفی
- 1. شروع کار
- 1.1. نصب
- 1.2. برنامه "سلام دنیا!"
- 1.3. آشنایی با Cargo
- 2. برنامهنویسی یک بازی حدس زدن
- 3. مفاهیم رایج برنامهنویسی
- 3.1. متغیرها و تغییرپذیری
- 3.2. انواع داده
- 3.3. توابع
- 3.4. کامنتگذاری
- 3.5. جریان کنترل (کنترل روند اجرا)
- 4. درک مالکیت در راست
- 4.1. مالکیت چیست؟
- 4.2. ارجاعها و قرض گرفتن
- 4.3. نوع Slice
- 5. استفاده از Structها برای ساختاردهی دادههای مرتبط
- 5.1. تعریف و مقداردهی Structها
- 5.2. یک مثال از استفاده از Structها
- 5.3. نحوه نوشتن متدها
- 6. Enums و الگوهای تطبیق
- 6.1. تعریف یک Enum
- 6.2. ساختار match برای کنترل جریان
- 6.3. کنترل جریان کوتاهتر با if let و let else
- 7. مدیریت پروژههای بزرگ با پکیجها، کراتها و ماژولها
- 7.1. پکیجها و کراتها
- 7.2. تعریف ماژولها برای کنترل محدوده و سطح دسترسی
- 7.3. مسیرهای اشاره به یک آیتم در درخت ماژول
- 7.4. وارد کردن مسیرها با کلمه کلیدی use
- 7.5. جداسازی ماژولها در فایلهای مختلف
- 8. مجموعههای رایج داده
- 8.1. ذخیره لیست مقادیر با وکتورها
- 8.2. ذخیره متنهای UTF-8 با رشتهها
- 8.3. ذخیره کلید و مقدار با Hash Map
- 9. مدیریت خطاها
- 9.1. خطاهای غیرقابل بازیابی با panic!
- 9.2. خطاهای قابل بازیابی با Result
- 9.3. باید از panic! استفاده کنیم یا نه؟
- 10. انواع عمومی، Traits و طول عمر
- 10.1. انواع عمومی
- 10.2. Traits: تعریف رفتارهای مشترک
- 10.3. مدیریت ارجاعها با طول عمرها
- 11. نوشتن تستهای خودکار
- 11.1. چگونه تست بنویسیم
- 11.2. کنترل نحوه اجرای تستها
- 11.3. ساختاردهی به تستها
- 12. یک پروژه I/O: ساخت یک برنامه خط فرمان
- 12.1. دریافت آرگومانهای خط فرمان
- 12.2. خواندن از یک فایل
- 12.3. بهبود ماژولار بودن و مدیریت خطاها
- 12.4. توسعه عملکرد کتابخانه با TDD
- 12.5. کار با متغیرهای محیطی
- 12.6. نوشتن پیامهای خطا در STDERR به جای STDOUT
- 13. ویژگیهای زبانهای تابعی: Closureها و Iteratorها
- 13.1. Closureها: توابع ناشناس که محیط خود را ذخیره میکنند
- 13.2. پردازش مجموعهای از آیتمها با Iteratorها
- 13.3. بهبود پروژه I/O
- 13.4. مقایسه کارایی: حلقهها در برابر Iteratorها
- 14. مدیریت همزمانی بدون ترس
- 14.1. اجرای همزمان کد با Threadها
- 14.2. ارسال پیام بین Threadها
- 14.3. همزمانی با استفاده از اشتراک حافظه
- 14.4. گسترش همزمانی با Sync و Send
- 15. الگوها و تطبیق
- 15.1. همه جاهایی که میتوان از الگوها استفاده کرد
- 15.2. Refutability: آیا یک الگو ممکن است مطابقت نداشته باشد؟
- 15.3. قواعد نوشتاری الگوها
- 16. ویژگیهای پیشرفته
- 16.1. راست Unsafe
- 16.2. Traits پیشرفته
- 16.3. انواع پیشرفته
- 16.4. توابع و Closureهای پیشرفته
- 16.5. ماکروها
- 17. پروژه نهایی: ساخت یک سرور وب چندنخی
- 17.1. ساخت یک سرور تکنخی
- 17.2. تبدیل سرور تکنخی به چندنخی
- 17.3. خاموش کردن و پاکسازی صحیح