آموزش جامع برنامه نویسی با Rust [ویدئویی] - آخرین آپدیت

دانلود Learn to Code with Rust [Video]

نکته: ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره: این دوره یک مسیر جامع برای تسلط بر زبان Rust فراهم می‌کند و هم برای مبتدیان و هم برای یادگیرندگان سطح متوسط مناسب است. دوره با راهنمایی شما در فرآیند نصب برای macOS و Windows شروع می‌شود تا مطمئن شویم ابزارهای ضروری مانند Visual Studio Code، Cargo و کامپایلر Rust نصب شده‌اند. پس از ایجاد یک پایه محکم، وارد مفاهیم اصلی Rust از جمله متغیرها، انواع داده‌ها، توابع و جریان کنترل خواهید شد. با پیشروی در دوره، در ویژگی‌های منحصر به فرد Rust مانند مالکیت (Ownership)، قرض گرفتن (Borrowing) و ارجاعات (References) تخصص پیدا می‌کنید تا ایمنی حافظه را بدون نیاز به Garbage Collector تضمین کنید. این دوره مباحث پیشرفته‌تری مانند Structs، Enums و Generics را پوشش می‌دهد و شما را قادر می‌سازد کدهای ماژولار و قابل استفاده مجدد بنویسید. همچنین کتابخانه استاندارد Rust و ابزارهایی مانند crate rand برای اعداد تصادفی و Chrono برای مدیریت تاریخ و زمان را بررسی خواهید کرد. با پروژه‌های عملی و مثال‌های واقعی، در استفاده از Rust برای حل مسائل واقعی اعتماد به نفس پیدا می‌کنید. دوره با تمرکز بر مدیریت خطا، تست‌نویسی و بهینه‌سازی کد به پایان می‌رسد. شما در مدیریت خطاهای Rust استاد می‌شوید، تست‌های واحد (Unit) و یکپارچه‌سازی (Integration) را پیاده‌سازی می‌کنید و یاد می‌گیرید کدهای خود را بهینه کنید تا برای ساخت هر چیزی از ابزارهای ساده تا سیستم‌های پیچیده آماده شوید. نصب و پیکربندی محیط توسعه Rust نوشتن برنامه‌های ایمن، کارآمد و تصادفی با Rust تسلط بر مفاهیم مالکیت، قرض گرفتن و طول عمر (Lifetimes) در Rust استفاده موثر از Structs، Enums، Traits و Generics مدیریت خطاها، مدیریت حافظه و اعمال تست با rstest بهره‌گیری از crateهای خارجی مانند rand، chrono و regex این دوره برای توسعه‌دهندگانی که مشتاق یادگیری Rust هستند، چه در حال انتقال از یک زبان برنامه‌نویسی دیگر باشند و چه از صفر شروع کنند، ایده‌آل است. داشتن تجربه پایه در برنامه‌نویسی توصیه می‌شود اما الزامی نیست. اشتیاق به یادگیری پارادایم‌ها و ابزارهای جدید ضروری است. پوشش جامع از نصب اولیه تا مفاهیم پیشرفته مانند Lifetimes و Traits * مثال‌های عملی و استراتژی‌های تست برای تضمین برنامه‌های قابل اعتماد و با کارایی بالا * بررسی عمیق ایمنی حافظه و مدیریت خطا برای افزایش قابلیت اطمینان و عملکرد کد

سرفصل ها و درس ها

شروع به کار Getting Started

  • مقدمه‌ای بر Rust Intro to Rust

  • کامپایلر Rust The Rust Compiler

  • [macOS] مقدمه‌ای بر ترمینال [macOS] Intro to Terminal

  • [macOS] نصب ابزارهای خط فرمان XCode [macOS] Installing XCode Command Line Tools

  • [macOS] نصب Rust [macOS] Installing Rust

  • [macOS] نصب Visual Studio Code [macOS] Installing Visual Studio Code

  • [macOS] اضافه کردن VSCode به PATH [macOS] Add VSCode to PATH

  • [Windows] مقدمه‌ای بر PowerShell [Windows] Intro to PowerShell

  • [Windows] شناسایی نسخه سیستم عامل ویندوز [Windows] Find Out Your Windows Operating System

  • [Windows] نصب Visual Studio [Windows] Installing Visual Studio

  • [Windows] نصب Rust [Windows] Installing Rust

  • [Windows] نصب Visual Studio Code [Windows] Installing Visual Studio Code

  • به‌روزرسانی یا حذف Rust با rustup Updating or Uninstalling Rust with rustup

  • ایجاد پروژه Rust با Cargo Create Rust Project with Cargo

  • سلام دنیا (Hello World) Hello World

  • کامپایل و اجرای فایل Rust از ترمینال Compiling and Running Rust File from the Terminal

  • فرمت‌بندی با rustfmt و cargo fmt Formatting with rustfmt and cargo fmt

  • دستور cargo build The cargo build Command

  • دستور cargo run The cargo run Command

  • دستور cargo check The cargo check Command

  • کامنت‌ها Comments

  • راه حل پروژه Project Solution

  • مرور بخش Section Review

