﻿1
00:00:04,330 --> 00:00:05,110
‫أهلا ومرحبا.

2
00:00:05,110 --> 00:00:11,350
‫في هذه المحاضرة ، سنقوم بإعادة قفل طباعة مكون المشغل عندما يكون به مساحة

3
00:00:11,380 --> 00:00:15,010
‫فارغة وعندما نضع الجرغول فيه ، سيتم فتحه.

4
00:00:15,010 --> 00:00:17,830
‫وإذا أخرجته مرة أخرى ، فسيتم قفله مرة أخرى.

5
00:00:17,830 --> 00:00:23,170
‫والطريقة التي سنقوم بها هي من خلال سحب وظائفنا لمعرفة ما إذا كان لدينا

6
00:00:23,170 --> 00:00:26,320
‫ممثل مقبول في وظيفته المنفصلة.

7
00:00:26,320 --> 00:00:29,320
‫وسوف نتعرف على العوائد المبكرة خلال أربع حلقات.

8
00:00:29,320 --> 00:00:31,120
‫للقيام بذلك ، دعنا نتعمق.

9
00:00:31,920 --> 00:00:36,660
‫لذا فإن هذا الجزء من الكود الذي لدينا في مكون التكنولوجيا بدأ بالفعل يشعر وكأنه وظيفة بالنسبة

10
00:00:36,660 --> 00:00:36,900
‫لي.

11
00:00:36,900 --> 00:00:43,620
‫في الأساس ، إنها وظيفة تحصل على الممثل المقبول ، إذا كان لدينا واحد ، حتى نتمكن من المضي قدمًا

12
00:00:43,620 --> 00:00:45,420
‫إلى مكون المشغل.

13
00:00:46,230 --> 00:00:49,680
‫وتحت القسم الخاص ، قم بإنشاء مثل هذه الوظيفة.

14
00:00:49,680 --> 00:00:51,850
‫الآن ، ماذا يجب أن يكون نوع العودة؟

15
00:00:51,870 --> 00:00:58,980
‫حسنًا ، أعتقد أنه يجب أن يكون مؤشر ممثل ، والذي يمكن أن يكون دائمًا مؤشرًا فارغًا إذا لم يكن هناك ممثل

16
00:00:58,980 --> 00:00:59,690
‫مقبول.

17
00:00:59,700 --> 00:01:05,190
‫إذن يمكننا تسمية هذا بأقواس فارغة لممثل مقبول.

18
00:01:05,190 --> 00:01:06,510
‫لسنا بحاجة إلى إعطائها أي شيء.

19
00:01:06,510 --> 00:01:12,420
‫ولأنها لا تغير وظيفتنا ، يمكننا جعلها ثابتة.

20
00:01:12,450 --> 00:01:16,350
‫دعنا نمضي قدمًا وننفذ هذا في ملف CPP.

21
00:01:16,350 --> 00:01:27,030
‫سنقوم بوضع مسافة بادئة له ، ونعطيه القولون المكون ، والنقطتان ، واستبدلهما بفاصلة منقوطة بأقواس.

22
00:01:27,570 --> 00:01:35,520
‫ثم الكود الذي نريده هو في الأساس محتويات مكون التشنج اللاإرادي ، باستثناء ما لا نريد القيام به هو

23
00:01:35,520 --> 00:01:39,640
‫مجرد تسجيل أننا قمنا بإلغاء تأمين الممثل هنا.

24
00:01:39,660 --> 00:01:47,280
‫ما نريد القيام به هو في الحالة التي وجدنا فيها هذا الممثل ، نريد أساسًا إعادته.

25
00:01:47,280 --> 00:01:48,870
‫لذلك هناك طريقتان يمكننا القيام بذلك.

26
00:01:48,870 --> 00:01:56,370
‫يمكننا أن نقول في بداية وظيفتنا أن هناك مؤشرًا للممثل ، والذي سيكون ممثل الإرجاع ، وافتراضيًا

27
00:01:56,370 --> 00:02:00,840
‫نقوم بتعيين هذا المؤشر على مؤشر فارغ.

28
00:02:00,840 --> 00:02:04,380
‫لذلك لا يوجد ممثل سنعود.

