﻿1
00:00:04,440 --> 00:00:05,490
‫أهلا ومرحبا.

2
00:00:05,490 --> 00:00:10,860
‫في هذه المحاضرة ، سننظر في كيفية إرجاع القيم من وظائفنا باستخدام

3
00:00:10,860 --> 00:00:13,800
‫أنواع إرجاع مختلفة وبيان إرجاع.

4
00:00:13,800 --> 00:00:16,260
‫دعونا نتعمق ونرى كيف يعمل هذا.

5
00:00:16,860 --> 00:00:23,820
‫في المحاضرة الأخيرة ، قلنا أنه إذا لم تُرجع الدالة قيمة ، فيجب أن يكون نوع الإرجاع باطلاً

6
00:00:23,820 --> 00:00:26,040
‫، وهو ما فعلناه هنا.

7
00:00:26,040 --> 00:00:34,170
‫ولكن ماذا لو أردنا أن نأخذ وظيفة مثل التحقق بشكل أساسي مما إذا كان ينبغي علينا إعادة تشغيل هذه الوظيفة هنا في

8
00:00:34,500 --> 00:00:40,170
‫عبارة if ، إذا كان بإمكاننا القول أنه يجب الاستدارة بدلاً من ذلك ، فستكون وظيفة

9
00:00:40,170 --> 00:00:42,690
‫أكثر نظافة في نهاية اليوم.

10
00:00:42,690 --> 00:00:44,520
‫فكيف لنا أن نفعل ذلك؟

11
00:00:44,520 --> 00:00:49,530
‫كيف نحقق وظيفة يمكنها إرجاع تعبير منطقي؟

12
00:00:50,040 --> 00:00:55,920
‫حسنًا ، الطريقة التي نقوم بها هي ببساطة باستخدام نوع بدلاً من الفراغ.

13
00:00:55,920 --> 00:01:03,660
‫لذلك إذا أردنا إرجاع تعبير منطقي لأن اكتب bool كما نرغب في المتغير.

14
00:01:03,660 --> 00:01:08,130
‫لكن الشيء الذي يميز الدالة عن المتغير هو حقيقة أننا نضع الأقواس بعدها

15
00:01:08,130 --> 00:01:10,440
‫مما يجعلها دالة وليست متغيرًا.

16
00:01:10,620 --> 00:01:18,510
‫وما يمكننا فعله هو تسميته يجب أن تعود المنصة ثم نضع الأقواس.

17
00:01:18,510 --> 00:01:24,420
‫وفي هذه الحالة ، ليس لدي أي شيء أريد تمريره كوسيطة لهذه الوظيفة ، لذا يمكنني ترك قائمة المعلمات

18
00:01:24,420 --> 00:01:29,250
‫فارغة ، ووضع فاصلة منقوطة في نهاية السطر ثم نسخ هذا السطر بالكامل والانتقال

19
00:01:29,250 --> 00:01:31,620
‫إلى المنصة المتحركة.

20
00:01:31,620 --> 00:01:37,140
‫CP وفي نهاية الملف ، يمكنك وضعه في أي مكان تريده بين أي من الوظائف.

21
00:01:37,140 --> 00:01:39,690
‫فقط تأكد من أنها ليست داخل دالة.

22
00:01:39,840 --> 00:01:41,160
‫سأقوم بلصقه هنا.

23
00:01:41,160 --> 00:01:46,170
‫سأقوم بوضع مسافة بادئة لها وسأضيف الفصل و.

24
00:01:46,850 --> 00:01:48,380
‫يعمل قرار النطاق.

25
00:01:48,380 --> 00:01:56,210
‫لذلك يجب أن تعود النقطتان المنقوطة للمنصة المتحركة إلى النظام الأساسي ، ثم أزل الفاصلة المنقوطة ، وأضف بعض الأقواس بدلاً

26
00:01:56,210 --> 00:01:56,900
‫من ذلك.

27
00:01:57,500 --> 00:02:04,160
‫وما نريد القيام به هنا هو إذا أردنا أن تُرجع نتيجة فعلية ، فنحن بحاجة إلى استخدام

28
00:02:04,160 --> 00:02:10,100
‫إرجاع كلمة رئيسية خاصة ، متبوعًا بتعبير من النوع الصحيح.

29
00:02:10,100 --> 00:02:15,050
‫لذلك في هذه الحالة يجب أن يكون تعبيرًا منطقيًا حتى أتمكن من إرجاع صحيح ثم أضع فاصلة منقوطة

30
00:02:15,050 --> 00:02:19,100
‫في النهاية ، أو يمكنني إرجاع خطأ ثم وضع فاصلة منقوطة في النهاية.

31
00:02:19,580 --> 00:02:21,380
‫لكن لا يجب أن يكون الأمر بهذه البساطة.