متغیرها و تغییرپذیری Variables and Mutability

  • مقدمه‌ای بر متغیرها Intro to Variables

  • درون‌یابی با آکولادها Interpolation with Curly Braces

  • آرگومان‌های موقعیتی در println! Positional Arguments to println!

  • استفاده از Underscore در متغیرها Underscore with Variables

  • متغیرهای تغییرناپذیر و تغییرپذیر Immutable and Mutable Variables

  • اندکس کدهای خطای Rust Rust Error Codes Index

  • سایه‌اندازی متغیرها (Variable Shadowing) Variable Shadowing

  • محدوده (Scopes) Scopes

  • ثابت‌ها (Constants) Constants

  • نام‌های مستعار نوع (Type Aliases) Type Aliases

  • دستورات کامپایلر Compiler Directives

  • راه حل پروژه Project Solution

  • مرور بخش Section Review

انواع داده‌ها Data Types

  • مقدمه‌ای بر انواع داده‌ها Intro to Data Types

  • اعداد صحیح (Integers) Integers

  • استفاده از _ به عنوان جداکننده بصری اعداد Using _ as Visual Separator for Numbers

  • انواع usize و isize The usize and isize Types

  • رشته‌ها و رشته‌های خام (Raw Strings) Strings and Raw Strings

  • مقدمه‌ای بر متدها Intro to Methods

  • انواع اعداد اعشاری (Floating Point) Floating Point Types

  • فرمت‌بندی اعداد اعشاری با مشخص‌کننده فرمت Formatting Floats with Format Specifier

  • تغییر نوع با کلمه کلیدی as Casting Types with the as Keyword

  • عملیات ریاضی Math Operations

  • عملگرهای انتساب افزایشی Augmented Assignment Operator

  • مقدمه‌ای بر بولین‌ها Intro to Booleans

  • معکوس کردن بولین با ! Boolean Inversion with !

  • عملگرهای تساوی و نابرابری Equality and Inequality Operators

  • منطق And با && And Logic with &&

  • منطق Or با || Or Logic with

  • نوع کاراکتر (char) The Character Type

  • نوع آرایه (Array) The Array Type

  • خواندن و نوشتن عناصر آرایه Reading and Writing Array Elements

  • تریت Display The Display Trait

  • تریت Debug The Debug Trait

  • ماکروی !dbg The dbg! Macro

  • نوع تاپل (Tuple) The Tuple Type

  • بازه ها و تکرار در بازه (Range Iteration) Ranges and Range Iteration

  • مقدمه‌ای بر ژنریک‌ها Intro to Generics

  • راه حل پروژه Project Solution

  • مرور بخش Section Review

توابع Functions

  • مقدمه‌ای بر توابع Intro to Functions

  • پارامترها و آرگومان‌ها Parameters and Arguments

  • مقادیر بازگشتی صریح Explicit Return Values

  • مقادیر بازگشتی ضمنی Implicit Return Values

  • Unit به عنوان نوع بازگشتی The Unit as a Return Type

  • بلاک‌ها در توابع Blocks in Functions

  • راه حل پروژه Project Solution

  • مرور بخش Section Review

جریان کنترل Control Flow

  • دستور if The if Statement

  • دستور else if The else if Statement

  • دستور else The else Statement

  • اختصاص نتیجه دستور if به متغیر Assigning Result of if Statement to Variable

  • دستور match The match Statement

  • استفاده از Underscore در بازوی Match Underscore in a Match Arm

  • دستور match با مقادیر متعدد و شرط‌ها The match Statement with Multiple Values and Conditionals

  • کلمات کلیدی loop و break The loop and break Keywords

  • کلمه کلیدی continue The continue Keyword

  • حلقه While While Loop

  • بازگشتی (Recursion) Recursion

  • راه حل پروژه Project Solution

  • مرور بخش Section Review

