مسیر
/
Ruby
Ruby
/
برنامه‌ی درسی
/
متغیر نمونه
مت

متغیر نمونه در Ruby

7 تمرین

درباره‌ی متغیر نمونه

نکات کلیدی:

  • وقتی متد .new یک کلاس برای ساختن یک نمونه‌ی شیء فراخوانی می‌شود، همه‌ی آرگومان‌ها به متد .initialize داده می‌شوند تا وضعیت آن نمونه مقداردهی اولیه شود.
  • اسم متغیرهای نمونه با @ شروع می‌شود.
  • متغیرهای نمونه به‌طور پیش‌فرض nil هستند تا زمانی که به‌صراحت مقداردهی شوند.
  • متغیرهای نمونه به‌طور پیش‌فرض خصوصی‌اند و باید آن‌ها را با getter و setter مدیریت کرد.
class Backpack
  initialize(owner)
    @owner = owner
  end

  def owner
    @owner
  end

  def owner=(new_owner)
    @owner = new_owner
  end
end
  • متدهایی که اسمشان با = تمام می‌شود، در Ruby به‌عنوان setter شناخته می‌شوند و امکان استفاده از نحو انتساب را به شکل «syntactic sugar» فراهم می‌کنند، مثلاً Backpack.new("Sven").owner = "Ayah". به فاصله‌ی بین owner و = دقت کنید، در حالی که اسم واقعی متد owner= است.
  • getterها و setterها را می‌توان با متدهای attr_reader، attr_writer و attr_accessor ساخت:
    • attr_reader: برای نمادهای فهرست‌شده getter می‌سازد
    • attr_writer: برای نمادهای فهرست‌شده setter می‌سازد
    • attr_accessor: برای نمادهای فهرست‌شده هم getter و هم setter می‌سازد
class Backpack
  attr_accessor :owner

  initialize(owner)
    @owner = owner
  end
end
  • چرا به‌جای خود متغیر نمونه به‌طور مستقیم، از getter و setter استفاده کنیم؟
    • اگر در مثال قبلی یک خطای تایپی رخ داده باشد (به این‌ها «typo» می‌گوییم)، مثلاً @ownar، برنامه بی‌صدا شکست می‌خورد و ممکن است یک bug به سیستم وارد شود.
    • getterها و setterها این موضوع را صریح می‌کنند و اگر خطای تایپی رخ دهد، خطا ایجاد می‌کنند

منابع

مقداردهی اولیه‌ی نمونه‌های شیء

متغیرهای نمونه

ویرایش از طریق GitHub این پیوند در پنجره یا زبانه‌ی جدیدی باز می‌شود

متغیر نمونه را یاد بگیرید

تمرین کردن قفل شده است

برای تمرین متغیر نمونه قفل 5 تمرین دیگر را باز کنید