ویژگی تصویر

کلاس ها و اشیا در Rust

  /  Rust   /  کلاس ها و اشیا در Rust
بنر تبلیغاتی الف
زبان 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 کمک می‌کند تا کارایی و ایمنی را در کنار انعطاف‌پذیری ارائه دهد. استفاده از ساختارها برای تعریف داده‌ها و صفات برای تعریف رفتارها، امکان ایجاد کدهای قابل فهم و قابل نگهداری را فراهم می‌آورد.

منابع

  1. Rust Official Documentation
  2. The Rust Programming Language

آیا این مطلب برای شما مفید بود ؟

خیر
بله
بنر تبلیغاتی ج