مالکیت (Ownership) Ownership

  • مقدمه‌ای بر مالکیت (Ownership) Intro to Ownership

  • استک و هیپ (Stack and Heap) The Stack and Heap

  • محدوده و مالکیت Scope and Ownership

  • تریت Copy The Copy Trait

  • نوع String The String Type

  • متد push_str در نوع String The push_str Method on a String Type

  • انتقال (Moves) و مالکیت Moves and Ownership

  • تابع drop The drop Function

  • متد clone The clone Method

  • ارجاعات و قرض گرفتن References and Borrowing

  • عملگر Dereference The Dereference Operator

  • مقایسه String، &String، str و &str String, &String, str, and &str

  • تریت Copy با ارجاعات The Copy Trait with References

  • مالکیت و پارامترهای تابع Ownership and Function Parameters

  • پارامترهای تغییرپذیر Mutable Parameters

  • مقادیر بازگشتی - بخش اول Return Values I

  • مقادیر بازگشتی - بخش دوم Return Values II

  • راه حل پروژه Project Solution

  • مرور بخش Section Review

ارجاعات و قرض گرفتن References and Borrowing

  • پارامترهای ارجاع تغییرناپذیر و تغییرپذیر Immutable and Mutable Reference Parameters

  • ارجاعات تغییرناپذیر متعدد Multiple Immutable References

  • محدودیت‌های ارجاع تغییرپذیر Mutable Reference Restrictions

  • مالکیت با ارجاعات تغییرناپذیر و تغییرپذیر Ownership with Immutable and Mutable References

  • ارجاعات معلق (Dangling References) Dangling References

  • مالکیت در آرایه‌ها و تاپل‌ها Ownership with Arrays and Tuples

  • راه حل پروژه Project Solution

  • مرور بخش Section Review

اسلایس‌ها (Slices) Slices

  • مقدمه‌ای بر اسلایس‌ها (Slices) Intro to Slices

  • ایجاد اسلایس رشته از یک String Create a String Slice from a String

  • اسلایس‌های رشته و لیترال‌های رشته String Slices and String Literals

  • طول اسلایس‌های رشته String Slice Lengths

  • میان‌برهای سینتکسی Syntactic Shortcuts

  • اسلایس‌های رشته به عنوان پارامتر تابع String Slices as Function Parameters

  • اسلایس‌های آرایه Array Slices

  • اجبار Deref در اسلایس‌های آرایه Deref Coercion with Array Slices

  • اسلایس‌های آرایه تغییرپذیر Mutable Array Slices

  • راه حل پروژه Project Solution

  • مرور بخش Section Review

استراکت‌ها (Structs) Structs

  • تعریف یک استراکت (Struct) Define a Struct

  • ایجاد یک نمونه از استراکت Create a Struct Instance

  • دسترسی به فیلدهای استراکت Access Struct Fields

  • بازنویسی فیلدهای استراکت Overwrite Struct Fields

  • ایجاد استراکت در یک تابع Create Structs in a Function

  • سینتکس کوتاه برای مقداردهی اولیه فیلد استراکت Struct Field Initialization Shorthand Syntax

  • سینتکس به‌روزرسانی استراکت Struct Update Syntax

  • ارسال استراکت‌ها به تابع Passing Structs into a Function

  • مشتق کردن تریت Debug برای استراکت Deriving Debug Trait for Struct

  • تعریف متدهای استراکت Defining Struct Methods

  • پارامتر self به عنوان نمونه تغییرپذیر استراکت self Parameter as Mutable Struct Instance

  • پارامتر self به عنوان ارجاعات تغییرناپذیر و تغییرپذیر self Parameter as Immutable and Mutable References to Struct Instance

  • متدها با پارامترهای متعدد Methods with Multiple Parameters

  • فراخوانی متدها از متدهای دیگر Calling Methods from Other Methods

  • توابع مرتبط (Associated Functions) Associated Functions

  • بلاک‌های impl متعدد Multiple impl Blocks

  • الگوی Builder Builder Pattern

  • استراکت‌های تاپلی Tuple Structs

  • استراکت‌های Unit-like Unit-Like Structs

  • راه حل پروژه Project Solution

  • مرور بخش Section Review

