Option

ما قبلاً برخی استفاده‌ها از <Option<T را مشاهده کرده‌ایم. این تایپ یا مقداری از تایپT را ذخیره می‌کند یا هیچ چیزی را ذخیره نمی‌کند. به عنوان مثال، String::find یک <Option<usize را برمی‌گرداند.

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Speaker Notes

This slide should take about 10 minutes.
  • Option به‌طور گسترده‌ای استفاده می‌شود و تنها در کتابخانه استاندارد محدود نمی‌شود.
  • unwrap مقدار موجود در یک Option را برمی‌گرداند یا باعث panic می‌شود. expect مشابه است اما پیامی برای خطا می‌پذیرد.
    • می‌توانید در مواجهه با panic None کنید، اما نمی‌توانید به‌طور “تصادفی” فراموش کنید که None بررسی کنید.
    • استفاده از unwrap/expect در همه‌جا هنگام ساخت سریع چیزی رایج است، اما کد تولیدی معمولاً None را به‌شیوه‌ای مناسب‌تر مدیریت می‌کند.
  • بهینه‌سازی niche به این معناست که <Option<T اغلب اندازه‌ای مشابه با T در حافظه دارد.