29
00:02:04,380 --> 00:02:09,360
‫ولكن عندما نمر في حلقة for ونجد في النهاية ممثلًا لديه العلامة المقبولة

30
00:02:09,360 --> 00:02:16,410
‫، يمكننا القول ، مرحبًا ، يجب أن يشير الممثل العائد بالفعل إلى مؤشر الممثل الذي وجدناه هنا في

31
00:02:16,410 --> 00:02:17,940
‫صفيفنا.

32
00:02:17,940 --> 00:02:22,590
‫ثم في نهاية حلقة for ، بعد انتهاء حلقة for ، مررنا بكل الممثلين.

33
00:02:22,590 --> 00:02:28,920
‫يمكننا المضي قدمًا وإرجاع متغير الفاعل العائد لأن هذا هو النوع الصحيح.

34
00:02:29,400 --> 00:02:30,390
‫حسنا.

35
00:02:30,390 --> 00:02:35,400
‫لكنه يتطلب منا إنشاء متغير ويتطلب منا أيضًا المرور عبر حلقة for بأكملها

36
00:02:35,400 --> 00:02:38,040
‫، حتى لو وجدنا بالفعل ممثلًا مقبولاً.

37
00:02:38,460 --> 00:02:42,180
‫لذا فإن أفضل طريقة للقيام بذلك هي استخدام العائد المبكر.

38
00:02:42,180 --> 00:02:48,240
‫وقد رأينا هذا النوع من الأشياء من قبل في جهاز CP حيث قمنا بذلك.

39
00:02:48,240 --> 00:02:54,270
‫إذا كانت المقابض الفيزيائية تساوي مؤشرًا فارغًا ، فإننا نعود ولن نحتاج إلى تشغيل باقي مكون

40
00:02:54,270 --> 00:02:55,260
‫التجزئة.

41
00:02:55,260 --> 00:03:00,180
‫يمكننا استخدام نفس النوع من الكفاءة داخل حلقات for أيضًا.

42
00:03:00,180 --> 00:03:06,960
‫لذا ما سأفعله هو إذا وجدنا الممثل المقبول ، سنقوم فقط بعمل ممثل عائد.

43
00:03:06,960 --> 00:03:11,850
‫نعيد حرفياً المؤشر الذي وجدناه للتو في حلقة for هذه ولا يلزم تشغيل

44
00:03:11,850 --> 00:03:13,500
‫بقية حلقة for.

45
00:03:13,800 --> 00:03:20,340
‫ومع ذلك ، إذا انتقلنا إلى نهاية الحلقة for ولم نعثر على أي شيء ، ولم نعد شيئًا ،

46
00:03:20,340 --> 00:03:23,970
‫والعودة ستوقف الحلقة for ، وترك الوظيفة.

47
00:03:23,970 --> 00:03:28,050
‫ولكن إذا وصلنا إلى النهاية ، فنحن بحاجة إلى إرجاع شيء ما بشكل افتراضي.

48
00:03:28,410 --> 00:03:31,860
‫هذا هو المكان الذي يمكننا فيه فقط إرجاع مؤشر فارغ.

49
00:03:31,860 --> 00:03:33,450
‫إذن هذه هي القيمة الافتراضية.

50
00:03:33,450 --> 00:03:35,670
‫هذا يعني أننا مررنا حلقة for بأكملها.

51
00:03:35,670 --> 00:03:38,040
‫لقد رأينا أنه لا يوجد ممثل مقبول.

52
00:03:38,040 --> 00:03:40,410
‫لا يوجد أي من الممثلين الذين نتداخل معهم.

53
00:03:41,300 --> 00:03:42,830
‫مع العلامة الصحيحة.

54
00:03:42,830 --> 00:03:45,230
‫لذلك نعيد المؤشر الفارغ.

55
00:03:45,230 --> 00:03:51,260
‫هذا يعني الآن أنني حصلت على متغير الفاعل العائد الزائد الذي يمكنني المضي قدمًا والتخلص منه.

56
00:03:51,260 --> 00:03:53,510
‫وهذا يقرأ بوضوح تام.

57
00:03:53,510 --> 00:03:58,070
‫نحن نمر ، نحصل على الممثلين المتداخلين ، نقوم بعمل حلقة كاملة عليهم.