انام‌ها (Enums) Enums

  • مقدمه‌ای بر انام‌ها (Enums) Intro to Enums

  • انام با مقادیر مرتبط - بخش اول Enum with Associated Values I

  • انام با مقادیر مرتبط - بخش دوم Enum with Associated Values II

  • بحث کوتاهی درباره حافظه انام‌ها A Brief Discussion on Enum Memory

  • واریانت‌های استراکت Struct Variants

  • تودرتو کردن انام‌ها در انام‌ها Nesting Enums in Enums

  • کلمه کلیدی match - بخش اول The match Keyword I

  • کلمه کلیدی match - بخش دوم The match Keyword II

  • کلمه کلیدی match - بخش سوم The match Keyword III

  • تعریف متدها روی انام‌ها Defining Methods on Enums

  • کلمه کلیدی match - بخش چهارم: گرفتن مقادیر متعدد The match Keyword IV - Catching Multiple Values

  • کلمه کلیدی match - بخش پنجم: تطبیق با مقدار دقیق The match Keyword V - match with Exact Value

  • ساختار if let The if let Construct

  • ساختار let else The let else Construct

  • راه حل پروژه Project Solution

  • مرور بخش Section Review

ژنریک‌ها (Generics) Generics

  • مقدمه‌ای بر ژنریک‌ها (Generics) Intro to Generics

  • عملگر Turbofish The Turbofish Operator

  • ژنریک‌های متعدد Multiple Generics

  • ژنریک‌ها در استراکت‌ها Generics in Structs

  • ژنریک‌ها و بلاک‌های impl - بخش اول Generics and impl Blocks I

  • ژنریک‌ها و بلاک‌های impl - بخش دوم Generics and impl Blocks II

  • ژنریک‌ها در انام‌ها Generics in Enums

  • راه حل پروژه Project Solution

  • مرور بخش Section Review

انام‌های Option و Result Option and Result Enums

  • انام Option The Option Enum

  • مثال واقعی از انام Option (متد get در آرایه) Real Example of Option Enum (The get Method on an Array)

  • متدهای unwrap و expect The unwrap and expect Methods

  • کلمه کلیدی match با انام Option The match Keyword with Option Enum

  • بازگرداندن انام Option از یک تابع Returning an Option Enum from a Function

  • واریانت‌های سطح بالای Option Top-Level Option Variants

  • متد unwrap_or The unwrap_or Method

  • ساخت Option از صفر Building Option from Scratch

  • انام Result The Result Enum

  • مثال واقعی از انام Result (متد parse در رشته) Real Example of Result Enum (The parse Method on a String)

  • بازگرداندن انام Result از یک تابع Returning a Result Enum from a Function

  • متدهای Result Result Methods

  • ظرافت‌های متد unwrap در Result Nuances of unwrap Method on Result

  • راه حل پروژه Project Solution

  • مرور بخش Section Review

وکتورها (Vectors) Vectors

  • ایجاد یک وکتور (Vector) Create a Vector

  • افزودن و حذف عناصر Adding and Removing Elements

  • خواندن عناصر وکتور Reading Vector Elements

  • متد get The get Method

  • مالکیت در وکتورها Ownership with Vectors

  • نوشتن در عناصر وکتور Writing Vector Elements

  • ظرفیت وکتور در پشت صحنه Vector Capacity Behind the Scenes

  • راه حل پروژه Project Solution

  • مرور بخش Section Review

ساختار پروژه Project Structure

  • پکیج‌ها و کریت‌ها (Packages and Crates) Packages and Crates

  • مقدمه‌ای بر ماژول‌ها Intro to Modules

  • کلمه کلیدی pub The pub Keyword

  • مزایای فضای نام (Namespaces) The Benefit of Namespaces

  • ماژول به عنوان فایل Module as File

  • ماژول به عنوان پوشه Module as Folder

  • ابهام در ماژول Module Ambiguity

  • انام‌های عمومی، استراکت‌های عمومی و فیلدهای عمومی Public Enums, Public Structs, and Public Fields

  • زیرماژول‌ها (Submodules) Submodules

  • پیشوند crate The crate Prefix

  • کلمه کلیدی use - بخش اول The use Keyword I

  • کلمه کلیدی use - بخش دوم (تداخل نام‌ها) The use Keyword II (Name Conflicts)

  • کلمه کلیدی self The self Keyword

  • کلمه کلیدی super The super Keyword

  • ایجاد نام مستعار با کلمه کلیدی as Create Aliases with the as Keyword

  • استفاده از pub use برای خروجی دادن نام‌ها از زیرماژول‌ها Using pub use to Export Names from Submodules

  • کریت‌های خارجی External Crates

  • کتابخانه استاندارد The Standard Library

  • عملگر Glob The Glob Operator

  • ایجاد کریت کتابخانه‌ای Create Library Crate

  • کریت‌های باینری متعدد Multiple Binary Crates

  • کامنت‌های مستندسازی Documentation Comments

  • بررسی ساختار نمونه ماژول Walking Through Sample Module Structure

  • راه حل پروژه Project Solution

  • مرور بخش Section Review

