Arabic subtitles

Groovy Closures and Objects

Get Embed Code
4 Languages

Showing Revision 1 created 06/09/2016 by Udacity Robot.

  1. الآن وقد أصبحت
    ،الأساسيات في نطاق السير الخاص بنا
  2. دعونا نفحص بعض
    .الميزات المتقدمة للغة Groovy
  3. .الأولى تسمى وظيفة الإغلاق
  4. الإغلاق هو في الأساس أحد الطرق
    .المختلفة للإعلان عن دالة
  5. لكن يجب لهذه الدالة أن تكون قابلة للتجميع
    .والتمرير والتعيين للمتغيرات
  6. نقوم بإعلان الدالة باستخدام
    .أقواس معقوصة مثل هذه
  7. يسمى الإغلاق بهذا الاسم
    لحصر المتغيرات من داخل
  8. .بيئتها المحيطة بها
  9. لذلك ستظل قيمة foo
    .مليون دولار دائمًا
  10. ،دعونا نمضي وننفذ التسمية
    حيث أن myClosure عبارة عن دالة
  11. فيمكننا تسميتها فقط بوضع أقواس
    .بعدها، والآن لنجرب هذا
  12. .رائع، جارٍ التنفيذ
  13. تردنا عبارات print
    من داخل عملية الإغلاق
  14. مع الحفاظ على قيمة foo
    .داخل الإغلاق
  15. ،لكن على عكس الدوال العادية
    .يمكن تمرير عمليات الإغلاق إلى متغيرات مختلفة
  16. لذلك، إذا قمنا بإعلان الشريط وجعله مساويًا إلى
    myClosure ثم نعلن
  17. عن متغير baz آخر
  18. ونجعله مساويًا للشريط، يمكننا استدعاء baz
    .لأن baz الآن أصبح دالة
  19. .وها نحن نتقدم
  20. باستدعاء baz، نحصل على نفس
    .النتيجة التي نحصل عليها عند استدعاء myClosure
  21. حسنًا، دعونا نقوم ببعض الخطوات
    .الصعبة، تمسكوا بقبعاتكم
  22. وهكذا، فإن عمليات الإغلاق لها صيغ مختلفة
    .مع الوسيطات
  23. نضع قائمة مقسمة بفواصل
    للوسيطات الخاصة بنا إلى يسار السهم
  24. ثم ننفذ ما نريد
    .بالوسيطات
  25. أرجو أن يكون من الواضح لكم
    أن هذه الدالة في الواقع
  26. .تضاعف مدخلاتها
  27. الجزء الصعب هو أن نظام Gradle
    .يسمح بالدوال ذات المراتب العليا
  28. المقصود بهذا الدوال التي تأخذ
    .دالة أخرى ضمن مدخلاتها
  29. .لدينا هنا على سبيل المثال applyTwice
  30. الوسيطة الأولى عبارة عن دالة
    والوسيطة الثانية هي مجرد
  31. وسيطة ستمرر من خلال
    .هذه الدالة
  32. ما ترجعه هو دالة
    .طبقت مرتين لتلك الوسيطة
  33. .فلنتحقق من هذا من خلال مثال
  34. إذا حددنا قيمة foo بالعدد 5
    .ثم طبقنا مهمة doubleIt على foo مرتين
  35. .دعونا نرى ما الذي سوف نحصل عليه
  36. قبل التشغيل، دعونا نحاول تخمين
    .النتيجة مسبقًا
  37. حسنًا، دعونا نرى، ضعف 5 يساوي 10
    .وضعف 10 يساوي 20
  38. .رائع
  39. .دعونا نتحدث عن القوائم في Groovy
  40. تسمح لغة Groovy باستخدام صيغ حرفية
    بقوائم فائقة البساطة
  41. .لمعالجة قوائم معقدة للغاية
  42. على سبيل المثال، يمكننا تنفيذ عملية إغلاق
    .لكل عنصر في القائمة
  43. .فقط علينا تعريف عملية الإغلاق الخاصة بنا
  44. ،في هذه الحالة
    .يتم طباعة كل عنصر
  45. ثم نقوم بتسمية myList.each
    .ثم عملية الإغلاق
  46. .لنرى ما الذي سوف يحدث
  47. .ها نحن نرى النتيجة الآن
  48. .جارٍ طباعة كل عنصر ضمن قائمتنا
  49. هناك بعض الأشياء التي يمكننا القيام بها
    لجعل الصيغ التي نستخدمها
  50. .أكثر إحكامًا
  51. أول شيء هو إمكانية
    .تعريف عملية الإغلاق الخاصة بنا في سطر
  52. يرجى الملاحظة أنه لا يوجد
    أي أقواس هنا
  53. .لأن صيغة لغة Groovy ممتازة
  54. كذلك، إذا كانت عملية الإغلاق
    لا تقبل إلا وسيطة واحدة
  55. فيتم بشكل افتراضي
    .تسمية الوسيطة بها
  56. .لنجرب تطبيق هذا
  57. ها نحن قد بدأنا
    .وما توقعناه يحدث
  58. .دعونا نتحدث عن الفئات في Groovy
  59. تتميز لغة Groovy بصيغها المبسطة
    لإنشاء الفئات، ولكن
  60. الفئات نفسها
    .هي في الأساس لغة Java متخفية
  61. .حسنًا، لدينا هنا فئة
  62. تحتوي الفئة على متغير عضو
    .ولها أسلوب خاص
  63. يمكننا إنشاء واحدة جديدة
    كما اعتدنا باستخدام Java
  64. ثم نصدر لها أمرًا
    .بطباعة التهنئة
  65. يمكننا أيضاً تغيير التهنئة
    .ثم إصدار أمر بإعادة طباعتها
  66. تنشئ لغة Groovy تلقائيًا
    getters وsetters
  67. .لكل متغيرات العضو الخاصة بنا
  68. .دعونا نجرب هذا الإجراء
  69. .المخرجات التي حصلنا عليها هي بالضبط كما توقعنا
  70. أولاً، نطبع التهنئة الافتراضية
    ،ثم بعد تخصيص الخيارات
  71. .يتم طباعة التهنئة المخصصة
  72. .يمكن أن يكون لعمليات الإغلاق كائن مندوب
  73. دعونا نتفحص عملية
    .الإغلاق الذي قمنا بإنشائها هنا
  74. تحاول عملية الإغلاق تعيين
    .متغير يسمى تهنئة
  75. لكن لا يتضمن greetingClosure
    .متغيرًا يسمى greeting
  76. في الواقع، المكان الوحيد الذي تم تعريف greeting
    فيه هو داخل هذه الفئة
  77. .كعضو متغير بها
  78. ما يمكننا القيام به هو تعيين مندوب لعملية
    greetingClosure
  79. .كمثيل GroovyGreeter
  80. والآن، يمكن لحالة greeting closure
    الوصول إلى متغيرات العضو و
  81. أساليب مثيل
    .GroovyGreeter الحالي
  82. ،إذا سارت العملية جيدًا
    ،فعند استدعاء greetingClosure
  83. بعد تعيين مندوب لها
    ،في myGroovyGreeter
  84. فيجب أن تتمكن من تعيين التهنئة
    .وطباعتها بشكل صحيح
  85. .دعونا نجرب
  86. .ها نحن بدأنا
  87. لقد غيرنا greeting بنجاح
    داخل مثيل
  88. .GroovyGreeter من داخل وظيفة الإغلاق
  89. تهنئتي بإتمام
    .جولتنا السريعة في Groovy
  90. .أعلم أن هناك الكثير من المواضيع التي يجب تغطيتها
  91. لحسن الحظ هناك الكثير من
    .الموارد لمساعدتنا
  92. لقد قمنا بربط الكثير من الموارد ضمن
    ملاحظات المدرب، وأنصحكم بشدة
  93. بمطالعة هذا العرض التوضيحي مرة أخرى
    .في عينة التعليمات البرمجية الموفرة مع الفئة