دیتا تایپ‌های Generic

می‌توانید از generic‌ ها برای انتزاع نوع فیلد مشخص استفاده کنید:

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Speaker Notes

This slide should take about 10 minutes.
  • سوال: چرا T در عبارت {}<impl<T> Point<T دوبار مشخص شده است؟ آیا این تکراری نیست؟

    • این به این دلیل است که این یک بخش پیاده‌سازی generic برای تایپ generic است. آن‌ها به‌طور مستقل generic هستند.
    • این به این معناست که این متدها برای هر نوع T تعریف شده‌اند.
    • این امکان وجود دارد که { .. }<impl Point<u32 را بنویسید.
      • Point هنوز هم generic است و می‌توانید از <Point<f64 استفاده کنید، اما متدهای موجود در این بلوک تنها برای <Point<u32 در دسترس خواهند بود.
  • سعی کنید یک متغیر جدید با let p = Point { x: 5, y: 10.0 }; بسازید. کد را به‌روزرسانی کنید تا نقاطی که دارای عناصر با تایپ‌های مختلف هستند را مجاز کند، با استفاده از دو تایپ متغیر، مانند T و U.