58
00:03:58,070 --> 00:04:02,780
‫إذا قام كل ممثل باختباره ، فهل حصل على العلامة ، العلامة المقبولة؟

59
00:04:02,780 --> 00:04:04,550
‫إذا حدث ذلك ، فإننا نتوقف عند هذا الحد.

60
00:04:04,550 --> 00:04:05,720
‫نعيد هذا واحد.

61
00:04:05,720 --> 00:04:08,330
‫إذا لم يكن لديه أي منهم ، فإننا نعيد مؤشر فارغ.

62
00:04:08,330 --> 00:04:11,780
‫لذلك دعونا نتحداك لتسجيل الدخول إذا وجدنا الممثل.

63
00:04:11,780 --> 00:04:14,570
‫لذا استدع وظيفتنا في مكون التجزئة الخاص بك.

64
00:04:14,570 --> 00:04:20,240
‫تحقق مما إذا كان المؤشر فارغًا وقم بتسجيل الدخول في كلتا الحالتين ، سواء كان لدينا ممثل أو إذا

65
00:04:20,240 --> 00:04:21,920
‫لم نستخدم عبارة if و else.

66
00:04:21,920 --> 00:04:23,540
‫أوقف الفيديو واذهب.

67
00:04:26,460 --> 00:04:26,850
‫كاي.

68
00:04:26,850 --> 00:04:27,850
‫مرحبًا بعودتك.

69
00:04:27,870 --> 00:04:30,120
‫لذا دعنا ننتقل إلى مكوناتنا التقنية.

70
00:04:30,120 --> 00:04:35,490
‫ما سنفعله هو أننا سننشئ متغيرًا ، مؤشر الممثل ، والذي

71
00:04:35,490 --> 00:04:40,620
‫سيكون الممثل ، والذي يساوي الحصول على ممثل مقبول.

72
00:04:40,650 --> 00:04:47,220
‫ثم سنفعل إذا لم يكن الممثل مساويًا لمؤشر فارغ ، ثم في جسم هذا ، سنقوم بإلغاء

73
00:04:47,220 --> 00:04:56,520
‫قفل سجل u ثم في الآخر الآخر تقوم بتسجيله هذه المرة لإعادة القفل لأن هذا هو السلوك الذي أريده عنصر المشغل

74
00:04:56,520 --> 00:05:01,950
‫وتحريكه معًا هو أنه إذا كان لديك جرغول هناك ، فسيتم فتحه ، وسيستخدم

75
00:05:01,950 --> 00:05:08,760
‫المحرك وسيُعاد قفله إذا ألغينا تحديد مربع الاختيار بشكل أساسي أثناء التنقل

76
00:05:08,760 --> 00:05:12,750
‫إذا إزالة الغرغرة.

77
00:05:12,750 --> 00:05:13,860
‫لذلك دعونا نجمع ذلك.

78
00:05:13,860 --> 00:05:15,960
‫لذلك دعونا نمضي قدما ونضرب اللعب.

79
00:05:15,990 --> 00:05:19,620
‫يمكنك أن ترى أنه يعاد قفله لأنه ليس لدينا جرغول هناك.

80
00:05:19,650 --> 00:05:21,660
‫إلتقط الجرغول وأحضره.

81
00:05:21,660 --> 00:05:22,560
‫وها أنت ذا.

82
00:05:22,560 --> 00:05:27,900
‫إنه الآن يفتح ، أخرجه وهو يعيد فتح القفل وإعادة القفل.

83
00:05:27,900 --> 00:05:28,380
‫في احسن الاحوال.

84
00:05:28,380 --> 00:05:30,000
‫إذا دخلت ، فلن يحدث شيء.

85
00:05:30,000 --> 00:05:31,080
‫انها مجرد إعادة قفل.

86
00:05:31,230 --> 00:05:38,010
‫لذلك نجحنا في معرفة ما إذا كان لدينا شيء في مكون المشغل

87
00:05:38,010 --> 00:05:38,850
‫أم لا.

88
00:05:38,850 --> 00:05:40,680
‫الآن نحن فقط بحاجة إلى جعله يفعل شيئًا ما.

89
00:05:40,680 --> 00:05:42,750
‫وهذا سيكون موضوع المحاضرة القادمة.

90
00:05:42,750 --> 00:05:43,500
‫سأراك هناك.