رشته‌ها (Strings) Strings

  • مرور رشته‌ها (Strings) Review of Strings

  • اتصال رشته‌ها (Concatenation) Concatenation

  • ماکروی !format The format! Macro

  • متدهای رایج رشته (trim, casing, replace, split) Common String Methods (trim, casing, replace, split)

  • دریافت ورودی کاربر با متد read_line Collecting User Input with read_line Method

  • راه حل پروژه Project Solution

  • مرور بخش Section Review

هش‌مپ‌ها (HashMaps) HashMaps

  • ایجاد HashMap با تابع new Create a HashMap with new Function

  • متد remove The remove Method

  • هش‌مپ‌ها و مالکیت HashMaps and Ownership

  • دسترسی به مقدار از طریق کلید Access a Value by Key

  • بازنویسی مقدار با کلید موجود Overwriting a Value with an Existing Key

  • متد entry The entry Method

  • HashSet The HashSet

  • عملیات HashSet HashSet Operations

  • راه حل پروژه Project Solution

  • مرور بخش Section Review

مدیریت خطا Error Handling

  • ماکروی !panic The panic! Macro

  • ماژول process و تابع exit The process Module and the exit Function

  • خطای استاندارد (ماکروی !eprintln) Standard Error (eprintln! Macro)

  • باز کردن یک فایل Opening a File

  • دریافت ورودی از کاربر Asking the User for Input

  • خواندن محتویات فایل Reading the File's Contents

  • انتشار خطاها (Propagating Errors) Propagating Errors

  • درک تعریف مجدد نوع خطا Understanding Error Type Redeclaration

  • عملگر ? The ? Operator

  • تابع مرتبط read_to_string The read_to_string Associated Function

  • استفاده از ? با Option Using ? with Option

  • راه حل پروژه Project Solution

  • مرور بخش Section Review

تریت‌ها (Traits) Traits

  • مقدمه‌ای بر تریت‌ها (Traits) Intro to Traits

  • تعریف یک تریت Defining a Trait

  • پیاده‌سازی تریت برای استراکت - بخش اول Implementing Trait for Struct I

  • پیاده‌سازی تریت برای استراکت - بخش دوم Implementing Trait for Struct II

  • پیاده‌سازی‌های پیش‌فرض Default Implementations

  • فراخوانی متد تریت از متدی دیگر Calling Trait Method from Another Method

  • تریت‌ها برای محدود کردن پارامترهای تابع Traits for Function Parameter Constraints

  • سینتکس Trait Bound Trait Bound Syntax

  • محدودیت‌های تریت متعدد Multiple Trait Bounds

  • بندهای where where Clauses

  • تریت‌ها به عنوان مقادیر بازگشتی تابع Traits as Function Return Values

  • استفاده از Trait Bounds برای پیاده‌سازی شرطی متدها Trait Bounds to Conditionally Implement Methods

  • پیش‌نمایشی از Trait Objects A Preview of Trait Objects

  • ضرورت حضور تریت در Scope برای استفاده از تعاریف آن Trait Must be In Scope to Use its Definitions

  • انتقال به ساختار پروژه - بخش اول Moving to Project Structure I

  • انتقال به ساختار پروژه - بخش دوم (ماژول‌های متعدد) Moving to Project Structure II (Multiple Modules)

  • ثابت‌های مرتبط در یک تریت Associated Constants in a Trait

  • گترها (Getters) در تریت‌ها Getters in Traits

  • سترها (Setters) در تریت‌ها Setters in Traits

  • سوپر تریت‌ها - بخش اول (ارث‌بری تریت) Supertraits I (Trait Inheritance)

  • تریت‌ها با ژنریک‌ها Traits with Generics

  • پیاده‌سازی تریت Display روی استراکت Implementing the Display Trait on a Struct

  • پیاده‌سازی تریت Display روی انام Implementing the Display Trait on an Enum

  • پیاده‌سازی تریت Debug Implementing the Debug Trait

  • متدهای Formatter Formatter Methods

  • پیاده‌سازی تریت Drop Implementing the Drop Trait

  • پیاده‌سازی تریت Clone Implementing the Clone Trait

  • پیاده‌سازی تریت Copy Implementing the Copy Trait

  • پیاده‌سازی تریت PartialEq برای استراکت‌ها Implementing the PartialEq Trait for Structs

  • تعریف تساوی برای انواع مختلف Defining Equality for Different Types

  • پیاده‌سازی تریت PartialEq برای انام‌ها Implementing the PartialEq Trait for Enums

  • پیاده‌سازی تریت Eq Implementing the Eq Trait

  • پیاده‌سازی تریت PartialOrd Implementing the PartialOrd Trait

  • انواع مرتبط - بخش اول (Associated Types) Associated Types I

  • انواع مرتبط - بخش دوم Associated Types II

  • راه حل پروژه Project Solution

  • مرور بخش Section Review

