کلاس ها و اشیا در Rust
در این بخش به بررسی کلاس ها و اشیا در Rust می پردازیم، Rust یکی از زبانهای برنامهنویسی مدرن و محبوب است که به خاطر امنیت حافظه، کارایی بالا، و قابلیتهای پیشرفتهاش شناخته شده است. این زبان برای توسعه نرمافزارهای سطح سیستم طراحی شده و اغلب به عنوان جایگزینی برای C و C++ مورد استفاده قرار میگیرد. یکی از سوالاتی که برای برنامهنویسانی که با شیءگرایی آشنا هستند پیش میآید این است که آیا Rust از مفاهیمی مانند کلاسها و اشیا پشتیبانی میکند؟ اگرچه Rust یک زبان کاملاً شیءگرا نیست، اما ابزارهایی قدرتمند مانند ساختارها (structs) و صفات (traits) ارائه میدهد که میتوانند برای پیادهسازی مفاهیم شیءگرایی مورد استفاده قرار گیرند.
در این مقاله، به بررسی کلاسها و اشیا در Rust میپردازیم و نشان میدهیم که چگونه میتوان مفاهیم شیءگرایی را با استفاده از ساختارهای موجود در این زبان پیادهسازی کرد. همچنین مثالهایی از کدنویسی ارائه میدهیم تا درک این مفاهیم سادهتر شود. اگر شما نیز به دنبال یادگیری عمیق Rust هستید و میخواهید بدانید که چگونه از ویژگیهای آن برای طراحی سیستمهای شیءگرا استفاده کنید، این مقاله برای شماست.
کلاسها در Rust: چرا و چگونه؟
Rust به صورت مستقیم از کلاسها (مانند زبانهایی نظیر Java یا C++) پشتیبانی نمیکند. به جای آن، از ساختارها (structs) برای تعریف دادهها و از صفات (traits) برای پیادهسازی رفتار استفاده میکند. این ترکیب به توسعهدهندگان اجازه میدهد تا مفاهیم مشابه کلاسها و اشیا را در Rust پیادهسازی کنند.
ساختارها (Structs) در Rust
ساختارها (structs) در Rust برای تعریف دادهها استفاده میشوند. میتوان آنها را معادل کلاسهای بدون متد در زبانهای دیگر در نظر گرفت. برای تعریف یک struct، از کلمه کلیدی struct
استفاده میکنیم:
در مثال بالا، یک ساختار Rectangle
تعریف کردهایم که دو ویژگی (width
و height
) دارد. این ساختار، مشابه کلاسهایی است که فقط شامل خصوصیات هستند.
افزودن متدها به ساختارها
برای افزودن متدها به ساختارها، از یک بلاک impl استفاده میکنیم. این متدها میتوانند به دادههای ساختار دسترسی داشته باشند.
متد area
مساحت مستطیل را محاسبه میکند و متد can_hold
بررسی میکند که آیا یک مستطیل میتواند داخل دیگری قرار بگیرد.
استفاده از ساختارها
برای استفاده از ساختارها و متدهای آنها، ابتدا باید نمونهای از ساختار ایجاد کنیم:
این برنامه نشان میدهد که چگونه میتوان از ساختارها برای پیادهسازی مفاهیم کلاسها استفاده کرد.
اشیا در Rust: صفات و رفتارها
Rust از صفات (traits) برای تعریف رفتارها استفاده میکند. صفات مشابه رابطها (interfaces) در زبانهای دیگر هستند و به ما اجازه میدهند رفتارهایی را تعریف کنیم که ساختارها باید پیادهسازی کنند.
تعریف یک صفت (Trait)
برای تعریف یک صفت، از کلمه کلیدی trait
استفاده میکنیم. به عنوان مثال، یک صفت برای اشکال هندسی تعریف میکنیم:
این صفت دو متد area
و perimeter
را تعریف میکند که هر ساختاری که این صفت را پیادهسازی کند، باید آنها را ارائه دهد.
پیادهسازی یک صفت
برای پیادهسازی یک صفت برای یک ساختار، از کلمه کلیدی impl
همراه با نام صفت استفاده میکنیم:
در اینجا، ساختار Circle
صفت Shape
را پیادهسازی میکند.
استفاده از صفات
برای استفاده از اشیایی که از یک صفت پیروی میکنند، میتوان از انواع عمومی (generics) استفاده کرد:
این کد اطلاعات مربوط به شکل هندسی را چاپ میکند و نشان میدهد که چگونه میتوان از صفات برای تعریف رفتارها در Rust استفاده کرد.
اگرچه Rust به صورت مستقیم از مفاهیم کلاسها و اشیا پشتیبانی نمیکند، اما با استفاده از ترکیب ساختارها و صفات، میتوان شیءگرایی را به طور موثری پیادهسازی کرد. این ویژگی به Rust کمک میکند تا کارایی و ایمنی را در کنار انعطافپذیری ارائه دهد. استفاده از ساختارها برای تعریف دادهها و صفات برای تعریف رفتارها، امکان ایجاد کدهای قابل فهم و قابل نگهداری را فراهم میآورد.
منابع
- Rust Official Documentation
- The Rust Programming Language
آیا این مطلب برای شما مفید بود ؟