32
00:02:21,380 --> 00:02:23,750
‫يمكن أن يكون في الواقع أي تعبير.

33
00:02:23,750 --> 00:02:29,000
‫يمكن أن يكون استدعاء آخر لدالة ، يمكن أن يكون متغيرًا ، يمكن أن يكون استخدامًا

34
00:02:29,000 --> 00:02:31,790
‫لبعض العوامل كما هو موضح هنا في بياننا.

35
00:02:32,000 --> 00:02:34,820
‫لذا ، في الواقع ، دعنا نمضي قدمًا ونحاول القيام بذلك.

36
00:02:34,820 --> 00:02:36,800
‫سآخذ هذا التعبير.

37
00:02:36,800 --> 00:02:41,330
‫المسافة المقطوعة وهي أكبر من مسافة الحركة.

38
00:02:41,330 --> 00:02:50,180
‫سأقوم بقصها وسأضعها كتعبير إرجاع لهذا يجب أن تعود وظيفة النظام الأساسي.

39
00:02:50,540 --> 00:02:56,210
‫ستلاحظ أنه سيشتكي هنا لأن حركة المسافة ليست متغيرًا محليًا ضمن وظيفة

40
00:02:56,210 --> 00:02:58,220
‫إرجاع النظام الأساسي.

41
00:02:58,520 --> 00:03:00,290
‫لذا سيتعين علينا نقل المزيد من الأشياء.

42
00:03:00,290 --> 00:03:06,830
‫لكن قبل أن نفعل ذلك ، لا أريد أن أنسى إجراء استدعاء لهذا يجب أن تعود المنصة في عبارة if

43
00:03:06,830 --> 00:03:12,530
‫، لذا يجب أن تعود المنصة ثم تذكر وضع الأقواس حتى يتم استدعاء الوظيفة بالفعل

44
00:03:12,530 --> 00:03:14,900
‫داخل عبارة F الخاصة بنا.

45
00:03:14,900 --> 00:03:17,180
‫حتى الآن بدأت القراءة أفضل قليلا بالنسبة لي.

46
00:03:17,180 --> 00:03:21,410
‫إذا كان يجب أن تعود المنصة ، فسنقوم بكل ما يلي.

47
00:03:22,100 --> 00:03:29,600
‫والآن ما علينا فعله هو إحضار متغير المسافة المتحرك الذي لدينا في منصة MOVE.

48
00:03:29,600 --> 00:03:31,400
‫لا نحتاجها في الواقع داخل منصة MOVE.

49
00:03:31,400 --> 00:03:35,990
‫سأقطعها وأحضرها وأضعها على المحك قبل أن أعود بالبيان.

50
00:03:35,990 --> 00:03:43,760
‫عادةً ما تكون عبارة الإرجاع هي آخر شيء في الدالة لأنه بمجرد عودتك من دالة ، فأنت في الواقع

51
00:03:43,880 --> 00:03:45,590
‫لا تفعل أي شيء آخر.

52
00:03:45,590 --> 00:03:53,720
‫إذا كنت سأضع شيئًا مثل رسالة السجل ، فسأضع سجلك بعد بيان الإرجاع الخاص بي مع نوع

53
00:03:53,720 --> 00:03:55,010
‫من الرسالة.

54
00:03:55,430 --> 00:04:01,790
‫عادة ما سيحدث هو أنك ستتلقى تحذيرًا من المترجم يقول بأن هذا الخط لن يتم الوصول

55
00:04:01,790 --> 00:04:05,480
‫إليه أبدًا وأنك ربما لم تقصد القيام بذلك.

56
00:04:05,780 --> 00:04:08,930
‫إذن ، عادة ما تكون عبارة الإرجاع هي آخر شيء.

57
00:04:09,590 --> 00:04:16,820
‫لذا بعد أن تحركت عبر الخط الذي يحدد المسافة التي تم نقلها في حالة عودة وظيفة النظام الأساسي ، يمكنك

58
00:04:16,820 --> 00:04:22,520
‫أن ترى أنها تقول الآن ، مهلا ، ليس لدي موقع حالي وكذلك الموقع الحالي الذي يمكننا

59
00:04:22,520 --> 00:04:28,610
‫الحصول عليه بسهولة ، لقد حددنا يجب أن يعود الموقع الحالي قبل الاتصال مباشرة.

60
00:04:28,610 --> 00:04:32,330
‫لذا فإن الحصول على موقع نشط هو بالضبط ما نريده.

61
00:04:32,330 --> 00:04:38,900
‫لذلك سأقوم فقط بوضع ذلك بدلاً من المتغير ، سأقوم فقط بإجراء مكالمة للحصول على موقع

62
00:04:39,230 --> 00:04:42,200
‫نشط في المكان ويجب أن تعود المنصة.