طول عمر (Lifetimes) Lifetimes

  • طول عمرهای مشخص برای مقادیر - بخش اول Concrete Lifetimes for Values I

  • طول عمرهای مشخص برای مقادیر - بخش دوم Concrete Lifetimes for Values II

  • طول عمرهای مشخص برای ارجاعات Concrete Lifetimes for References

  • طول عمرهای غیر لکسیکال (Non Lexical Lifetimes) Non-Lexical Lifetimes

  • طول عمرهای نامعتبر - بخش اول Invalid Lifetimes I

  • طول عمرهای نامعتبر - بخش دوم Invalid Lifetimes II

  • عدم امکان بازگرداندن ارجاع به مقادیر مالکیت‌دار یا پارامترها در توابع Functions Cannot Return References to Owned Values or Parameters

  • ارجاعات به عنوان پارامتر تابع References as Function Parameters

  • مقدمه‌ای بر طول عمرهای ژنریک Intro to Generic Lifetimes

  • طول عمرها و ارجاع‌شونده‌ها Lifetimes and Referents

  • قوانین حذف طول عمر (Elision Rules) - بخش اول Lifetime Elision Rules I

  • پارامترهای متعدد - بخش اول Multiple Parameters I

  • پارامترهای متعدد - بخش دوم Multiple Parameters II

  • قوانین حذف طول عمر - بخش دوم Lifetime Elision Rules II

  • طول عمرها در استراکت‌ها Lifetimes in Structs

  • طول عمرهای متعدد Multiple Lifetimes

  • طول عمر static The static Lifetime

  • راه حل پروژه Project Solution

  • مرور بخش Section Review

کلوژرها (Closures) Closures

  • توابع تودرتو Nested Functions

  • مقدمه‌ای بر کلوژرها (Closures) Intro to Closures

  • میان‌برهای کلوژر Closure Shortcuts

  • سلسله مراتب تریت Fn The Fn Trait Hierarchy

  • کلوژرهایی که ارجاعات تغییرناپذیر را کپچر می‌کنند Closures that Capture Immutable References

  • کلوژرهایی که ارجاعات تغییرپذیر را کپچر می‌کنند Closures that Capture Mutable References

  • کلوژرها با مالکیت Closures with Ownership

  • کلمه کلیدی move The move Keyword

  • متد unwrap_or_else The unwrap_or_else Method

  • تعریف متدی که کلوژر می‌پذیرد - بخش اول (تریت FnOnce) Defining a Method that Accepts a Closure I (FnOnce Trait)

  • متد String.retain The String.retain Method

  • تعریف متدی که کلوژر می‌پذیرد - بخش دوم (تریت FnMut) Defining a Method that Accepts a Closure II (FnMut Trait)

  • تریت Fn The Fn Trait

  • ارسال یک تابع به پارامتر تریت Fn Passing in a Function to Fn Trait Parameter

  • راه حل پروژه Project Solution

  • مرور بخش Section Review

