ساختار‌ تاپل‌ها

اگر نام فیلدها بی‌اهمیت هستند، می‌توانید از ساختار tuple استفاده کنید:

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

این اغلب برایsingle-field wrapper (که newtypes نامیده می‌شوند) استفاده می‌شود:

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Speaker Notes

This slide should take about 10 minutes.
  • Newtypes یک راه مناسب برای رمزگذاری اطلاعات اضافی در مورد مقدار در یک نوع اولیه (primitive type) است، به عنوان مثال:
    • این عدد در برخی واحدها اندازه گیری می‌شود: Newtons در مثال بالا.
    • مقدار زمانی که ایجاد شد مقداری اعتبارسنجی را دریافت کرد، بنابراین دیگر لازم نیست در هر بار استفاده دوباره آن را تأیید کنید: PhoneNumber(String) یا OddNumber(u32).
  • نحوه افزودن مقدار f64 به نوع Newtons را با دسترسی به single field در نوع جدید نشان دهید.
    • Rust معمولاً چیزهای غیر واضح را دوست ندارد، مانند automatic unwrapping یا به‌عنوان‌مثال استفاده از booleanها به عنوان اعداد صحیح.
    • مبحث Operator overloading در روز سوم مورد بحث قرار می گیرد (generics).
  • این مثال، اشاره ظریفی به شکست مدارگَرد آب‌و‌هوای مریخ است.