63
00:04:42,200 --> 00:04:48,590
‫إذن ما حصلنا عليه الآن هو أن المسافة التي تم نقلها تساوي المسافة بين موقع البداية

64
00:04:48,590 --> 00:04:50,480
‫والموقع الحالي النشط.

65
00:04:50,810 --> 00:04:56,000
‫لذا إذا كان هذا أكبر من مسافة التحرك التي تم تكوينها ، فعندئذ نعم ، يجب أن تعود المنصة.

66
00:04:56,000 --> 00:05:01,520
‫هذا ما تقوله هذه الوظيفة ويسمح لنا باستخدامه على مستوى أعلى من التجريد من داخل

67
00:05:01,520 --> 00:05:03,890
‫وظيفة منصة MOVE الخاصة بنا.

68
00:05:04,190 --> 00:05:09,590
‫ستلاحظ الآن أنه يشكو الآن من أنه لا يمكننا تحريك المسافة لطباعة التجاوز.

69
00:05:09,590 --> 00:05:10,970
‫حسنًا ، هذه ليست مشكلة كبيرة.

70
00:05:11,000 --> 00:05:13,760
‫لا أريد في الواقع طباعة ذلك بعد الآن.

71
00:05:13,760 --> 00:05:15,470
‫إنه نوع من العبث في وظيفتي على أي حال.

72
00:05:15,470 --> 00:05:18,200
‫لذا سأقوم بحذف خط متغير التجاوز.

73
00:05:18,200 --> 00:05:23,390
‫سأقوم بحذف سطر الحصول على الاسم ، وسأقوم بحذف رسالة السجل لأنها كانت موجودة

74
00:05:23,390 --> 00:05:26,900
‫مؤقتًا فقط ، ومن هنا جاء اسم السجل المؤقت.

75
00:05:27,290 --> 00:05:32,210
‫حتى الآن بدأت وظيفة منصة النقل لدينا تبدو أنظف كثيرًا.

76
00:05:32,210 --> 00:05:35,480
‫يمكننا أن نرى أننا نقوم ببعض التحديث للموقع هنا.

77
00:05:35,480 --> 00:05:38,480
‫يمكننا أن نرى ما إذا كان يجب أن تعود المنصة وما إذا كان يجب أن تعود.

78
00:05:38,480 --> 00:05:41,660
‫ثم نقوم بتحديث الموقع وتقلبه.

79
00:05:41,660 --> 00:05:48,740
‫الآن الشيء الوحيد الذي أعتقد أنه سيبدو أفضل قليلاً هنا هو إذا كان لدينا عبارة alt بدلاً من وجود هذه المجموعة

80
00:05:48,740 --> 00:05:51,230
‫من التعليمات البرمجية في الأعلى.

81
00:05:51,230 --> 00:05:58,190
‫لذلك إذا كان يجب على النظام الأساسي العودة ، فسنقوم بتنفيذ هذا وإلا فسنقوم بتنفيذ الكود العادي من حيث

82
00:05:58,190 --> 00:05:59,570
‫تحريكه للأمام.

83
00:05:59,570 --> 00:06:03,860
‫لذلك تذكر أننا أعدنا رأيك إلى الوقت الذي تحدثنا فيه عن بيان بديل.

84
00:06:03,890 --> 00:06:07,610
‫إنه يأتي فقط بعد عبارة if ونفعل ذلك على هذا النحو.

85
00:06:07,610 --> 00:06:12,800
‫بعد الأقواس ، لدينا سطر جديد واكتب else ، ثم سطر جديد آخر ونفتح بعض الأقواس الجديدة

86
00:06:12,800 --> 00:06:17,120
‫، ويمكننا فقط تحريك هذا الرمز الموجود هنا أعلى العلامة.

87
00:06:17,120 --> 00:06:20,510
‫يمكننا أن نأخذه وننقله لأسفل في بيان بديل.

88
00:06:20,510 --> 00:06:22,850
‫حتى الآن يبدو الأمر بسيطًا جدًا.

89
00:06:22,850 --> 00:06:26,900
‫هل يجب أن تعود المنصة ثم هل تعود الشفرة التي تقوم بها المنصة بغيرها؟

90
00:06:26,900 --> 00:06:30,740
‫نحن ندفع المنصة للأمام بسرعة منصتنا.

91
00:06:30,740 --> 00:06:35,030
‫الآن أود أن أتحداك لإنشاء وظيفتك الخاصة ذات القيمة المرتجعة.

92
00:06:35,030 --> 00:06:38,060
‫أرغب في إضافة وظيفة نقل المسافة.

93
00:06:38,060 --> 00:06:41,990
‫لذلك قمنا حاليًا بحساب هذا في متغير يسمى المسافة المقطوعة.

94
00:06:42,020 --> 00:06:45,860
‫أرغب في استبدال ذلك باستدعاء وظيفة بدلاً من ذلك.