ایتریتورها (Iterators) Iterators

  • تکرار دستی (Manual Iteration) Manual Iteration

  • تریت‌های Iterator و IntoIterator The Iterator and IntoIterator Traits

  • تریت IntoIterator در عمل The IntoIterator Trait in Action

  • اتمام ایتریتور Exhausting the Iterator

  • حلقه for با ایتریتور The for Loop with Iterator

  • چرا ایتریتور می‌تواند تغییرناپذیر باشد Why Iterator Can Be Immutable

  • متد iter The iter Method

  • متد iter_mut The iter_mut Method

  • تکرار در HashMap HashMap Iteration

  • تکرار در رشته (String) String Iteration

  • حل یک مسئله با تکرار Solving a Problem with Iteration

  • متد for_each The for_each Method

  • متد map - بخش اول The map Method I

  • متد collect The collect Method

  • متد map - بخش دوم The map Method II

  • متدهای filter و find - بخش اول The filter and find Methods I

  • متدهای filter و find - بخش دوم The filter and find Methods II

  • متدهای any و all The any and all Methods

  • متد cloned The cloned Method

  • متد filter_map The filter_map Method

  • متد flatten The flatten Method

  • متد flat_map The flat_map Method

  • متد enumerate The enumerate Method

  • متد partition The partition Method

  • متد zip The zip Method

  • متد fold The fold Method

  • متد reduce The reduce Method

  • متدهای sum, product, max, min و count The sum, product, max, min, and count Methods

  • متدهای last, nth, nth_back و position The last, nth, nth_back, and position Methods

  • متدهای take, rev, skip و step_by The take, rev, skip, and step_by Methods

  • متدهای sort و sort_by_key The sort and sort_by_key Methods

  • متد lines The lines Method

  • جمع‌آوری آرگومان‌های خط فرمان - بخش اول Collecting Command Line Arguments I

  • جمع‌آوری آرگومان‌های خط فرمان - بخش دوم Collecting Command Line Arguments II

  • خواندن دایرکتوری Reading Directory

  • تریت FromIterator The FromIterator Trait

  • پروژه: Wordle Project: Wordle

  • راه حل پروژه Project Solution

  • مرور بخش Section Review

تست‌نویسی Testing

  • مقدمه‌ای بر تست‌نویسی Intro to Testing

  • نوشتن یک تست و ماکروی !assert_eq Writing a Test and the assert_eq! Macro

  • ماژول tests و اتریبیوت cfg The tests Module and the cfg Attribute

  • شکست در تست‌ها Test Failures

  • ماکروی !assert The assert! Macro

  • تست نابرابری با ماکروی !assert_ne Testing Inequality with the assert_ne! Macro

  • کریت pretty_assertions The pretty_assertions Crate

  • نیازمندی‌های تریت برای انواع داده در تست Trait Requirements for Types in Testing

  • پیام‌های خطای سفارشی Custom Failure Messages

  • اتریبیوت should_panic The should_panic Attribute

  • استفاده از انام Result در تست‌ها Using Result Enum in Tests

  • اجرای زیرمجموعه‌ای از تست‌ها Running A Subset of Tests

  • نادیده گرفتن تست‌ها Ignoring Tests

  • نمایش خروجی چاپ شده از تست‌های پاس شده Showing Printed Output from Passing Tests

  • اضافه کردن استراکت MovieTheater Adding MovieTheater Struct

  • تزریق وابستگی (Dependency Injection) - بخش اول Dependency Injection I

  • تزریق وابستگی - بخش دوم Dependency Injection II

  • تست‌های یکپارچه‌سازی (Integration Tests) Integration Tests

  • تست‌های مستنداتی (Documentation Tests) Documentation Tests

  • گزینه‌های تست Test Options

  • استفاده از Fixtures با کریت rstest Fixtures with the rstest Crate

  • توسعه تست-محور (TDD) Test-Driven Development

  • راه حل پروژه Project Solution

  • مرور بخش Section Review

اعداد تصادفی با rand Crate Randomness with rand Crate

  • مقدمه‌ای بر rand Crate Intro to the rand Crate

  • استراکت ThreadRng The ThreadRng Struct

  • تصادفی کردن عناصر وکتور با متد shuffle Randomizing Vector Elements with shuffle Method

  • راه حل پروژه Project Solution

  • مرور بخش Section Review

تاریخ و زمان با Chrono Crate Datetimes with Chrono Crate

  • استراکت NaiveDate The NaiveDate Struct

  • استراکت TimeDelta The TimeDelta Struct

  • جمع و تفریق زمان Adding and Subtracting Time

  • استراکت‌های NaiveTime و NaiveDateTime The NaiveTime and NaiveDateTime Structs

  • استراکت DateTime The DateTime Struct

  • تبدیل مناطق زمانی (Timezones) Converting Timezones

  • تابع parse_from_str The parse_from_str Function

  • متد Format The Format Method

  • راه حل پروژه Project Solution

  • مرور بخش Section Review

عبارات منظم با Regex Crate Regular Expressions with Regex Crate

  • مقدمه‌ای بر Regex Crate Intro to the Regex Crate

  • متدهای find و find_iter The Find and Find_iter Methods

  • جستجوی ارقام Searching for Digits

  • کاراکترهای الفبایی و عددی Alphanumeric Characters

  • فضای خالی (Whitespace) Whitespace

  • مرزهای کلمه Word Boundaries

  • متا-کاراکتر نقطه (Dot) The Dot Metacharacter

  • کروشه با کاراکترها Square Brackets with Characters

  • تعداد تطبیق‌ها - بخش اول Number of Matches I

  • تعداد تطبیق‌ها - بخش دوم Number of Matches II

  • منطق Or Or Logic

  • لنگرها (Anchors) Anchors

  • گروه‌های کپچر (Capture Groups) Capture Groups

  • متد replace_all The Replace_all Method

  • راه حل پروژه Project Solution

  • مرور بخش Section Review

اشاره‌گرهای هوشمند: Box Smart Pointers: Box

  • اشاره‌گرهای خام (Raw Pointers) Raw Pointers

  • اشاره‌گرهای خام و کدهای Unsafe Raw Pointers and Unsafe Code

  • اشاره‌گرهای هوشمند Smart Pointers

  • اشاره‌گر هوشمند Box The Box Smart Pointer

  • مقدمه‌ای بر لیست‌های پیوندی (Linked Lists) Intro to Linked Lists

  • تعریف LinkedList Defining the LinkedList

  • ایجاد LinkedList Creating the LinkedList

  • مقایسه Box در برابر ارجاعات معمولی - بخش اول Box vs Regular References I

  • مقایسه Box در برابر ارجاعات معمولی - بخش دوم Box vs Regular References II

  • وکتورها اشاره‌گرهای هوشمند هستند Vectors are Smart Pointers

  • مقدمه‌ای بر درخت‌های جستجوی باینری (BST) Intro to Binary Search Trees

  • ایجاد یک درخت جستجوی باینری Creating a Binary Search Tree

  • تریت‌های Deref و DerefMut - بخش اول The Deref and DerefMut Traits I

  • تریت‌های Deref و DerefMut - بخش دوم The Deref and DerefMut Traits II

  • تریت Drop The Drop Trait

  • اجبارهای Deref Deref Coercions

  • Trait Objects - بخش اول Trait Objects I

  • Trait Objects - بخش دوم: مدیریت خطاهای متعدد Trait Objects II: Handling Multiple Errors

  • انواع خطای سفارشی Custom Error Types

  • راه حل پروژه Project Solution

  • مرور بخش Section Review

تبریکات! Congratulations!

  • تبریکات! Congratulations

نمایش نظرات

آموزش جامع برنامه نویسی با Rust [ویدئویی]
جزییات دوره
66h 46m
435
Packtpub Packtpub
(آخرین آپدیت)
از 5
ندارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Boris Paskhaver Boris Paskhaver

مهندس نرم افزار | مشاور | نویسنده سلام من یک مهندس ، نویسنده و مشاور نرم افزار ساکن شهر نیویورک هستم که از سال 2016 در Udemy تدریس می کنم. من مانند بسیاری از همتایانم رویکرد متعارفی را برای نقش فعلی خود به عنوان یک توسعه دهنده وب دنبال نکردم. پس از فارغ التحصیلی از دانشگاه نیویورک در سال 2013 در رشته اقتصاد بازاریابی و بازاریابی ، من به عنوان تحلیلگر بازرگانی ، مدیر سیستم ها و تحلیلگر داده در شرکت های مختلف از جمله آژانس بازاریابی دیجیتال ، یک شرکت خدمات مالی و یک فناوری بین المللی کار کردم. نیروگاه در یکی از آن نقش ها ، من آنقدر خوش شانس بودم که برای ساخت چندین پروژه با پایتون و جاوا اسکریپت به چالش کشیده شدم. هیچ آموزش رسمی علوم کامپیوتر برای من وجود نداشت. من کاملاً تصادفی کدگذاری را کشف کردم. یک علاقه کاری کوچک به سرعت به یک سرگرمی پرشور آخر هفته تبدیل شد. سرانجام ، من نقش سابق خود را برای اتمام برنامه آکادمی ، یک بوتکمپ سخت افزاری توسعه وب در NYC ، ترک کردم. بقیه تاریخ است. من همیشه مجذوب تقاطع فناوری و آموزش بوده ام ، خصوصاً اینکه با بسیاری از منابع سنتی که مردم برای یادگیری نحوه برنامه نویسی از آنها استفاده می کنند دست و پنجه نرم می کردم. که جزئیات پیچیده را به قطعات کوچک و قابل هضم تقسیم می کند. من دوست دارم بسازم.