95
00:06:46,310 --> 00:06:53,630
‫لذلك يجب أن تعيد تعويمًا لأن هذه هي الطريقة التي يتم بها تحريك نوع المسافة ، يجب أن نسميها في حالة عودة النظام

96
00:06:53,630 --> 00:06:54,410
‫الأساسي.

97
00:06:54,410 --> 00:06:59,000
‫لذا بدلاً من استخدام التوزيع المتجه ، يجب أن نستخدم طريقة التنفيذ الخاصة بنا.

98
00:06:59,000 --> 00:07:02,000
‫إذن ما هو الكود الذي يجب أن يحتوي عليه؟

99
00:07:02,000 --> 00:07:04,190
‫ما هو الكود الذي يجب أن نضعه فيه؟

100
00:07:04,220 --> 00:07:08,960
‫التلميح هو أننا كتبنا هذا الرمز بالفعل ، لذا فأنت تقوم فقط بنسخه ولصقه في الوظيفة

101
00:07:08,960 --> 00:07:09,680
‫الجديدة.

102
00:07:09,680 --> 00:07:14,960
‫لكن فكر قليلاً في ما يجب أن يكون عليه تعبير العودة ، بحيث أن ما نعيده هو

103
00:07:14,960 --> 00:07:17,390
‫قيمة المسافة التي تم نقلها.

104
00:07:17,420 --> 00:07:19,220
‫أوقف الفيديو واذهب.

105
00:07:22,950 --> 00:07:23,850
‫مرحبًا بعودتك.

106
00:07:24,150 --> 00:07:26,150
‫لذلك دعونا ننتقل إلى رأس الملف.

107
00:07:26,160 --> 00:07:33,330
‫سنقوم بإضافة دالة جديدة هنا بقيمة عائمة تُرجع تسمى نقل المسافة.

108
00:07:33,330 --> 00:07:36,240
‫وبعد ذلك ، لن يكون لدينا أي حجج بين الأقواس.

109
00:07:36,420 --> 00:07:39,150
‫ثم ننتقل إلى منصتنا المتحركة.

110
00:07:39,150 --> 00:07:51,600
‫CP سنضيف عوامة ، منصة متحركة ، نقطتان ، مسافة القولون المتحرك أو تحريك المسافة ، يجب أن أقول

111
00:07:51,600 --> 00:07:53,550
‫الأقواس.

112
00:07:53,550 --> 00:07:58,020
‫ثم نضع مجموعة جديدة من الأقواس في السطر التالي.

113
00:07:58,410 --> 00:08:04,320
‫وما نريد إرجاعه هو التعبير الذي نستخدمه حرفيًا لإنشاء تعويم حركة

114
00:08:04,320 --> 00:08:07,950
‫المسافة حتى أتمكن من قص ذلك ولصقه هنا.

115
00:08:07,950 --> 00:08:14,280
‫إذن فهي متجه f ، والنقطتان ، والنقطتان ، والتوزيع ، وموقع البدء ، والحصول على موقع نشط ووضع فاصلة منقوطة في نهاية

116
00:08:14,280 --> 00:08:15,240
‫هذا السطر.

117
00:08:15,390 --> 00:08:17,610
‫وهذا يعني أن النظام الأساسي يجب أن يعود.

118
00:08:17,610 --> 00:08:22,560
‫الآن بدلاً من تحريك هذه المسافة المتغيرة ، سأقوم بحذف هذا الخط الذي اكتمل نصفه.

119
00:08:22,950 --> 00:08:27,630
‫سنعود ونحرك المسافة.

120
00:08:28,080 --> 00:08:31,890
‫الأقواس أكبر من مسافة التحرك.

121
00:08:31,890 --> 00:08:39,660
‫لذا فقد أخذنا نوعًا ما في المتغير واستخرجناه في وظيفته الخاصة بدلاً من ذلك.

122
00:08:39,660 --> 00:08:45,180
‫وهذا يعني أنه كلما أردنا الإشارة إلى المسافة التي تم نقلها ، إذا أردنا الاحتفاظ

123
00:08:45,180 --> 00:08:51,990
‫برسالة السجل هذه في منصة MOVE ، فيمكننا بسهولة استدعاء الوظيفة ، والحصول على مسافة من أي من

124
00:08:51,990 --> 00:08:53,880
‫الوظائف في فصلنا.

125
00:08:53,880 --> 00:08:54,450
‫أشياء عظيمة.

126
00:08:54,450 --> 00:09:00,570
‫لقد تعلمنا في هذه المحاضرة عن جمل الإرجاع وقيم الإرجاع ، واستخدمناها لإنشاء

127
00:09:00,570 --> 00:09:03,120
‫وظيفتين جديدتين في صفنا.

128
00:09:03,120 --> 00:09:04,590
‫سأراك في المحاضرة القادمة.

