>> דניאל אַרמענדאַריז: העלא, אַלעמען, באַגריסונג צו יאָס אַפּ אַנטוויקלונג
מיט ביסטרע.
איך בין דן אַרמענדאַריז.
איך בין פּרעסעפּטער פון קאָמפּיוטער וויסנשאַפֿט דאָ בייַ די שולע
פון אינזשעניריע און אַפּפּליעד וויסנשאפטן.
און ביסטרע איז פאקטיש מין פון אַ טאַקע ציכטיק שפּראַך.
און איך האָבן עטלעכע פּלאַנז פֿאַר הייַנט.
אזוי איבער די ווייַטער שעה אָדער אַזוי מיר רע געגאנגען צו קוקן אין יאָס אַפּ אַנטוויקלונג זיך
ניצן קסקאָדע און פאקטיש קריייטינג עטלעכע זייער יקערדיק, זייער פּשוט פּראָגראַמען.
און קוקן בייַ די וועג אַז איר פאקטיש נעמען די פּראָגראַמען,
און בויען זיי, און טאקע שטעלן זיי אויף אַ יאָס מיטל.
עטלעכע פון ​​די זאכן אַז מיר ניטאָ ניט געגאנגען צו קוקן בייַ
וועט אַרייַננעמען זאכן ווי פאקטיש גענומען אַ אַפּלאַקיישאַן
און פּאַטינג עס אויף די אַפּ קראָם.
עס ס אַ פּלאַץ פון טוטאָריאַלז אָנליין אַז וועט העלפן איר מיט אַז אַספּעקט פון עס.
אבער אויך ווייַל ווי טייל פון קס50, איר באַקומען
צו פאַרבינדן די עפּל אַנטוויקלונג קאָלעקטיוו, קס50 ס אַפּ אַנטוויקלונג קאָלעקטיוו.
אויב איר האָבן ניט געטאן, אז נאך און איר זענען אַפיליייטאַד מיט קס50,
איך טאָן רעקאָמענדירן אַז איר טאָן אַז ווייַל אַז
איז ווי איר ניטאָ קענען צו שאַפֿן עטלעכע מגילה אין קסקאָדע,
בויען זיי, און טאקע שטעלן זיי אויף עטלעכע פון ​​דיין יאָס דעוויסעס
אויב איר אַקטשאַוואַלי האָבן אַ גשמיות יאָס מיטל.
אויב איר טאָן ניט האָבן אַ גשמיות יאָס מיטל אַז ס מער ווי פייַן.
איר קענען פאקטיש אַנטוויקלען פֿאַר יאָס.
און קסקאָדע האט אַ סימיאַלייטער אַז אַלאַוז איר
צו זען דיין אַפּלאַקיישאַן אין קאַמף אויף דיין קאָמפּיוטער.
אבער עס סאָרט פון איז אַ ציכטיק זאַך צו פאקטיש שפּילן און ינטעראַקט
מיט דיין אַפּלאַקיישאַן אויף אַ פאַקטיש מיטל.
אזוי עס ס אַ פּאָר פון באדערפענישן צו פאקטיש טאָן אַלע פון ​​דעם אַנטוויקלונג.
איינער פון זיי איז אַז איר האָבן צו האָבן אַ מעק.
עס האט צו זיין פליסנדיק 10.9.4 אָדער שפּעטער אין סדר צו טאָן אַנטוויקלונג מיט ביסטרע.
>> איר קענען נוצן אַ פריער ווערסיע צו אַנטוויקלען
מיט אָביעקטיוו C פֿאַר יאָס און מעק.
אבער איך רעקאָמענדירן, און אַ פּלאַץ פון די ביישפילן אַז מיר וועט זען הייַנט,
נוצן 10.10 יאָסעמיטע.
אזוי אויב איר האָבן ניט נאָך אַפּגריידיד, עס ס אַ גוט אַנטשולדיקן צו טאָן אַזוי.
איצט קסקאָדע 6.1 איז די לעצט ווערסיע פון די ינאַגרייטיד אַנטוויקלונג סוויווע
אַז עפּל גיט פֿאַר פֿרייַ אַז איר קענען אראפקאפיע אַוועק די אַפּ קראָם.
און איך רעקאָמענדירן אַז איר אויך לויפן די לעצט ווערסיע.
>> אויב איר פּאַסירן צו זייַן פליסנדיק אַ פריער ווערסיע, קסקאָדע 5 און ווייטער נאָר
פשוט טאָן ניט שטיצן ביסטרע כוואַצאָועווער.
און די ביתא ווערסיעס פון זעקס, וואָס זענען באפרייט איבער די זומער,
טאָן שטיצן ביסטרע, אָבער דאָרט ס געווען אַ ריזיק נומער
פון ענדערונגען אין דער שפּראַך, גענוג אַזוי אַז די קאָד אַז איר ניטאָ
געגאנגען צו קוקן בייַ און אַז איר זאל געפינען אויף די אינטערנעט
וועט ניט פאקטיש צונויפנעמען רעכט אין די פריערדיק ווערסיעס פון קסקאָדע.
אזוי ווידער, אויב איר טאָן ניט נאָך האָבן אַ דעוועלאָפּער חשבון,
איך רעקאָמענדירן איר גיין צו developer.apple.com.
צייכן אַרויף, שאַפֿן אַ דעוועלאָפּער חשבון, און פאַרבינדן די קס50 אַפּ אַנטוויקלונג קאָלעקטיוו.
אַז וועט צושטעלן צו איר אַ געלעגנהייט צו צונויפנעמען דיין פּראָגראַמען
און שטעלן זיי אויף דיין מיטל.
גוט, אַזוי לאָזן ס באַקומען אנגעהויבן.
די זייער ערשטער זאַך מיר ניטאָ געגאנגען צו טאָן איז
צו פאקטיש שאַפֿן אַ זייער פּשוט פּרויעקט אין קסקאָדע
אַז וועט לאָזן איר צו מאַכן אַ אַפּלאַקיישאַן.
>> אזוי אויב איר טאָן ניט נאָך האָבן קסקאָדע עפענען, גיין פאָרויס און עפענען עס
און שאַפֿן אַ נייַ פּרויעקט.
א ספּעציעל שפּריצן פאַרשטעלן וועט עפענען און וועט געבן איר
עטלעכע אָפּציעס וועגן וואָס עס איז אַז איר ווילן צו טאָן.
פונקט זאָגן אַז איר ווילן צו שאַפֿן אַ נייַ פּרויעקט, אַ נייַ אַפּלאַקיישאַן.
דאס פֿענצטער וועט קנאַל אַרויף, אַסומינג איר ניטאָ ניצן קסקאָדע 6.1.
רעכט איצט, און פֿאַר די געדויער פון דעם סעמינאַר,
מיר ניטאָ געגאנגען צו זייַן ניצן איין מיינונג פּראָגראַמען, נאָר
סאָרט פון אַ יקערדיק אַפּלאַקיישאַן צו באַקומען דיין פֿיס נאַס.
און איר קענען צווייַג אויס אויף דיין אייגן פון דאָרט.
>> דריקט ווייַטער בייַ דעם פונט.
איצט דאָ עס ס אַ פּאָר פון זאכן אַז איר זאל וועלן צו אַרייַן.
די פּראָדוקט נאָמען איז דער נאָמען פון דיין פּרויעקט.
אין דעם פאַל, איך בין נאָר געגאנגען צו רופן עס סעמינאַר1
ווייַל עס ס אונדזער ערשטער בייַשפּיל.
ארגאניזאציע נאָמען, אין דעם פאַל איז נאָר מיין נאָמען.
איר קענען פון קורס טוישן עס צו דיין אייגן נאָמען, אָדער צו קס50.
ארגאניזאציע ידענטיפיער, אויב איר פּאַסירן צו האָבן אַ וועבזייַטל נאָר נעמען
די פעלד נאָמען אין פאַרקערט, קאָמ.יאָורנאַמע.
און דעריבער דער נאָמען פון דער פּראָדוקט זאָל דערשייַנען אויטאָמאַטיש
נאָך אַז ווי די בינטל יידענטאַפייער.
>> דאָך די שפּראַך אַז מיר רע געגאנגען צו זייַן ניצן פֿאַר הייַנט איז ביסטרע.
איר קענען, פון קורס, נוצן אָביעקטיוו C פֿאַר אַז, אָבער הייַנט וועט זיין ביסטרע.
און מיר וועט פֿאַר איצט זאָגן וניווערסאַל דעוויסעס, אַזוי
אַז עס אַרבעט אויף ביידע יפּאַד און יפאָנע.
און מיר וועט לאָזן האַרץ דאַטן געצאַמט צו האַלטן
די פּרויעקט לעפיערעך פּשוט פֿאַר די צייַט זייַענדיק.
אזוי לאָזן ס גיין פאָרויס און גיט ווייַטער.
און עס ס געגאנגען צו פרעגן מיר ווו איך ווילן צו ראַטעווען עס.
איך וועט נאָר ראַטעווען עס צו מיין דעסקטאַפּ פֿאַר איצט.
>> כל רעכט, אַזוי איצט דעם איז וואָס וועט פּאַסירן ווען איר אַקטשאַוואַלי עפענען קסקאָדע.
און באַמערקן אַז די זייער ערשטער זאַך איר זען
איז דעם עקסקלאַמיישאַן פונט אַז זאגט ניט קיין סיינינג אידענטיטעט געפונען.
איך בעקיוון האט דעם אויף מיין קאָמפּיוטער און איך בין
כאָופּינג אַז איך בין געגאנגען צו קענען צו פאקטיש פאַרריכטן עס,
ווייַל איך ווילן איר צו זען ווי דעם וועט פאקטיש אַרבעט אויף דיין אייגן מאַשין.
>> גיין פאָרויס און גיט פאַרריכטן אַרויסגעבן.
עס וועט פרעגן איר אויב איר האָבן אַ שאַפֿן הבאים דעוועלאָפּער חשבון.
דאס איז ווו דזשוינינג די קס50 אַפּ אַנטוויקלונג קאָלעקטיוו
איז וויכטיק אַזוי אַז איר ניט נאָר האָבן אַ אַפּ חשבון,
אָבער איר אויך האָבן די פיייקייַט צו צייכן די אַפּפּס
און שטעלן זיי אויף דיין יאָס מיטל.
דאס איז נאָט-- קליקינג פאַרריכטן אַרויסגעבן איז ניט נייטיק
אויב איר 'רע נאָר געגאנגען צו בויען און אַנטוויקלען לאָוקאַלי,
לעגאַמרע ין די יאָס סימיאַלייטער.
>> אבער פֿאַר איצט איך בין געגאנגען צו אַנטוויקלען און שטעלן זיי
אויף מיין יפּאַד, וואָס וועט זייַן קענען צו בראָדקאַסט ווי געזונט.
אזוי איך טאָן ווילן צו פאקטיש לייגן דעם.
און עס ס געגאנגען צו פרעגן מיר פֿאַר מיין עפּל שייַן.
אזוי עס ס געגאנגען צו זייַן דעם.
און איך האָבן צו ברענגען מיין פּאַראָל, וואָס איז איבער דאָ.
אזוי געבן מיר נאָר איינער רגע צו געפֿינען אַז, און קאָפּיע אַז, און פּאַפּ עס איבער דאָ.
>> דריקט לייגן.
עס ס געגאנגען צו פרעגן מיר וואָס קאָלעקטיוו איך ווילן צו פאַרבינדן.
איך בין געגאנגען צו טאָן שולע פון ​​אינזשעניריע.
דריקט באַהעפטן.
ווהאָאָפּס, וואָס ס די אומרעכט איינער.
זאל ס טאָן דעם איין.
אַלעווייַ אַז איינער וועט אַרבעטן.
אז איינער נאָך טוט ניט אַרבעט.
מיר ניטאָ פליסנדיק אויס פון גוט אָנעס דאָ.
גוט, דעם איינער זאָל אַרבעט.
איצט נאָענט אַז.
איצט לאָזן ס טאָן שול פון ינזשעניעריע, גיט קלייַבן.
>> און איצט אַלעווייַ נאָך אַ פּאָר פון סעקונדעס איר קאַנ-- גוט,
איך וועט אָפּרופן און בעטן.
טאַקע מענטש, דעם איז געגאנגען צו ניט אַרבעט.
גוט, איך וועט פּרובירן אַ פאַרשידענע איינער.
זאל ס טאָן דעם איין דאָ.
לעבן דעמאָס זענען פיילינג מיר.
מיר זאלן האָבן צו צוריקקומען צו נאָר בנין אינגאַנצן לאָוקאַלי,
אָבער אַז וואָלט זיין גוט אין דעם פאַל.
>> אזוי דאָ, בשעת דעם איז פאקטיש ארבעטן, וואָס מיר רע געגאנגען צו טאָן איז נאָר
שאַפֿן אַ זייער פּשוט העלא וועלט אַפּלאַקיישאַן.
אזוי דעם איז קסקאָדע.
און אויב איר האָבן ניט געזען עס נאָך, עס קענען זייַן אַ ביסל ינטימידייטינג בייַ ערשטער.
עס ס אַ פּלאַץ פון פּאַנעס, דאָרט ס אַ פּלאַץ פון דאָאָדאַדס אין פארשיידענע געביטן.
אבער נאָר פאַרשטיין אַז עס ס טאַקע עטלעכע הויפּט קאַמפּאָונאַנץ
צו דעם אַנטוויקלונג סוויווע.
אויף די ווייַט לינקס זענען אַלע פון ​​די טעקעס אַז ביסט אָנווענדלעך צו דיין פּראָגראַם
אָדער צו דיין באַזונדער פּרויעקט.
מיר וועט זייַן געבן אַ קליק אַרום אויף עטלעכע פון ​​זיי און מיר וועט
פונט אויס די מערסט וויכטיק אָנעס איבער צייַט.
אויף די ווייַט רעכט, מיר האָבן אַ סכום פון אַטריביוץ.
און אַלע פון ​​די אַטראַביוץ, עס זענען פאַרשידן פּאַנעס פֿאַר די אַטראַביוץ.
די פּאַנעס וועט טוישן דיפּענדינג אויף די קאָנטעקסט פון די הויפּט צופרידן, וואָס
כאַפּאַנז צו זייַן אין די מיטל.
איצט די מיטל קענען פאקטיש ווייַזן איר אַ פאַרשיידנקייַט פון זאכן, פֿאַר בייַשפּיל
דיין קאָד זיך.
אָדער איר זאל אַקטשאַוואַלי האַווע-- ווען איר דריקט אויף די סטאָריבאָרד וואָס
איז, דורך די וועג, נאָר אַ גראַפיקאַל פאַרטרעטונג פון דיין באַניצער
צובינד פֿאַר דיין אַפּפּליקאַטיאָנ-- דעריבער די אַטראַביוץ שויב
אויף די זייער ווייַט רעכט וועט פאקטיש טוישן.
איצט דאָרט ס אַ פּאָר פון אנדערע זאכן אַז איך ווילן צו פונט.
איר קענען סאָרט פון ויספאָרשן אַרום אין די סוויווע אויף דיין אייגן.
אבער איינער פון די זאכן אַז האט שוין זייער נוצלעך
איז דעם קנעפּל דאָ, די שפּיץ רעכט פון די פֿענצטער.
עס ס דעם קנעפּל אַז קוקט ווי אויף דער ווייַט
לינקס עס האט אַ פּאַראַגראַף נאכגעגאנגען דורך צוויי קרייזן און סאָרט
פון צוויי עראָוז פּוינטינג אַוועק פון יעדער אַנדערער.
אויב איר באַשטימען צווישן דעם נאָרמאַל רעדאַקטאָר, וואָס
איז די ווייַט לינקס איינער, די איין אַז ס אויסגעקליבן דורך פעליקייַט,
און די צוויי קרייזן אָוווערלאַפּינג יעדער אנדערע, וואָס איר פאקטיש באַקומען
ביסט אַ טאָפּל שויב מיינונג.
>> און דעם איז אַקטשאַוואַלי געגאנגען צו זיין נוציק פֿאַר אונדז
ווען מיר דאַרפֿן צו לינק זאכן אין די וי צו די קאָד.
און מיר וועט רעדן מער וועגן אַז אין נאָר אַ מאָמענט.
אבער פאַרשטיין אַז אויב איר באַקומען אפילו מער פּאַנעס ווי דעם,
איר קענען פאַרפּאָשעטערן דיין מיינונג נאָר אַ ביסל ביסל דורך געבן אַ קליק צוריק
אויף דיין איין רעדאַקטאָר.
אזוי ווייַט אַזוי גוט.
אזוי בייסיקלי מיר האָבן די קאָד אויף די לינקס, אַטראַביוץ אויף די רעכט,
און וועלכער עס איז מיר ארבעטן אויף דאָ אין די זייער צענטער.
>> אזוי דאָ איך ווע קליקט אויף די הויפּט סטאָריבאָרד.
און די סטאָריבאָרד, ווידער, איז אַ וועג אין קסקאָדע
אַז איר קענען פאקטיש מאַכן דיין באַניצער צובינד ניצן נאָר שלעפּן און פאַלן
טעקניקס.
און אַזוי פֿאַר אונדזער זייער ערשטער אַפּלאַקיישאַן דעם
איז דווקא וואָס מיר רע געגאנגען צו טאָן.
מיר ניטאָ געגאנגען צו גיין אַראָפּ צו די זייער ווייַט נידעריקער רעכט חלק
פון די פאַרשטעלן, וואָס כּולל אַ פאַרשיידנקייַט פון באַניצער יסודות
אַז איר קענען דעריבער גיט און שלעפּן צו שאַפֿן דיין באַניצער צובינד.
>> איצט אַלע פון ​​די עלעמענטן זענען גערופן קוקן
ווייַל זיי צושטעלן עטלעכע סאָרט פון מיינונג.
עס ס אַ בילד מיינונג, פֿאַר בייַשפּיל, צו פאקטיש ווייַזן
אַ בילד אויף די באַניצער צובינד.
עס ס אַ טיש מיינונג צו פאקטיש ווייַזן אַ טיש.
אזוי אויף און אַזוי אַרויס.
עס ס אַ ברייט פאַרשיידנקייַט פון קוקן וואָס איר קענען אויסקלייַבן דאָ.
אזוי נאָר פֿאַר איצט מיר רע געגאנגען צו זוכן פֿאַר אַ פירמע.
איר קענען נאָר מעגילע דורך אַלע פון ​​די רשימות אַז ס עס.
אבער עס ס די זוכן באַר בייַ די זייער דנאָ
אַז מאכט עס גרינגער צו ידענטיפיצירן ספּעציפיש קוקן אַז איר פאקטיש
ווילן צו שלעפּן אין דיין באַניצער צובינד.
>> געפונען מיין פירמע.
איך בין געגאנגען צו שלעפּן עס דאָ, גלייַך אַנטו מיין מוסטער אַפּלאַקיישאַן.
רעכט דאָרט אין די מיטן קוקט גוט.
און איך בין געגאנגען צו דרוקן "העלא וועלט!"
קלאַפּ אַרייַן.
איצט איך האָבן אַ פירמע.
עס טוט ניט קוקן ווי עס ס סענטערד גאַנץ רעכט.
אזוי איך קענען פּרובירן צו שייַעך-צענטער עס.
צומ גליק עס אָפפערס די פירער צו מאַכן זאכן פיל גרינגער.
איך בין געגאנגען צו פּרובירן צו צונויפנעמען עס.
אַלעווייַ עס וועט פאקטיש אַרבעט דאָ.
און אויב עס טוט נישט, אין נאָר אַ מאָמענט עס וועט אין פאַקט דערשייַנען אויף מיין יפּאַד.
עס ס רעכט דאָ.
עס עס איז.
>> גוט, אַזוי וואָס ס עס.
מיר ניטאָ געטאן.
מיר ווע באשאפן אונדזער זייער ערשטער אַפּלאַקיישאַן.
איצט דאָך דעם טוט ניט טאָן עפּעס.
עס ס נאָר אַ פירמע.
עס ס קיין קשר צווישן די באַניצער צובינד און די קאָד.
אזוי אויב מיר פאקטיש געוואלט צו שאַפֿן דעם קשר,
אויב מיר פאקטיש געוואלט צו האָבן עטלעכע סאָרט פון קאָמוניקאַציע צווישן די יסודות
אַז עקסיסטירן אויף די פאַרשטעלן און די קאָד אַז
אַלאַוז אונדז צו קאָנטראָל יענע עלעמענטן, דעמאָלט
מיר פאקטיש דאַרפֿן צו קוקן בייַ די קאָד זיך.
>> אזוי דעם איז וואָס ס גערופן וויעווקאָנטראָללער.סוויפט.
און פֿאַר, ספּעציעל פֿאַר דיין ערשטער ווייניק מגילה,
דעם איז געגאנגען צו זיין סאָרט פון די פאַרנעם פון די קאָוד אַז איר ענטער--
איז געגאנגען צו זיין אין דעם דאָקומענט דאָ.
עס ס אַ פּלאַץ פון שטאָפּן אַז ס אין דאָ אַזוי ווייַט, רעכט?
עס ס אַרייַנפיר וי ינווענטאַר קלאַס, אָווועררייד, [? פונק,?] אַלע די פאַרשידן זאכן.
און עס ס נישט גאַנץ קלאָר וואָס עס איז אַז אַלע פון ​​דעם מיטל.
אזוי לאָזן ס נעמען אַ שריט צוריק אַוועק פון קסקאָדע פֿאַר אַ קליין ביסל
און קוקן בייַ די שפּראַך זיך, ביסטרע.
>> אזוי מיט ביסטרע, עס איז געווען אין פּלאַן און אַנטוויקלונג
בייַ הבאים פֿאַר וועגן פיר יאר צו מיין פארשטאנד.
און דאָרט ס אַ פּאָר פון פֿעיִקייטן וועגן עס אַז ביסט טאַקע ציכטיק.
ערשטער פון אַלע, עס ס צונויפגעשטעלט שפּראַך, נאָר ווי סי
אזוי איר ערשטער האָבן צו צונויפנעמען עס און דעמאָלט לויפן עס
איידער איר קענען פאקטיש ויספירן די קאָד אַז רעזולטאַטן.
אבער עס איז, ניט ענלעך C, אַן ינטעראַקטיווע פּינטלעך אַז איר קענען פאקטיש לויפן
און דרוקן אַרבאַטרערי קאַמאַנדז אין.
און זייער פיל ווי אַ דזשאַוואַסקריפּט קאַנסאָול, וואָס איר זאלט ​​זיין באַקאַנט מיט איצט,
עס פאקטיש וועט אָפּשאַצן די קאַמאַנדז און צושטעלן צו איר דער רעזולטאַט.
און זיי ווע אַפֿילו גענומען אַז צו דער ווייַטער מדרגה
און זיי ווע באשאפן עפּעס גערופן פּלייגראַונדז אין קסקאָדע
אַז לאָזן איר צו וויזשוואַלי אַרבעט מיט קאָד.
און מיר וועט פאקטיש זען עטלעכע ביישפילן פון וואָס אין נאָר אַ ביסל ביסל.
עס ס באזירט אויף סי C ונדערליעס עס, ווייַל אַלע פון ​​די זאַמלערס
שאַפֿן קאָד אויס פון C און שאַפֿן די כייפעץ קאָד פון עס.
אבער עס טאַקע שאַרעס לעפיערעך ביסל סינטאַקס.
עס וועט קוקן פערלי פאַרשידענע.
עס וועט זיין עטלעכע סימאַלעראַטיז.
אבער עס זענען געגאנגען צו זייַן גאַנץ אַ ביסל דיפעראַנסיז
קאַמפּערד צו, זאָגן, דזשאַוואַסקריפּט אָדער פפּ.
און מיר וועט פונט די אויס אין נאָר אַ מאָמענט.
>> איצט איינער פון די ביגאַסט זאכן וועגן ביסטרע אַז ס פייַן
איז אַז, ספּעציעל קאַמפּערד צו C, עס ס מענט צו זיין זיכער.
אלץ אין עס איז מענט צו זייַן זייער שטארק טייפּט אין.
אין פאַקט עס ס כּמעט אַנויינג בייַ ערשטער, ווען איר ערשטער
אָנהייב ארבעטן מיט ביסטרע, נאָר ווי פיל עס ענפאָרסיז טייפּס אומעטום.
עפּעס אַז ס אַ שטריקל האט צו בלייַבן אַ שטריקל.
עס ס זייער שווער צו סאָרט פון גער עס אָדער נייטן עס אין עטלעכע אנדערע פאָרעם.
>> און ווידער, מיר וועט ווייַזן ביישפילן פון דעם.
אבער לעסאָף פאַרשטיין אַז דעם איז מענט צו באַשיצן איר,
און דורך איר איך מיינען דיין קאָד, פון קראַשינג אין עטלעכע שרעקלעך וועג ווען
איר האָבן עטלעכע סאָרט פון מיסמאַטטשעד טיפּ.
און ווידער, אַרבעט מיט עס.
ווייַל עס וועט זייַן פראַסטרייטינג בייַ ערשטער ווי איר פּרובירן צו רעכענען אויס וואָס פּונקט
איר ניטאָ געטינג דעם ומגעוויינטלעך טעות דילינג מיט טייפּס.
אבער עס וועט זיין ווערט עס אין די סוף.
>> עס טוט האַנדלען מיט אָטאַמאַטיק זיקאָרן פאַרוואַלטונג,
אַזוי ניט מער טאָן איר האָבן צו האַנדלען מיט זאכן
ווי מאַללאָק און פֿרייַ און אַלע פון די סאָרץ פון זאכן.
און עס ס אויך דיזיינד פֿאַר דזשענעראַלאַטיז.
אזוי בשעת מיר קענען נוצן אַ קסקאָדע צו שאַפֿן יאָס אַפּפּס און מעק פּראָגראַמען,
מיר קענען אויך נאָר נוצן עס ווי אַ סקריפּטינג שפּראַך.
און אַזוי מיר קענען נוצן עס סאָרט פון אַנשטאָט פון פפּ אָדער אַנשטאָט
פון פּיטהאָן צו פאקטיש געשווינד פּאַרס און פּראָצעס
עטלעכע דאַטן וואָס מיר האָבן אויף אונדזער קאָמפּיוטער.
>> עס האט אַ ברייט פאַרשיידנקייַט פון מאָדערן פֿעיִקייטן, אָפּטיאָנאַלס, מוטאַביליטי,
דזשאַנעריקס, קלאָוזשערז, און אַ פּלאַץ פון דעם שטאָפּן איר זאל אָדער זאל נישט דערקענען.
און עס ס נאָר סאָרט פון אַ נעבעך טייל פון די שפּראַך אַז עטלעכע פון ​​די
סאָרט פון פיוטשעריסטיק, מאָדערן עלעמענטן אַז זענען קאַנטיינד ין דער יסודות זענען
אַזוי דיפּלי ינגריינד אַז איך פאקטיש וועט האָבן צו לערנען איר קס50.5 אַ קליין ביסל.
>> מיר האָבן צו לערנען אַ קליין ביסל מער וועגן עטלעכע פון ​​פֿעיִקייטן אין סדר
צו טאַקע פֿאַרשטיין וואָס ס געגאנגען אויף און אַזוי אַז איר קענען קוקן אין קאָד
און ניט פילן טאָוטאַלי פאַרפאַלן.
און איר וועט זען וואָס איך מיינען דורך אַז אין נאָר אַ מינוט.
גוט, אַזוי לעט'ס-- גענוג פון דעם סאָרט פון טעאָרעטיש שטאָפּן.
זאל ס פאקטיש קוקן אין אונדזער זייער ערשטער ביסטרע פּראָגראַם.
עס ס איינער שורה פון קאָד.
שורה 14 רעכט דאָ, עס זאגט דרוקן ל ן העלא קס50.
>> אזוי עס ס אַ פּאָר פון זאכן וואָס ס זייער פאַרשידענע וועגן דעם קאַמפּערד
צו זאכן אַז איר זאל זיין געניצט צו פון C, פֿאַר בייַשפּיל.
איינער פון זיי איז אַז עס ס ניט קיין ינטמאַין, דאָרט ס קיין אַרייַננעמען אָפּטיילונג,
עס ס קיין פון דעם עקסטרע שטאָפּן.
די אַרייַננעמען, ווי נאָרמאַל איך / אָ, ווי די לייברעריז
אַז פאקטיש צושטעלן די נאָרמאַל פֿעיִקייטן פון די שפּראַך,
זענען אויטאָמאַטיש אַרייַנגערעכנט ווי טייל פון ביסטרע ס נאָרמאַל ביבליאָטעק
און אַז זענען אויטאָמאַטיש ימפּאָרטיד.
איר טאָן ניט האָבן צו טאָן אַז אַרייַנפיר מאַניואַלי.
>> ינטמאַין טוט נישט עקסיסטירן ווייַל די הויפּט פּאָזיציע פונט פֿאַר דער קאָד
איז טאקע ביי די אָנהייב פון די קאָד.
אזוי קיין קאָד אַז איר האָבן סטאַרטינג פון די אָנהייב
וועט אַקטשאַוואַלי זיין עקסאַקיוטאַד אין די אָנהייב.
אזוי דעם טאַקע זייער סימפּלאַפייז.
נאָטיץ אויך, אַז עס ס קיין פּינטל-קאָמע.
עס ס קיין סעמיקאָלאָנס אין דעם לשון.
איר שטעלן אַ דערקלערונג אויף אַ יחיד שורה
און דעריבער דער ווייַטער שורה רעפּראַזענץ די אנדערע דערקלערונג.
אויב איר ווילן צו שטעלן מוליטיפּלע סטייטמאַנץ אָנליין,
דעמאָלט איר האָבן באַזונדער עס דורך סעמיקאָלאָנס.
אבער פֿאַר די רובֿ טייל, פֿאַר גוט נוסח, מיר רע
קיינמאָל געגאנגען צו זען סעמיקאָלאָנס פֿאַר די צוועקן פון סעפּערייטינג סטייטמאַנץ
אין ביסטרע.
אזוי ווי טוט דעם פאקטיש אַרבעט?
נו זייער פיל ווי C מיר פאקטיש האָבן צו צונויפנעמען דעם.
און אַזוי מיר קענען טאָן אַז דורך ניצן ביסטרע C און דעמאָלט 1.סוויפט.
און דעמאָלט נאָך אַ פּאָר מינוט דעם וועט צונויפנעמען
און דעמאָלט איך קענען לויפן פּונקט איינער.
און ווי עס וועט נאָר זאָגן "העלא קס50."
אָסאַם, אַזוי עס מיר גיין.
עס ס אונדזער ערשטער העלא וועלט פּראָגראַם.
זאל ס מאַך אויף צו נומער צוויי.
>> איצט אין טהיס-- דעם האט געביטן אַ ביסל, ווייַל כוועראַז נאָרמאַלי איר
דאָ-- אין פאַקט שטענדיק טאָן איר האָבן צו צונויפנעמען אַ ביסטרע אַפּלאַקיישאַן איידער איר
פאקטיש לויפן יט-- איינער פון די גרויס פֿעיִקייטן
אַז איך אַלודאַד צו פריער איז אַז ביסטרע קענען אַקטשאַוואַלי זיין געניצט אין סאָרט
פון אַ פּסעוודאָ-ינטערפּרעטיווע מאָדע, עס איז אין פאַקט ווי אַ יבערזעצער.
אבער וואָס דעם וועט טאָן איז עס איז, אין פאַקט, אַ ביסטרע אַפּלאַקיישאַן
אַז איר קענען לויפן.
>> אזוי פֿאַר בייַשפּיל אויב איר נאָר דרוקן ביסטרע דאָ, וואָס וועט פאָרקומען
איז אַז איר וועט באַקומען אַ פּינטלעך.
און איר קענען דרוקן דיין ביסטרע קאָד, דרוקן העלא, און לויפן עס.
און עס וועט פאקטיש פּרינט-- געזונט, עס האט ניט דרוקן אין דעם פאַל
ווייַל עס געדרוקט צו סענטערד אויס, וואָס איז ניט קענטיק דאָ.
אבער עס איז אַקטשאַוואַלי קענען צו פונקציאָנירן.
און אַזוי אין דעם פאַל, איך בין נאָר געגאנגען צו נוצן דעם ווי אַ שריפט.
און איך קענען פאקטיש לויפן דעם קאָד עס.
אזוי די וועג אַז איך פאקטיש לויפן עס וועט זייַן אַ ביסל אַנדערש,
אָבער איר וועט זען אַז אין נאָר אַ מאָמענט.
איצט, אין דעם פאַל וואָס מיר רע געגאנגען צו טאָן איז צו ערשטער דעפֿינירן אַ בייַטעוודיק.
אזוי דעם איז ווי מיר דעפֿינירן אַ בייַטעוודיק אין ביסטרע,
איז מיר נוצן די לאָזן קיווערד, נאכגעגאנגען דורך די נאָמען פון די בייַטעוודיק,
און דעמאָלט מיר צושטעלן עטלעכע יניטיאַליזינג דאַטן אָפּטיאָנאַללי.
אזוי דעם פאַל מיר רע דיפיינינג אַ קעסיידערדיק גערופן נאָמען,
און מיר רע געגאנגען צו נוצן אַז אין די פּראָדוקציע פון ​​אונדזער דרוקן שורה
בייַ די זייער דנאָ, העלא נאָמען.
>> איצט באַמערקן אַז אלא ווי ניצן% s, מיר קענען ענקאַפּסאַלייט די נאָמען פון דעם
בייַטעוודיק אין / () און זיין קענען צו קאַנקאַטאַנייט אין די אינהאַלט פון דעם
שטריקל אין דעם שטריקל.
איצט ניט ענלעך C, שטריקל איז אַ פאַקטיש פאַקטיש טיפּ אין ביסטרע.
און אַזוי עס זיצט אַלאָנגסייד ינץ און אַלאָנגסייד
דאַבאַלז זייער לייכט און געוויינטלעך קאַמפּערד
צו עטלעכע פון ​​די אנדערע שפּראַכן אַז מיר ווע געזען.
אזוי דעם וואָלט פאקטיש פונקציאָנירן נאָר ווי איר וואָלט דערוואַרטן.
>> איך קענען לויפן 2.סוויפט.
און מיר זען אַז מיין נאָמען איז פאקטיש ספּליסעד אין, "העלא דן."
גוט, אָסאַם.
מאָווינג אויף צו נומער דריי.
איצט עס איז געווען אַ קליין ביסל פון אַ ווייַס ליגן אַז איך
האט אַז די וועג אַז מיר דערקלערן וועריאַבאַלז איז צו נוצן די לאָזן קיווערד.
ווי פילע מאל ווי איר עפשער קענען איר טאָן ווילן צו נוצן לאָזן, ווייַל וואָס אַז טוט
איז עס דיפיינז אַ קעסיידערדיק.
און אַז דערציילט ביסטרע אַז עס קענען אַפּטאַמייז די גיכקייַט פון דיין אַפּלאַקיישאַן
ווייַל עס ווייסט אַז אַז בייַטעוודיק איז נישט געגאנגען צו טוישן.
>> אזוי אָפּשאַצן קערפאַלי ווען איר ניטאָ געגאנגען צו נוצן
אַ בייַטעוודיק פֿאַר דער צוועקן פון טשאַנגינג עס.
און ווען איר ניטאָ געגאנגען צו שאַפֿן אַ בייַטעוודיק נאָר
צו האַלטן עטלעכע דאַטן און אַז איז ניט פאקטיש געגאנגען צו טוישן.
אזוי דעם באַגריף פון יממוטאַביליטי, עס ס ניט אַקשלי געגאנגען צו טוישן,
איז אַ וויכטיק איינער אפילו ווי ווייַט אַראָפּ ווי דיפיינינג וועריאַבאַלז.
אזוי דאָ מיר ווע דיפיינד אַ נאָמען, לאָזן נאָמען, און אין דעם פאַל
עס ס אַ קעסיידערדיק, וואָס איז פון טיפּ שטריקל, און עס איז גלייַך צו דן.
>> אזוי כוועראַז אין די פריערדיק ווערסיע, עס ינפערס-- און דורך "עס"
איך מיינען סוויפט-- ביסטרע ינפערס די טיפּ פון דאַטן
אַז מיר ווע אריין אין די בייַטעוודיק.
אין דעם פאַל, מיר קענען זיין יקספּליסאַט.
אזוי לאָזן דעמאָלט דער נאָמען פון דעם בייַטעוודיק איז נאָמען, דעריבער אַ צווייפּינטל.
און נאָך דעם צווייפּינטל טאָן מיר ספּעציפיצירן די טיפּ פון דאַטן.
אזוי ניט מער איז עס ינט נאָמען אָדער שטריקל נאָמען אָדער עפּעס ווי אַז.
אבער אַנשטאָט לאָזן פירמע, מיר רע דיפיינינג צי אָדער ניט
עס ס קעסיידערדיק אָדער בייַטעוודיק, נאכגעגאנגען דורך די נאָמען,
נאכגעגאנגען דורך די טיפּ אָפּטיאָנאַללי.
>> אזוי אין דעם פאַל מיר רע דיפיינינג דעם נאָמען איז אַ שטריקל.
מיר ניטאָ געזאגט איז דן.
און איצט איך האָבן אן אנדער בייַטעוודיק, אין דעם פאַל עס ס גערופן פירמע.
אבער באַמערקן אַז עס איז פּרעפיקסעד מיט די וואַר קיווערד.
די וואַר קיווערד מיטל אַז דעם בייַטעוודיק קענען
זיין געביטן בייַ אַ שפּעטער פונט אין צייַט, ערגעץ אַראָפּ אין די קאָד
קענען מיר פאקטיש טוישן עס און עס וועט ניט געבן אונדז קיין באַזונדער טעות.
>> מיר קענען טאָן נאָרמאַל קאָנקאַטענאַטינג אָפּעראַטאָר דאָ ניצן די פּלוס סימבאָל
צו פאקטיש לייגן אונדזער נאָמען אין דעם שטריקל.
און דעמאָלט מיר קענען דרוקן אויס ווי מיר האבן געזען בלויז אַ מאָמענט צוריק.
איצט לאָזן ס זאָגן אַז איר ווילן צו שאַפֿן אַ בייַטעוודיק
אָבער איר טאָן ניט ווילן צו ינישאַלייז עס נאָך.
איר טאָן ניט נאָך ווילן צו שטעלן קיין דאַטן ין עס.
נו איר האָבן צו זאָגן ביסטרע וואָס דער טיפּ פון דאַטן
איז געגאנגען צו זיין פאר איר קענען פאקטיש דעפֿינירן עס רעכט.
>> אזוי אין דעם פאַל, ווען מיר ווע דיפיינד אַ בייַטעוודיק גערופן מיינונג מיר האָבן צו זיין
יקספּליסאַט וועגן זייַן טיפּ, ווייַל עס קענען ניט אָפּלערנען פּונקט קוקן
בייַ די ינישאַלייזד דאַטן אַז איר צושטעלן צו עס.
עס וועט געבן אונדז אַ טעות אויב איר נאָר טיפּ וואַר מיינונג, פֿאַר בייַשפּיל,
ווייַל עס האט קיין טיפּ דעריבער.
אזוי מיינונג = 100.
אזוי אַז 100 איז אַ ינטעגער, עס פיץ זייער נייסלי אין אַז.
עס וועט פאָרזעצן צו פונקציאָנירן.
מיר קענען זען ווי דעמאָלט מיר קענען קאַנקאַטאַנייט דעם אין.
איצט איר זאל זייַן געפרואווט, אויב איר פאקטיש
געוואלט צו קאַנקאַטאַנייט די מיינונג אין אנדערן טעקסט שטריקל,
אין אנדערן שטריקל, אַז איר וואָלט נאָר נוצן אַז זעלביקער קאָנקאַטענאַטינג אָפּעראַטאָר.
און אַז וואָלט נאָרמלי זיין אמת.
אבער ביסטרע וועט ניט לאָזן איר צו ימפּליסאַטלי טוישן די טיפּ פון דאַטן.
אזוי אין דעם פאַל, דעם שורה, 25, וועט פאַרלאָזן
ווייַל מיינונג איז אַ ינטעגער און נישט אַ שטריקל.
און אַזוי עס ס אַ מיסמאַטש שטעלן פון טיפן.
אזוי איר האָבן צו זיין יקספּליסאַט ווען איר ווילן צו טוישן דעם דאַטן,
ווען איר ווילן צו נייטן דעם דאַטע אין אַ אַנדערש טיפּ
און זאָגן, גוט, איך ווילן צו נעמען דעם מיינונג, וואָס איז אַ ינטעגער,
און גער עס צו אַ שטריקל.
>> אזוי איך נעמען אַ קאַפּיטאַל s סטרינג אַלע פון ​​די טייפּס, איר וועט באַמערקן, זענען קאַפּיטאַלייזד,
ינט, דאָובלע, סטרינג, אַזוי אויף און אַזוי אַרויס.
אַלע פון ​​זיי זענען קאַפּיטאַלייזד נאָר צו מאַכן זאכן גרינגער.
און מיר וועט זאָגן קאַפּאַטאַלייז שטריקל פאָרן אין עס מיינונג.
און עס וועט שאַפֿן אַ שטריקל אויס פון אַז ינטעגער.
און דעמאָלט מיר קענען קאַנקאַטאַנייט די צוויי זייער נייסלי.
קיין שאלות אויף דעם שטאָפּן אַזוי ווייַט?
כל רעכט, לאָזן ס אַקער דורך צו נומער פיר.
>> איצט לאָזן ס רעדן וועגן עטלעכע מער אַוואַנסירטע סטראַקטשערז, ווי ערייז און לופּס.
און ניט ענלעך C, ערייז אין ביסטרע זענען נישט רעפּראַזענטאַד דורך פּוינטערז.
פּאָינטערס אין ביסטרע, כאָטש זיי עקסיסטירן, גערופן
ווי אַנסייף פּוינטערז אָדער עטלעכע ענלעך טיפּ ווי דעם,
זיי ניטאָ ניט יקספּאָוזד צו איר נאָרמלי.
אזוי עס ווערט זייער שווער פֿאַר איר צו מאַניפּולירן
די זיקאָרן גלייַך פון דיין קאָמפּיוטער.
>> אזוי ערייז זענען נאָר אַ דאַטן טיפּ.
און זיי ניטאָ רעפעראַנסט ניצן דעם סאָרט פון איצט נאָרמאַל קוואַדראַט קלאַמער נאָוטיישאַן
אַז איר ווע געזען פריער.
אבער ווען איר פאקטיש ווילן צו דעפֿינירן אַ טיפּ פון אַ בייַטעוודיק
ווי אַ מענגע פון ​​עטלעכע באַזונדער טיפּ, דעמאָלט איר
שטעלן אַז טיפּ אין קוואַדראַט בראַקאַץ.
אזוי וואָס איך בין געזאגט דאָ איז אַז איך בין קריייטינג אַ בייַטעוודיק גערופן
גראַדעס פון טיפּ ינט מענגע.
און איך בין באַשטעטיקן אַז גלייַך צו עטלעכע יניטיאַליזעד דאַטן, וואָס אין דעם פאַל
איז 100, 0, 90, 85, וועלכע איז נאָר אַ זאַמלונג פון אַרבאַטרערי גראַדעס דאָ.
איצט אין דעם פאַל איך קען, געדענקען, באַזייַטיקן די טיפּ,
און עס וואָלט זייַן ביכולת צו אָפּלערנען עס באזירט אויף די ינישאַלייזד דאַטן.
אבער אויב איך אַוועקגענומען דעם און איך דארף צו שטעלן עס שפּעטער,
דעמאָלט איך וואָלט האָבן צו מאַכן זיכער אַז איך האָבן די טיפּ עס.
כל רעכט, לאָזן ס מאַך צוזאמען.
אזוי מיר קאַנ-- ערייז צושטעלן צו אונדז אַ פאַרשיידנקייַט
פון מעטהאָדס דורך וואָס פּינטעלע נאָוטיישאַן בייַ איר זענען מיסטאָמע איצט באַקאַנט מיט.
אזוי גראַדעס.קאָונט, פֿאַר בייַשפּיל, דערציילט אונדז דווקא די נומער
פון עלעמענטן וואָס זענען קאַנטיינד ין דעם מענגע.
>> אויב איך ווילן צו לייגן אַדדיטיאָנאַל-- איצט באַמערקן אַז דעם איז אַ וואַר
און נאָט-- דעם איז אַ בייַטעוודיק און ניט אַ קעסיידערדיק, וואָס
מיטל אַז איך קענען ענדערן די אינהאַלט פון דעם מענגע, איך קענען לייגן אַבדזשעקץ צו עס.
אבער איך קענען ניט נאָר זאָגן גראַדעס און דעמאָלט אין קוואַדראַט בראַקאַץ
פיר, ווייַל אַז וועט זיין אַ אויס פון גווול טעות אין דעם פאַל.
אויב איך ווילן צו פאקטיש טוישן די גרייס פון דעם מענגע,
איך האָבן צו נוצן די פּינטעלע צוגעבן אופֿן צו לייגן עפּעס אויף צו די זייער סוף פון עס.
איך קענען, אָבער, טוישן יחיד ינדיסעס.
>> אזוי איך קען נוצן גראַדעס און דעריבער קוואַדראַט בראַקאַץ
נול צו מאַניפּולירן דעם ערשטער אינדעקס און אַזוי אויף, ווי איר וואָלט נאָרמאַלי דערוואַרטן.
און איך קענען טאָן די זעלבע צו פאקטיש באַקומען די דאַטן פון וואָס ווי געזונט.
איצט עס ס אויך סאָרט פון אַ פאַנטאַזיע אופֿן פון טאן דעם, גראַדעס פּלוס יקוואַלז
און דעמאָלט אנדערן אינדעקס, וואָס וועט אַפּפּענד--
אָדער ניט אנדערן ינדעקס-- אָבער אנדערן רשימה וואָס
וועט צוגעבן אַז רשימה צו די צוריק פון גראַדעס.
און די גראַדעס וועט דעמאָלט אַנטהאַלטן אַלע אַז.
אבער אַז ס סאָרט פון אַ עקסטרע זאַך אַז איך בין נאָר ווייַזונג איר פֿאַר שפּאַס.
>> איצט דאָרט ס אַ פֿאַר שלייף.
און דעם איז די אָנהייב פון ווו זאכן אָנהייבן צו טוישן אַ ביסל ביסל.
נאָטיץ ווי דעם פֿאַר שלייף איז אַנדערש פון פֿאַר לופּס אין סי
איצט איך וועט טאָן אַז פֿאַר לופּס אין סוויפט קענען
זיין געמאכט צו קוקן ווי פֿאַר לופּס אין C, אָבער עס ס אַ פּלאַץ פון מער נוצלעך קאַנסטראַקץ
אַז יסענשאַלי עלימינירן די נויט צו האָבן פֿאַר וואַר איך יקוואַלז 0 פּינטל-קאָמע איך
איז ווייניקער ווי עטלעכע לענג, אַזוי אויף און אַזוי אַרויס, רעכט?
און דעם בויען איז נאָר איינער פון זיי.
>> פֿאַר אינדעקס, אינדעקס איז נייַ בייַטעוודיק, אין דעם פאַל, אין קייט.
און וואָס איך בין געזאגט איז אַז עס ס אַ קייט פון 0 אַלע די וועג אַרויף צו
אָבער נישט אַרייַנגערעכנט גראַדעס.קאָונט.
אזוי דעם פּינטעלע פּינטעלע ווייניקער ווי צייכן רעפּראַזענץ
אַ קייט פון וואַלועס סטאַרטינג פון נול אַלע די וועג אַרויף צו גראַדעס.קאָונט מינוס 1.
עס איז אַ באַזונדער אָפּעראַטאָר אַז יגזיסץ,
וואָס איז פּונקט פּינטעלע פּינטעלע, וואָס וואָלט מיינען אַז איך ווילן די קייט פון נול
צו גראַדעס ציילן ינקלוסיוו.
>> אבער אין דעם פאַל, ווייַל די ערייז זענען נול אינדעקס, מיר פון קורס
טאָן ניט ווילן צו גיין צו די מאַקסימום נומער פון גראַדעס.
איך קענען סאַכאַקל דעם גראַדעס, ווי איר זאלן דערוואַרטן, און רעזולטאַט אַלע פון ​​דעם שטאָפּן.
גוט, מאָווינג אויף.
איצט לאָזן ס רעדן וועגן פאַנגקשאַנז.
אין סדר צו דעפֿינירן אַ פונקציע איר נוצן דעם פונק קיווערד.
און ווידער, אין סוויפט איר האָבן צו זייַן זייער אָפּגעהיט מיט דער טייפּס.
איר צושטעלן צו אים פּאַראַמעטערס דורך דיפיינינג, פֿאַר בייַשפּיל,
די נאָמען פון די פּאַראַמעטער און דעמאָלט אין קאָלין, די טיפּ פון דאַטן
אַז איר דערוואַרטן אַז פּאַראַמעטער צו אָננעמען.
>> אזוי אין דעם פאַל מיר האָבן אַ פונקציאָנירן גערופן דרוק מיינונג ציילן.
עס אַקסעפּץ אַ בייַטעוודיק גערופן גראַדעבאָאָק, אָדער אלא אַ פּאַראַמעטער גערופן גראַדעבאָאָק.
און מיר זענען יקספּעקטינג אַז גראַדעבאָאָק צו זייַן אַ מענגע פון ​​ינטאַדזשערז.
אויב אַז גראַדעבאָאָק איז ליידיק, מיר וועט דרוקן איין זאַך.
אַנדערש מיר וועט דרוקן אויס די נומער פון גראַדעס אַז דעם פאקטיש האט.
>> איצט אויב מיר ווילן צו צוריקקומען עטלעכע ווערט, דעריבער די וועג
אַז מיר מאָדיפיצירן דעם דעפֿיניציע איז צו פאקטיש נוצן דעם פייַל קיווערד,
אָדער צו נוצן דעם פייַל סיגניפיער.
אזוי דאָ מיר רע געגאנגען צו דעפֿינירן אַ פונקציאָנירן גערופן דורכשניטלעך.
מיר ניטאָ געגאנגען צו אָננעמען אַ רשימה פון נומערן.
און מיר רע געגאנגען צו צוריקקומען אַ טאָפּל, וואָס וועט אַלעווייַ
זייַן די דורכשניטלעך פון דעם מענגע.
און אין סדר צו טאָן אַז, אין סדר צו פאקטיש רעכענען דעם דורכשניטלעך,
מיר וועט נעמען אַ סאַכאַקל און מיר וועט פון קורס סאַכאַקל אַרויף אַלע פון ​​די אַבדזשעקץ
ין דעם מענגע.
>> נאָטיץ אַז דאָרט ס אַ נייַ נוסח פון פֿאַר שלייף דאָ.
מיר טאָן ניט האָבן צו זיין יקספּליסאַט וועגן יטעראַטינג איבער יעדער איין עלעמענט,
אָבער מיר קענען אַנשטאָט זאָגן פֿאַר מיינונג און גראַדעבאָאָק, טייַטש
אַז פֿאַר יעדער איין פּונקט אַז מיר האָבן אין דעם,
צושטעלן אַז פּונקט אין דעם בייַטעוודיק גערופן מיינונג.
און איך ווילן צו טאָן עפּעס מיט אים.
אזוי איך בין געגאנגען צו סאַכאַקל אַלע פון ​​דעם דאַטן און פאקטיש צוריקקומען די טאָפּל אָפּטייל.
>> איצט באַמערקן ווידער דאָ עס איז די באַגריף פון ינטעגער אָפּטייל אין סוויפט.
אויב איר ווילן צו טאָפּל אָפּטייל ווייַל איר ווילן דעסאַמאַלז,
דעמאָלט איר האָבן צו זיין יקספּליסאַט, ניט נאָר וועגן איין זייַט,
ווייַל עס ס ניט געגאנגען צו לאָזן איר צו נייטן דאַטן אויף יעדער זייַט פון דעם,
איר האָבן צו פאקטיש קורס ביידע זייטן אין דאַבאַלז
אַזוי אַז איר ניטאָ זייער יקספּליסאַט וועגן מאכן זיכער
אַז איר ניטאָ טאן טאָפּל אָפּטייל.
>> זאל ס מאַך אויף.
אזוי אויב איך פאקטיש ווילן צו אַקסעפּט-- אַזוי אין דעם באַזונדער בייַשפּיל,
דעם איז נאָך אַ באַפֿעל שורה באזירט אַפּלאַקיישאַן.
און מיר רע סטאַרטינג צו זען עטלעכע פון די לימיטיישאַנז פון די יונג שפּראַך
אין אַז כאָטש מיר קענען צוטריט די טענות דורך ניצן
דעם פּראָסעסס.אַרגומענץ, עס ס נאָך ניט דאַווקע די קלינאַסט
זאַך אַז מיר ווע אלץ געזען.
אבער בייסיקלי איך מוטיקן איר צו סאָרט פון קוקן אין דעם קאָד
און פּרובירן צו רעכענען אויס וואָס פּונקט איז געגאנגען אויף.
>> עססענטיאַללי וואָס ס געשעעניש איז אַז מיר ניטאָ גענומען אַ רשימה פון טענות
און האבן קאָערסינג זיי אין ינטאַדזשערז, און דעמאָלט מיר רע
געגאנגען צו נוצן אַז ווי אַ וועג צו דרוקן אויס די דורכשניטלעך פון אַלע פון ​​אונדזער גראַדעס.
מאָווינג אויף.
איצט דאָרט ס אנדערן טיפּ פון דאַטאַ-- אנדערן דאַטן טיפּ אלא ווי ערייז
גערופן דיקשאַנעריז, וואָס זענען זייער ענלעך צו האַש טישן אָדער האַש מאַפּס
און זענען ענלעך אויך צו פפּ ס אַססאָסיאַטיווע ערייז.
אזוי זיי האבן די געדאנק פון שליסלען און וואַלועס.
>> און זיי ניטאָ דיפיינד אויך מיט דעם קוואַדראַט קלאַמער נאָוטיישאַן,
אָבער דער חילוק איז אַז דיקשאַנעריז האָבן
ין פון די קוואַדראַט קלאַמער, אַ צווייפּינטל.
און די צווייפּינטל סעפּערייץ די דאַטן טיפּ אַז איז דער שליסל און די ווערט.
אזוי אין דעם פאַל, איך בין געגאנגען צו שאַפֿן אַ ווערטערבוך צו אָננעמען עטלעכע גראַדעס.
און עס איז געגאנגען צו זיין פון טיפּ שטריקל: ינט,
וואָס מיטל אַז אַלע פון ​​די קיז זענען געגאנגען צו זייַן סטרינגס,
און אַלע פון ​​די וואַלועס פון יענע קיז זענען געגאנגען צו זייַן ינטאַדזשערז.
>> וואָס דעם מיטל איז אַז איך קענען דעמאָלט דערמאָנען די ספּעציפיש דאַטן
אַז איך ווילן ניצן די שליסלען גאַנץ ווי ניצן נומעריק ינדיסעס ווי איך
וואָלט האָבן פֿאַר אַ נאָרמאַל מענגע.
איצט לאָזן ס זען, עס ס איינער וויכטיק זאַך
אַז איך אויך ווילן צו דערמאָנען וועגן דעם באַזונדער סיקוואַנס פון קאָד.
און אַז איז וואָס עס ס אן אנדער טיפּ פון דאַטן,
אָדער אלא עס ס דעם געדאַנק פון דאַטן וואס איז
קאַנטיינד ין סוויפט גערופן אָפּטיאָנאַלס.
>> און וואָס אָפּטיאָנאַלס מיטל איז אַז עס יקנאַלידזשיז די פאַקט
אַז מאל איר ניטאָ ניט געגאנגען צו באַקומען די דאַטן אַז איר פאקטיש דערוואַרטן.
און אַזוי וואָס איך מיינען דורך אַז יס-- לאָזן ס נעמען אַ קוק אין דעם סיקוואַנס פון קאָד
וואָס יטעראַטעס איבער אַלע פון ​​די טענות אַז זענען דורכגעגאנגען צו דעם קאָד
און טרייז צו בייַטן זיי, פרוווט צו שפּאַלטן אין אַ פאַרשיידנקייַט פון סטרינגס,
ווייַל עס אַקסעפּץ אַ זייער באַזונדער טיפּ פון אַרגומענט.
און דעמאָלט עס איז געגאנגען צו פּרובירן צו נייטן די סטרינגס אַז פאָרשטעלן נומערן
אין ינטאַדזשערז אַז ביסט גראַדעס, אַז איך קענען דעמאָלט צונויפרעכענען.
>> אזוי בייסיקלי איך בין געגאנגען צו ניצן דעם שפּאַלטן פאַנגקשאַנז אַז
יגזיסס ין דער סוויפט נאָרמאַל ביבליאָטעק.
איך בין געגאנגען צו פאָרן אין עס די שטריקל אַז איך ווילן צו שפּאַלטן.
און דעמאָלט אין ניצן דעם סאָרט פון פאַנגקי סינטאַקס, וואָס
איך טאָן ניט וויסן אויב מיר וועט באַקומען צו, אָבער אפֿשר, מיר
וועט פאקטיש ספּעציפיצירן די גענוי כאַראַקטער אַז מיר ווילן צו שפּאַלטן בייַ.
אזוי וואָס טוט דעם אַקטשאַוואַלי קוקן ווי?
זאל ס נעמען אַ קוק בייַ פאקטיש פליסנדיק דעם קאָד.
>> אזוי פֿאַר בייַשפּיל, לאָזן ס זאָגן איך האָבן אַ ויספרעג און איך גאַט 50 אויף אַז.
און איך האָבן אַ פּסעץ און איך גאַט אַ הונדערט אויף אַז.
און איך גאָט-- עס ס אנדערן ויספרעג און איך גאַט אַ 40 אויף אַז.
איך שלאָגן אַרייַן, און יווענטשאַוואַלי וואָס וועט פּאַסירן איז אַז וואָס עס ס טאן
איז גענומען די פּאַראַמעטערס, ספּליטינג די סטרינגס אין די קאָלאָנס,
רעקאַגנייזינג אַז עס ס צוויי עלעמענטן אין יעדער איינער,
און עס ס יסענשאַלי בעכעסקעם שפּור פון יעדער.
>> אזוי איך האָבן אין מיין ווערטערבוך אַ ויספרעג, וועמענס ווערט איז רעפּראַזענטאַד דורך די נומער 50,
איך האָבן אַ פּסעט אַז האט ווערט פון 100, און אַ ויספרעג איין וואָס האט אַ ווערט פון 40.
דערנאך שפּעטער אויף אין די קאָד איך פאקטיש דורכשניטלעך אַלע פון ​​יענע וואַלועס
און רשימה אַלע פון ​​די שליסלען פון אַז באַזונדער ווערטערבוך.
אבער דעם איז וויכטיק אַזוי אַז איר קענען באַמערקן
וואָס איז געשעעניש, איז אַז וואָס מיר ווילן צו טאָן איז צו נעמען דעם שטריקל
און שפּאַלטן עס אין דעם כאַראַקטער, וואָס מיר קענען טאָן ווידער מיט דעם שפּאַלטן
פונקציאָנירן ניצן דעם סאָרט פון טשיקאַווע סינטאַקס אַז יגזיסס דאָ.
>> פונקט פֿאַר איצט יבערנעמען אַז אַז ס גוט.
מיר וועט קוקן מער אין דעם אין נאָר אַ ביסל בשעת.
אבער איצט עס ס אַ טשיקאַווע אַספּעקט אַז מיר פאקטיש
ווילן צו פּרובירן צו בייַטן דעם שטריקל אין אַ ינטעגער.
אבער אין אנדערע שפּראַכן וואָס זאל פּאַסירן איז
אַז מיר וואָלט מיסטאָמע פּרובירן צו טאָן עס און יעדער באַקומען צוריק
עטלעכע סאָרט פון סענטינעל ווערט ווי נעגאַטיוו איינער
אָדער אפֿשר אַ נאַל אָדער עפּעס ווי אַז.
אָדער אפֿשר עס וואָלט נאָר געפֿירט אַ טעות.
און מיר וואָלט האָבן צו דעריבער כאַפּן אַז טעות
און דעריבער פּרובירן צו טאָן עפּעס באזירט אויף די פאַקט
אַז דעם מאַשין צו אַ ינטאַדזשער ניט אַנדערש.
אַז ס ווו דעם געדאַנק פון אָפּטיאָנאַלס קומט אין.
איר קענען פאקטיש שאַפֿן אַ דאַטן טיפּ אַז איז אַ ינט קשיא צייכן, פֿאַר בייַשפּיל.
אַז מיטל אַז דאָס ינטעגער איז, אין פאַקט, אַפּשאַנאַל.
און וואָס וועט פּאַסירן איז אַז עס קען אַנטהאַלטן אַ ינטאַדזשער, אָדער עס קען ניט.
עס קען, אין פאַקט, זייַן דעם אנדערע געדאַנק, לעגאַמרע גערופן ניל.
אין וואָס אַז מיטל אַז עס ס קיין ווערט כוואַצאָועווער אין דעם.
עס ס ניט אַפֿילו נול, עס ס נאָר קיין ווערט.
עס ס לעגאַמרע קיין ווערט רעפּראַזענטאַד.
>> און אַז איז וואָס דעם שורה 71 איז טאן.
איז אַז עס איז געזאגט אַז איך ווילן צו פּרובירן צו שטעלן אַ ווערט,
אַ בייַטעוודיק גערופן מיינונג, גלייַך צו די קאַנווערזשאַן פון דעם שטריקל אין אַ ינט.
אזוי איך ווע גענומען דעם שטריקל, דעם ערשטער קאַמפּאָונאַנץ,
אָדער אלא די רגע קאַמפּאָונאַנץ, ווייַל דעם
איז נול ינדעקסט, פון דעם שטריקל אַז איך ווע שפּאַלטן.
און איך ווילן צו בייַטן אַז צו אַן ינטאַדזשער.
אבער עס קען נישט שטענדיק גיינ ווייַטער נאָרמאַלי, ווייַל ימאַדזשאַן
וואָס וואָלט פּאַסירן אויב, אלא ווי דרוקן אַ נומער, איך טיפּ פון קורס ווי אַסדף.
>> עס ס געגאנגען צו פאַרלאָזן.
עס ס ניט אַקשלי געגאנגען צו זיין קענען צו בייַטן אַז צו אַ ינטאַדזשער
ווי איך וואָלט דערוואַרטן.
אזוי גאַנץ ווי בריק אַוועק עטלעכע סאָרט פון אַ טעות,
מיר האָבן דעם געדאַנק פון אַ אַפּשאַנאַל.
און אַז מיטל אַז ניצן דעם קשיא צייכן איך קענען זאָגן,
גוט, איז עס מעגלעך אַז איך קענען נעמען דעם, קאָנווערטעד עס אין אַ ינט,
און שטעלן עס אין אַ בייַטעוודיק, וואָס וועט אויך זייַן אַ ינט.
אויב אַזוי, דעמאָלט אַז מיטל אַז דאָס איז געווען געראָטן
און דעם ערשטער חלק פון די בלאָק קענען פאָרזעצן.
>> אַנדערש, עס ניט אַנדערש.
עס איז ניט קיין ווערט אין גראַדע-- אָדער אלא עס איז קיין ווערט אין יגזיסטינג,
און איך פאקטיש האָבן צו פּרובירן צו שעפּן דעם טעות צושטאַנד.
איר 'רע געגאנגען צו זען דעם קשיא צייכן אַלע די צייַט
אין סוויפט און אין בייַשפּיל קאָד פֿאַר סוויפט.
און אין פאַקט די ניל אָפּעראַטאָר, דעם סאָרט פון קשיא צייכן, די אָפּטיאָנאַלס טייל,
איז געגאנגען צו זיין מיסטאָמע איינער פון די מער שווער זאכן
צו סאָרט פון ייַנוויקלען דיין קאָפּ אַרום ווי איר פאקטיש אַרבעט מיט עס.
>> עס זאל מאַכן זינען איצט.
און אין פאַקט, ווען איך איז געווען שרייבן מוסטער קאָד פֿאַר דעם,
אַוואַדע איך פארשטאנען וואָס איז געגאנגען אויף,
אָבער נאָך געכאפט מיר דורך יבערראַשן יעדער אַזוי אָפֿט
ווען איך וואָלט געפינען אַז עטלעכע דאַטן איז פאקטיש
אַ נול ווערסיע, אַ אַפּשאַנאַל ווערסיע פון די דאַטן וואָס איך איז געווען יקספּעקטינג.
אזוי נאָר פאַרשטיין אַז אויב איר האָבן אַ אַפּשאַנאַל ווערסיע
איר האָבן צו אַנפּאַק אַז דאַטן פון דעם קעסטל.
>> אזוי עס ס סאָרט פון ווי י-- ימאַדזשאַן אויב איר האָבן אַ קעסטל און עס כּולל עפּעס.
און וואָס איר דאַרפֿן צו טאָן איז צו פרעגן די קשיא,
איז עס מעגלעך אַז דאָס קעסטל פאקטיש כּולל די דאַטן אַז איך בין קוקן פֿאַר?
אויב אַזוי, דעמאָלט ציען אַז דאַטן אויס און שטעלן עס אין דעם בייַטעוודיק יגזיסטינג.
אויב נישט, דעמאָלט איך נאָר האָבן צו דיסריגאַרד די אינהאַלט פון דעם קעסטל
בעסאַכאַקל ווייַל עס ממש כּולל גאָרנישט.
>> קיין שאלות אויף דעם?
גוט, לאָזן ס מאַך אַוועק פון דעם סאָרט פון באַפֿעל שורה באזירט זאַך
און אָנהייבן קוקן אין עטלעכע פון ​​די טעכנאָלאָגיע
אַז קסקאָדע גיט צו אונדז אין דער פאָרעם פון פּלייגראַונדז.
אזוי עס ס אַ פּלאַץ פון פיייקייַט דאָ מיט סוויפט.
און אויב איר עפענען אַרויף קסקאָדע און עס פרעגט איר וואָס איר ווילן צו טאָן,
איר קענען עפענען אַרויף די שפּילפּלאַץ און נאָר שפּילן אַרום
מיט אַ פּלאַץ פון פאַרשידענע סטראַקטשערז און אַספּעקץ פון די שפּראַך
איידער איר אפילו אָנהייבן רירנדיק די יאָס סדק אָדער די מעק סדק.
>> אזוי דעם פאַל, לאָזן ס זאָגן אַז איך האַווע-- איך האָבן אַ לעפיערעך קאַנטרייווד בייַשפּיל
דאָ, אָבער טראָגן מיט מיר ווי מיר סאָרט פון אַרבעט דורך דעם בייַשפּיל.
זאל ס זאָגן אַז מיר האָבן צו טאָן אַ פּלאַץ פון יקספּאָונאַנץ מיט אַ פאַרפעסטיקט ווערט,
ווי מיר וויסן אַז מיר 'רע געגאנגען צו דאַרפֿן צו טאָן אַ פּלאַץ פון קוואַדראַט כוחות, פֿאַר בייַשפּיל.
אזוי מיר ניטאָ געגאנגען צו נעמען עטלעכע ווערט רענטגענ, מיר רע געגאנגען צו קוואַדראַט עס,
מיר ניטאָ געגאנגען צו נעמען עטלעכע ווערט י און מיר רע געגאנגען צו קוואַדראַט עס.
אזוי אויף און אַזוי אַרויס.
>> איצט מיר זאל אַקטשאַוואַלי נאָר שאַפֿן אַ מאַכט פון 2 פונקציאָנירן פֿאַר דעם, רעכט?
אזוי מיר איר'ד שאַפֿן אַ מאַכט פון 2 פונקציאָנירן.
מיר וועט אָננעמען אַ טאָפּל.
מיר וועט אָוטפּוט-- אָדער מיר וועט צוריקקומען אַ טאָפּל טיפּ.
מיר וועט נעמען דעם רעזולטאַט און דעמאָלט פֿאַר צוויי מאָל
וואָס מיר פאקטיש נעמען די רעזולטאַטן, וואָס איז די ינישאַלייזד צו ווערט פון איין,
און מערן עס דורך רענטגענ.
אזוי אין עסאַנס מיר האָבן רענטגענ מאל רענטגענ דאָ.
>> און אַזוי דעמאָלט איך קענען דעמאָלט, ווי מיר זאלן דערוואַרטן, נעמען דעם, לויפן מאַכט פון 2,
צושטעלן צו עס עטלעכע דאַטן, איך ווי 2.0.
און מיר באַקומען צו זען די רעזולטאַטן דאָ 4.0.
לויפן מאַכט פון 2 אויף 3.2 און מיר באַקומען צו זען אונדזער רעזולטאַט, 10.24.
אזוי ווייַט אַזוי גוט, רעכט?
איצט מיר ניטאָ טראכטן, געזונט, גוט.
איצט איך פאקטיש דאַרפֿן צו טאָן אַ פּלאַץ פון כוחות פון 3.
אזוי איך וועט קאָפּיע פּאַפּ אַלע פון ​​דעם קאָד, טוישן די נאָמען פון די פונקציע פון
מאַכט פון 2 צו מאַכט פון 3, און אַלץ וועט זיין דער זעלביקער אַחוץ פֿאַר דעם ווערט
דאָ, דעם קייט, 1 ... 2.
>> אזוי גאַנץ ווי ריפּיטינג דעם שלייף צוויי מאָל,
איך ווילן צו איבערחזרן דעם שלייף דרייַ מאָל.
אזוי איך נאָר טוישן אַז ווערט פון 1 צו 3-- אָדער אלא 2-3.
אזוי ווידער, די זעלבע קאָד, אַז ס די בלויז טוישן.
איצט דעם אויך מעשים.
מאַכט פון 3 צוגעשטעלט אין עטלעכע ווערט פון 2.
מיר באַקומען 8.
אזוי 2 קיובד.
און 3.2 קיובד איז 32.768.
און אַזוי ווייַט אַזוי גוט, רעכט?
אבער אַלעווייַ דעם איז אַ ביסל ביסל פון אַ רויט פאָן פֿאַר איר
אין אַז מיר איצט האָבן עטלעכע דיופּלאַקיישאַן פון קאָד
אַחוץ פֿאַר עטלעכע זייער מינערווערטיק טוישן פון איין צו די ווייַטער.
אזוי איז עס עטלעכע וועג אַז מיר זאלן קענען צו פאַרפּאָשעטערן
דעם פּראָבלעם, ווו מיר קענען אַקטשאַוואַלי, בייַ לויפן צייַט, פיגור אויס עטלעכע,
צושטעלן צו אונדז עטלעכע פונקציאָנירן אַז האט דווקא די מאַכט פון וואָס מיר ווילן.
>> און דאָרט ס דעם געדאַנק פון קלאָוזשערז, וואָס איז טאַקע, טאַקע
וויכטיק אין די קאָנטעקסט פון סוויפט, און אין פילע אנדערע שפּראַכן ווי גוט.
אבער מיסטאָמע איר וועט זען עס געניצט מער אַזוי אין סוויפט
ווייַל עס ס עמבעדיד ין די שפּראַך
ווי איר וועט אין אנדערע אויך מאָדערן שפּראַכן.
אזוי דער געדאַנק פון אַ קלאָוזשער איז דעם, איז אַז מיר
קענען האָבן אַ פונקציע וואָס איז מענט צו זייַן אַ דזשאַנעריק פונקציאָנירן, אַ דזשאַנעריק מאַכט
פון פונקציאָנירן.
>> און דעם פונקציע איז געגאנגען צו אָננעמען דעם עקספּאָנענט אַז מיר פאקטיש
ווילן צו שאַפֿן.
אזוי פֿאַר בייַשפּיל, די זייער ערשטער בייַשפּיל, מיר געוואלט אַ מאַכט פון 2.
אזוי מיר וואָלט צושטעלן מאַכט פון און דעמאָלט אין קלאַמערן 2.
און איצט באַמערקן וואָס דעם אַקטשאַוואַלי קערט.
דאס נעמט אַ אַרייַנשרייַב פון אַ אָנפאַנגער גערופן י אַז איז אַ ינטעגער,
און עס קערט דעם משוגע קוקן זאַך אין פּאַרענטהעסעס-- קלאַמערן
טאָפּל און דעריבער פייַל טאָפּל.
>> וואָס דעם מיטל איז אַז איך בין געגאנגען צו צוריקקומען אַ פונקציאָנירן.
איך בין ניט אומגעקערט אן אנדער טיפּ פון דאַטן, איך בין
אין פאַקט אומגעקערט אַ פונקציע אַז האט דעם פּאַראַמעטער, אַז
אַקסעפּץ אַ טאָפּל ווי אַרייַנשרייַב און אַוטפּוץ אַ טאָפּל ווי אַ צוריקקומען ווערט.
און ווי אַ רעזולטאַט, ווייַל איצט איך ווע גערופן מאַכט פון, גייט פארביי אין עטלעכע ווערט פֿאַר י,
און איך בין קריייטינג דעם אנדערע פונקטיאָנ-- באַמערקן אַז דאָרט ס
אן אנדער פֿונקציע אַז ס זייַענדיק באשאפן ין פון טהיס-- וואָס איך בין טאן
איז איך קענען דעריבער טוישן אַז ווערט, אז איינער
ווערט אַז איך האט פארענדערט 2-3, איך איצט מאַכן עס י.
>> און דעם בלייַבט.
אזוי יעדער צייַט אַז איך רופן מאַכט פון, יסענשאַלי וואָס כאַפּאַנז
איז אַז איך באַקומען אומגעקערט אַ פֿונקציע.
נאָטיץ אַז דאָ איך ווע דיפיינד אַ נייַ בייַטעוודיק גערופן קוואַדראַט.
איך ווע שטעלן עס גלייַך צו מאַכט פון, צוגעשטעלט דעם ווערט 2 צו מאַכט פון.
און וואָס דעם אומגעקערט איז די פונקציע.
אזוי קוואַדראַט, דער בייַטעוודיק קוואַדראַט, איז איצט פון טיפּ פונקציאָנירן
אַז האט טהיס-- Oops, מעגילע אַרויף אַ ביסל ביט-- אַז האט דעם כסימע,
אָננעמען אַ טאָפּל און פּראָדוקציע אַ טאָפּל.
>> אזוי איצט וואָס איך ווע געטאן איז איך ווע יסענשאַלי
באשאפן אַ פונקציאָנירן גערופן קוואַדראַט אַז אַקסעפּץ קיין ווערט און וועט קוואַדראַט עס.
מיר קענען זען וואָס כאַפּאַנז אַראָפּ דאָ.
קוואדראט 3 פֿאַר בייַשפּיל, מיטל איך בין געגאנגען צו נעמען די ווערט 3 און סקווערד עס.
אזוי ווי פּונקט טוט דעם אַרבעט?
ווען איך פאָרן מאַכט פון 2-- ווען איך פאָרן 2 אין דעם מאַכט פון פונקציאָנירן,
דעם בייַטעוודיק י איז פּאַפּיאַלייטאַד מיט אַז ווערט 2.
און אַז איז סאָרט פון געהאלטן אין זיקאָרן.
אַז ס סאָרט פון ווי פארנומען אין שטאַט ערגעץ אין די קאָמפּיוטער,
מיר טאָן ניט טאַקע זאָרגן ווי אָדער ווו בייַ דעם פונט.
>> אבער איך קריק דעם פונקציע גערופן עקספּאָנענטיאַטע.
און ווידער, עס טוט ניט טאַקע ענין וואָס דעם פונקציע איז גערופן,
מיר קענען טאַקע רופן עס עפּעס, אַז אַקסעפּץ אַ טאָפּל און קערט אַ טאָפּל,
אָבער ניצט דעם ווערט י ין פון עס.
אזוי אפילו כאָטש עס ס דעם פונקציע, דעם עקספּאָנענטיאַטער פונקציאָנירן אַז ס
שוין אומגעקערט צוריק צו מיין בייַטעוודיק אַז איך גערופן קוואַדראַט,
עס האט קאַנטיינד ין עס דעם געדאנק פון וואָס י איז.
און עס רעמעמבערס וואָס.
>> אזוי יעדער צייַט איך רופן אַז פונקציאָנירן אַז איז איצט גערופן קוואַדראַט, עס ניצט אַז.
אבער דעם אויך מיטל אַז איך קענען שאַפֿן אנדערן בייַטעוודיק ניצן
אַ פאַרשידענע מאַכט פון.
אזוי איך קענען שאַפֿן אַ קוב בייַטעוודיק, פֿאַר בייַשפּיל, צושטעלן צו עס מאַכט פון 3.
איצט קוב וועט אַקטשאַוואַלי נעמען עטלעכע ווערט און קוב אַז און קריק עס.
אזוי מיר קענען זען אַז איך באַקומען אַ ווערט 8 אויס פון אַז.
>> אבער אַז ווערט י האט נישט פארענדערט ווייַל זיי ניטאָ
געהאלטן אין סאָרט פון פרייַ וועריאַבאַלז.
זיי זענען סאָרט פון געהאלטן אין פרייַ ספּייסאַז אין זיקאָרן.
אזוי קובע וועט שטענדיק האָבן רענטגענ צו די מאַכט פון 3.
און קוואַדראַט וועט שטענדיק האָבן רענטגענ צו די מאַכט פון 2, וואָס
מיטל אַז קוואַדראַט וועט שטענדיק קוואַדראַט נומערן, ווי איך דערוואַרטן.
און קובע וועט שטענדיק קיובד נומערן, ווי איך דערוואַרטן.
דאס אויך מיטל אַז מאל איר קענען באַקומען עטלעכע סאָרט פון פאַנגקי קוקן סינטאַקס
ווו איר האָבן מאַכט פון בייַ די זייער דנאָ פון די פאַרשטעלן דאָ, מאַכט פון 5.
און איר פאָרן אין דער רעזולטאַט.
איר רופן אַז פונקציאָנירן אַז ס שוין אומגעקערט מיט די נומער 4.
און אַזוי וואָס יסענשאַלי דעם איז 4 צו די פינפט מאַכט,
מיר קענען זען די רעזולטאַטן עס.
מיט מיר אַזוי ווייַט?
>> אזוי דעם געדאַנק איז גערופן אַ קלאָוזשער, ווייַל וואָס מיר רע בייסיקלי טאן
איז מיר רע ענקאַפּסאַלייטינג עטלעכע דאַטן ינטאָ-- סאָרט
פון ענקלאָוזינג דעם דאַטן אין אַ פונקציאָנירן און מיר רע
זייַענדיק קענען צו רייוז דעם פונקציאָנירן.
איצט דעם סינטאַקס כאָטש קענען פאקטיש זיין סימפּלאַפייד אַ גרויס סומע.
און עס ס גורל פון מעגלעכקייט אין סוויפט פֿאַר דעם סימפּלאַפיקיישאַן.
און אַז ס וואָס סאָרט פון די סאַבסאַקוואַנט אָנעס פאקטיש קוקן בייַ.
אזוי אין 7ב פֿאַר בייַשפּיל, מיר נעמען דעם פּינטלעך זעלביקער קאָד.
>> אבער איצט גאַנץ ווי פאקטיש דעפֿינירן אַ פונקציע
ין פון דעם מאַכט פון פונקציאָנירן און געבן עס אַ נאָמען,
און דעמאָלט צוריקקומען די נאָמען פון וואָס פונקציאָנירן, וואָס
דעריבער איז געניצט ווי טייל פון דעם קלאָוזשער, אַנשטאָט מיר רע
נאָר געגאנגען צו פאַרפּאָשעטערן עס.
מיר טאָן ניט דאַרפֿן דעם פונקציע צו זיין געהייסן.
אזוי דעם איז די באַגריף פון אַ אַנאַנאַמאַס פונקציאָנירן ווו מיר קענען דעריבער
אָננעמען ווי אַרייַנשרייַב, אין קלאַמערן דאָ, די בייַטעוודיק רענטגענ וואָס איז פון טיפּ טאָפּל.
>> מיר ניטאָ געגאנגען צו צוריקקומען די טיפּ טאָפּל.
און דעריבער דער קיווערד, ן, איז די התחלה פון דעם פֿונקציע.
אזוי באַמערקן אַז אַלע פון ​​דעם איז ין געגרייַזלט בראַקאַץ
און מיר רע דיפיינינג אַ אַנאַנאַמאַס פונקציאָנירן דאָ.
פונקט אַ סימפּלער וועג פון דיפיינינג די פּינטלעך זעלביקער זאַך.
גוט?
אבער האַלטן אויף, סוויפט פאקטיש אַלאַוז אונדז צו גיין ווייַטער און פאַרפּאָשעטערן אפילו מער,
ווייַל טאַקע מיר טאָן ניט זאָרג אַז דעם פּאַראַמעטער איז
געהייסן קיין באַזונדער זאַך.
עס קענען טאַקע זיין גערופן עפּעס און מיר קענען נאָך נוצן אַז ערשטער פּאַראַמעטער.
>> אזוי אין פאַקט עס איז דעם ספּעציעל טיפּ פון דאַטן אין אַנאַנאַמאַס פאַנגקשאַנז,
עס ס דעם ספּעציעל נאָמען פון וועריאַבאַלז אין אַנאַנאַמאַס פאַנגקשאַנז
אַז אָנהייבן מיט די דאָלאַר צייכן און פאָרשטעלן
די פּאַראַמעטער נומערן, נול ינדעקסט, פֿאַר דעם פונקציע.
אזוי עס ס אַ פּאָר פון זאכן גייען אויף.
דאָ איך בין געגאנגען צו צוריקקומען, און דעמאָלט אַ געגרייַזלט בראַסע רעפּריזענטינג אַ פונקציאָנירן,
רעכט?
>> נאָטיץ אַז איך טאָן ניט האָבן דיפיינד די פּאַראַמעטער טייפּס אָדער די צוריקקומען טיפּ.
עס קענען פאקטיש זייַן ינפערד ווייַל פון די כסימע
פון דעם אָריגינעל פונקציאָנירן.
אזוי מיר קענען עלימינירן אַז ווי אַ מעגלעכקייט.
אבער אויך איך קענען נוצן דאָלאַר צייכן נול צו פאָרשטעלן דעם ערשטער פּאַראַמעטער אַז ס
דורכגעגאנגען אין דעם אַנאַנאַמאַס פונקציאָנירן.
אזוי סימפּלאַפייינג עס אַפֿילו מער.
גוט?
אזוי ווייַט, אַזוי גוט?
>> איצט עס ס דעם טיפּע-- טאָן איר געדענקען דעם דאָלאַר צייכן נול
אַז מיר האבן געזען אין דעם געגרייַזלט בראַסע אַז מיר האבן געזען בלויז אַ ביסל בשעת
צוריק אין דעם ביסטרע זעקס בייַשפּיל?
עס איז געווען רעכט דאָ.
נאָטיץ אַז ס פּונקט וואָס מיר רע קוקן בייַ,
איז אַז מיר האָבן דורכגעגאנגען אין דעם שפּאַלטן פאַנגקשאַנז
אַ אַנאַנאַמאַס פונקציאָנירן אַז טשעקס די ערשטער פּאַראַמעטער
צו זען אויב עס יקוואַלז די צווייפּינטל סימבאָל.
און אַז ס פּונקט וואָס ס געשעעניש, איז אַז אַלע
מיר ניטאָ דאָינג-- די צוריקקומען קייוואָרד איז ימפּלייד
אין דעם קאַסע-- מיר רע אומגעקערט דעם ווערט ווו מיר ניטאָ קאַמפּערינג
די ערשטער פּאַראַמעטער קעגן דעם כאַראַקטער קאָלאָן.
און אַזוי אַז סאָרט פון דעמיסטיפיעס דעם.
און איר ניטאָ געגאנגען צו זען דעם בויען אַ פּלאַץ אין סוויפט סינטאַקס, אַזוי טאָן האַלטן אַז
אין מיינונג ווען איר ניטאָ גענומען אַ קוק אין דעם.
איצט מיר קענען באַקומען אַוועק די ראַילס אַ קליין ביסל
און גיין טאַקע פאַנטאַזיע אַז ווייזט אפילו עטלעכע מער פון סוויפט ס מאַכט.
איר זאל אַפֿילו זען עטלעכע פון די אין מוסטער קאָודז.
אזוי אַז ס וואָס איך בין געגאנגען צו ווייַזן דעם צו איר.
>> באַסיקאַללי וואָס מיר קענען טאָן איז אַז, ערשטער פון אַלע, עס איז געווען מין פון יבעריק פֿאַר מיר
צו מאַכשער אַלע פון ​​וואָס מאַכט פון קאָד ווייַל אויב איר אַרייַנפיר די דאַרווין
ביבליאָטעק, עס פאקטיש כולל אַ פונקציע גערופן פּאָוו אַז טוט דעם פֿאַר איר.
אזוי מיר קענען פאַרפּאָשעטערן עס אַפֿילו מער און האָבן אונדזער מאַכט אַרויף פונקציאָנירן איצט נאָר
זייַן אַ ווונדערלעך איינער לייַנער ווו מיר נאָר צוריקקומען דעם אַנאַנאַמאַס פונקציאָנירן אַז
אַקסעפּץ דאָלאַר צייכן 0 ווי זייַן באַזע און י ווי זייַן עקספּאָנענט.
>> אבער מיר קענען באַקומען טאַקע, טאַקע פאַנטאַזיע ווען מיר
פאַרשטיין אַז סוויפט האט אַ פּלאַץ פון מאַכט אונטער די קאַפּטער.
א פּלאַץ פון די אָפּערייטערז וואס מיר ווע שוין דילינג מיט,
פּלוס וואונדער און אָפּטייל סימבאָלס און אַלע די זאכן אַז איר נאָרמאַלי
אַרבעטן מיט מיט דאַטן טייפּס אין אַ פּראָגראַממינג שפּראַך,
זענען פאקטיש עקסטענסיבלע אין סוויפט.
אזוי וואָס אַז מיטל אין אַז מיר קענען דעפֿינירן אונדזער אייגן אָפּערייטערז.
>> אזוי איצט איך בין מיד פון טייפּינג אין אַלע דעם פּאָוו און דעמאָלט אַ קלאַמערן און דעריבער
די באַזע.
איך טאָן ניט ווילן צו טאָן אַז.
איך פאקטיש ווילן צו האָבן אַ אָפּעראַטאָר אַז אַלאַוז מיר צו טאָן אַז.
אזוי איך קענען זאָגן סוויפט אַז איך ווילן צו שאַפֿן אַ אָפּעראַטאָר, שטערן
סטאַר-- דורך די וועג איך קענען ניט נוצן די קאַראַט ווייַל די קאַראַט איז אַ אָפּעראַטאָר וואָס
טוט עפּעס אַנדערש לעגאַמרע.
אזוי איך טאָן ניט ווילן צו סאָרט פון קאַלייד מיט אַז.
און אַזוי וואָס איר זען אין אַ פאַרשיידנקייַט פון שפראכן, אַרייַנגערעכנט פּיטהאָן,
איז ווי שטערן שטערן אָפּעראַטאָר צו פאָרשטעלן יקספּאָונאַנץ.
>> אזוי אַז ס די בלויז סיבה וואָס איך ווע געטאן אַז.
און עס ס געגאנגען צו זיין אַ ינפיקס טיפּ אָפּעראַטאָר.
און איך האָבן צו צושטעלן צו עס עטלעכע אינפֿאָרמאַציע
וועגן די פאָרהאַנט פון דעם אָפּעראַטאָר אַזוי עס ס לינקס אַססאָסיאַטיווע.
עס ס ווי לעפיערעך הויך פאָרהאַנט קאַמפּערד
צו סאַמיישאַן אָדער קייפל.
עס ס העכער פאָרהאַנט ווי אַלע פון ​​יענע.
אזוי אויף און אַזוי אַרויס.
און דעמאָלט איך דעפֿינירן די פונקציאָנירן אַז פאקטיש
דיקטייץ וואָס דעם אָפּעראַטאָר טוט.
אזוי אַסומינג אַז איך האָבן אַ לינקס האַנט זייַט און רעכט האַנט זייַט,
וואָס וואָלט זיין טאָמער אַ בעסער בייַטעוודיק נאָמען פֿאַר דעם.
לינקס האַנט זייַט און רעכט האַנט זייַט.
איך קענען דעריבער נעמען דעם מאַכט פון די לינקס האַנט זייַט צו די רעכט האַנט זייַט
און קריק אַז ווערט.
אזוי איצט עס ס יבער זיס.
כל מיר האָבן צו טאָן איז 2 שטערן שטערן 3 און אַז איז 2 צו די דריט מאַכט,
און מיר באַקומען אַ ווערט פון 8.
2 שטערן שטערן 10 איז 2 צו די 10 מאַכט, מיר באַקומען 1,024.
>> אזוי איצט אונדזער מאַכט פון פונקציאָנירן, וואָס ווידער איז אַנדערש,
ווייַל די גאנצע געדאַנק הינטער דעם איז אַז מיר האָבן איין פונקציאָנירן אַז
שטענדיק נעמט עטלעכע ווערט און מולטיפּליעס יט-- אָדער אלא
נעמט די עקספּאָנענט צו די זעלבע מאַכט.
אזוי איצט עס ס אַפֿילו סימפּלער.
אזוי איצט עס ס נאָר דאָלאַר צייכן 0 שטערן שטערן י.
מיר טאָן ניט אפילו האָבן צו נוצן פּאָוו ענימאָר.
>> גוט, וואס ס פאַרפאַלן?
זענען מיר טאן גוט?
קיין שאלות אויף דעם שטאָפּן?
יאָ?
>> וילעם: ווען יאָו-- [ינאָדאַבאַל] די פונק מאַכט פון י טאָפּל.
אזוי ווען איר ניטאָ אומגעקערט אַ פֿונקציע.
דניאל אַרמענדאַריז: Funk מאַכט פון י טאָפּל.
טאַקע יאָ, איך טאָן ניט וויסן וואָס די י נומערן זענען.
אנטשולדיגט וועגן אַז.
>> וילעם: פארוואס זענען איר אומגעקערט אַ פונקציאָנירן [ינאָדאַבאַל] אָפּצוימונג.
איז ניט דאָלאַר נול שטערן שטערן י [ינאָדאַבאַל]
געפינען אַז אָפּעראַטאָר מיט אַז אומגעקערט טאָפּל [ינאָדאַבאַל] טאָפּל?
>> דניאל אַרמענדאַריז: אזוי לאָזן מיר ענטפערן דיין שאלה
ווי איך פֿאַרשטיין עס און איר קענען זאָגן מיר אויב איך האט ניט פֿאַרשטיין דיין קשיא.
אזוי דעם בויען, די געגרייַזלט בראַסע דאָלאַר צייכן נול שטערן שטערן י,
איז אַ פֿונקציע.
און עס אַקסעפּץ אַ פּאַראַמעטער וואָס איז רעפּראַזענטאַד דורך דעם דאָלאַר צייכן נול.
די צוריקקומען קיווערד איז ימפּלייד אין דעם זייער קורץ, אַנאַנאַמאַס פונקציאָנירן סינטאַקס.
>> וואָס מיטל אַז יסענשאַלי וואָס דאָס איז געזאגט
איז אַז איך בין דיפיינינג אַ פונקטיאָנ-- און דעמאָלט איך וועט
נאָר רופן עס סאָמעטהינג-- ווו איך האָבן עטלעכע ווערט י.
איך האָבן י, וואָס איז טאָפּל.
און איך בין אומגעקערט אַ טאָפּל.
און איך האָבן ין אַז צוריקקומען י-- נעבעכדיק, איך זאָל ניט האָבן גערופן דעם י-- רענטגענ.
טאַקע ליב, טאַקע ליב, טאַקע ליב.
קס-- נאָפּע-- שטערן שטערן י.
>> אזוי דעם איז נאָר אַ סימפּלאַפייד ווערסיע פון ​​דעם.
און אַזוי די סיבה וואָס איך האָבן דאָלאַר צייכן נול איז אַז ניצן דעם אָפּצוימונג
מיטל אַז איך ניט מער האָבן צו דרוקן פּאָוו, אָדער ניט מער טאָן
איך האָבן צו טאָן עפּעס ווי 3 שטערן שטערן 2.
איך קענען נאָר האָבן אַ איין פונקציאָנירן גערופן קוואַדראַט
אַז וועט שטענדיק נעמען עטלעכע ווערט ווי אַרייַנשרייַב
און פאקטיש צוריקקומען די קוואַדראַט פון אַז.
>> אזוי די גאנצע ציל פון די קלאָוזשער איז צו נאָר סאָרט פון ענקאַפּסאַלייט די פאַקט
אַז איך שטענדיק ווילן צו נוצן י ווען איך רופן אַז פונקציאָנירן ווי דער מאַכט
ווען גענומען דעם עקספּאָנענט.
אזוי אומגעקערט דעמאָלט, אַ פונקציאָנירן אַז אַקסעפּץ
אַ טאָפּל, וואָס איז די באַזע, און אומגעקערט די רעזולטאַט פון וואָס עקספּאָנענט
איז די שליסל דאָ.
און אַז ס די הויפּט דיסטינגקשאַן.
עס איז געווען נאָר אַ ביסל פון אַ בליען.
>> דאס איז נישט קיין אַנדערש קאַמפּערד צו די פריערדיק ביישפילן,
אָבער עס איז געווען בלויז אַ ביסל פון אַ בליען מיר קענען פאקטיש
שאַפֿן אַ אָפּעראַטאָר אין סוויפט און פאקטיש טאָן שטאָפּן מיט עס,
וואָס איז מין פון אַ קיל זאַך.
צי האָט איך ענטפֿערן דיין קשיא?
זיס.
עפּעס אַנדערש פֿאַר מיר מאַך אויף?
גוט.
>> איצט דעם סאָרט פון בעגס די קשיא איז טהאַט-- געזונט גוט,
איצט מיר האָבן די פיייקייַט פֿאַר פאַנגקשאַנז צו זיין אומגעקערט.
קענען מיר אויך פאָרן פאַנגקשאַנז ווי דאַטן אָדער ווי פּאַראַמעטערס צו אנדערע פאַנגקשאַנז?
און אין פאַקט מיר קענען.
אזוי לאָזן ס זאָגן אַז מיר האָבן אַלע פון ​​די זעלבע קאָד.
מיר האָבן די קוואַדראַט בייַטעוודיק אַז וועט קוואַדראַט דעם קאָד.
און מיר האָבן די קובע בייַטעוודיק אַז וועט קוב עטלעכע דאַטן.
און מיר פאקטיש ווילן צו צולייגן צו אַ ברייט קייט פון נומערן.
>> אזוי וואָס מיר זאל זיין געפרואווט צו טאָן, פון קורס, וואָס איז אַוואַדע גילטיק,
איז צו יטעראַטע איבער דעם רשימה פון נומערן און צולייגן מיין פאַנגקשאַנז קוואַדראַט און קובע
און באַקומען צוויי נייַ רשימות ווי רעזולטאַטן אַז ביסט דעם אָריגינעל רשימה סקווערד
און קיובד, ריספּעקטיוולי.
בישליימעס פּאַסיק.
אבער וואָס ס די זאַך אַז מיר זען דאָ איז אַז מיר האָבן,
ווידער, דיופּלאַקיישאַן פון אונדזער קאָד.
און עס ס טאָמער אַ געלעגנהייט פֿאַר אונדז צו פאַרפּאָשעטערן דעם אַ קליין ביסל.
וואָס אויב עס איז געווען אַ וועג פֿאַר אונדז צו פאקטיש שטענדיק יטעראַטע איבער עטלעכע רשימה
און נאָר פאָרן צו דעם מאַדזשיקאַל פונקציאָנירן אַ בייַטעוודיק אַז
רעפּראַזענץ אַ פונקציע אַז מיר וועלן צו צולייגן
צו יעדער איין פּונקט אין דעם רשימה.
דאס ברענגט אַרויף דעם באַגריף פון וואָס זענען גערופן העכער סדר פאַנגקשאַנז.
און אַז איז יסענשאַלי וואָס דאָס איז, איז אַז מיר קענען מאַכן אַ פונקציאָנירן.
>> און אין דעם פאַל עס ס גערופן אַ מאַפּפּער, נאָר צו געבן עס אַ נאָמען, פּונקט
מאַפּינג איבער יעדער איין פּונקט אין אַ רשימה.
וואו איך נעמען אַ רשימה און איך נעמען אַ פונקציאָנירן.
און אַז פונקציאָנירן, פון קורס, האט אַ זיכער כסימע.
עס אַקסעפּץ ווי אַ פּאַראַמעטער טאָפּל און עס וועט רעזולטאַט איז אַ טאָפּל.
און די גאנצע רעזולטאַט פון דעם פונקציע איז געגאנגען
צו זייַן אַ נייַ רשימה אַז איז פון טיפּ טאָפּל.
גוט?
>> און וואָס איך בין געגאנגען צו טאָן איז צו צולייגן דעם פונקציע ף
צו יעדער עלעמענט אין מיין רשימה.
און רעפּלי-- און גאַנץ קריק דעם נייַ רשימה ווי אַ רעזולטאַט, וואָס איז טאַקע קיל.
איצט איך קענען פאָרן פאַנגקשאַנז אַרום.
און דעם געדאַנק פון העכער סדר פאַנגקשאַנז איז טאַקע וויכטיק.
און דעם מאַפּפּער איז טאַקע נאָר די נעבעך מענטש ס ימפּלאַמענטיישאַן
פון אַ פונקציאָנירן אַז איז געבויט אין סוויפט גערופן מאַפּע.
און עס טוט דווקא דעם, טאָמער אפילו אַ קליין ביסל בעסער.
>> דאס איז נאָר סאָרט פון אַ דזשאַנעריק, סימפּליפיעד ווערסיע אַז
אַלאַוז אונדז צו זען די באַגריף אַז אַפּלייז דאָ.
איצט קוקן בייַ די וועג אַז איך קענען פאקטיש צולייגן מיין קוואַדראַט
און מיין קוב פאַנגקשאַנז צו דעם רשימה פון נומערן.
איך לויפן מיין מאַפּפּער.
איך צושטעלן צו עס מיין רשימה פון נומערן.
איך צושטעלן צו עס די די פונקציאָנירן אַז ס גיי
צו צולייגן צו יעדער פון די ינדיסעס.
און עס איז געגאנגען צו זיין רעזולטאַט ווי אַ רעזולטאַט.
און איך וועט באַקומען צו זען אַז איך ווע סקווערד און קיובד מיין נומערן ווי אַ רעזולטאַט.
>> און פון קורס די מאַפּפּער וועט נעמען קיין סאָרט פון אַנאַנאַמאַס פונקציאָנירן.
מיר קענען אַפֿילו זען אַז איך ווע באשאפן אַ נייַ אַנאַנאַמאַס פונקציאָנירן אַז
נאָר נעמט עטלעכע פּאַראַמעטער און דיוויידז עס דורך 2.
און מיר קענען זען אַז איך ווע, אין פאַקט, צעטיילט מייַן רשימה דורך 2 אַנשטאָט.
קיל?
אזוי ווייַט, אַזוי גוט?
כל רעכט, איצט לאָזן ס קומען צוריק צו דעם געדאַנק.
זאל ס מאַכשער דעם צוריק אין די קאָנטעקסט פון אַ גראַדעבאָאָק.
>> און אויב איך טאָן אַז, מיר קענען זען אַז איך קענען צולייגן אַ ברייט פאַרשיידנקייַט פון די אָפּטיאָנס--
אָדער אַ ברייט פאַרשיידנקייַט פון די העכער סדר פאַנגקשאַנז
צו פאקטיש פאַרפּאָשעטערן מיין פיייקייַט צו טאָן אַ פאַרשיידנקייַט פון זאכן אויף רשימות פון נומערן.
אזוי פֿאַר בייַשפּיל, אויב איך נעמען אַ רשימה פון נומערן,
איינער פון די העכער סדר פאַנגקשאַנז אַז יגזיסס איז גערופן רעדוצירן.
וואָס רעדוצירן טוט אלא ווי מאַפּע, איז רידוסט וועט
נעמען צוויי עלעמענטן אין דער רשימה, וועט נעמען עטלעכע פונקציאָנירן אַז
קאַמפּערז די צוויי יסודות פון די רשימה, און עס וועט דעריבער
סאָרט פון אָוטפּוט-- די רעזולטאַט פון וואָס פונקציאָנירן
וועט זיין אן אנדער עלעמענט אַז איר דעמאָלט פאַרגלייַכן צו אנדערע.
>> אזוי איר קען נוצן דעם צו פאקטיש סאַכאַקל פון די נומערן אין דיין רשימה.
פֿאַר בייַשפּיל, אויב איר האט אַ רשימה פון 1, 2, 3, 4, 5,
איר נעמען די ערשטער יסודות, 1 און 2.
איר קענען צולייגן צו אים אַן דערצו פונקציאָנירן אַז נעמט די צוויי עלעמענטן
און ספּיץ אויס איינער פון די יסודות, וואָס וואָלט זיין די ווערט 3.
דערנאך מיר נעמען אַז ווערט 3 מיט די ווייַטער עלעמענט פון דער רשימה, סאַכאַקל יענע צוויי,
און דעריבער האַלטן געגאנגען אַראָפּ די רשימה.
>> מיר ניטאָ רידוסינג די רשימה צו אַ איין ווערט.
און עס נאָר אַזוי כאַפּאַנז אַז די פּלוס סימבאָל
איז אַ אָפּעראַטאָר, נאָר ווי מיר נאָר געזען.
דאס אָפּעראַטאָר איז פאקטיש אַ פֿונקציע אַז
האט דווקא דעם רשימה אַז מיר וואָלט ווילן, אלא די פּראָפּערטיעס
אַז מיר וואָלט ווילן.
אזוי איך מוטיקן איר צו נעמען אַ קוק אין דעם.
איך ווילן צו סאָרט פון אַריבערפירן אויף פון עטלעכע פון ​​דעם קאָד
אַזוי אַז מיר קענען אַקטשאַוואַלי קוקן אין עטלעכע פאַקטיש, פאַקטיש, אמת סוויפט אין קסקאָדע,
אין יאָס אַנטוויקלונג.
אבער נעמען אַ קוק בייַ דעם און זען אויב איר קענען
פּאַרס דורך וואָס ס געגאנגען אויף מיט עטלעכע פון ​​די העכער סדר
פאַנגקשאַנז אַרייַנגערעכנט פילטער, רעדוצירן, און איר וועט אפילו
זען ערגעץ אין דאָ מאַפּע ווי געזונט.
עס ס רעכט דאָ.
וואו עס וועט נעמען אַ סיקוואַנס פון גראַדעס און עס וועט פאקטיש
מאַפּע זיי ניצן די באַשטימען בויען, וואָס איר זאל דערקענען פון C,
אָבער פאקטיש עס איז אַ פּלאַץ מער שטאַרק ווי די באַשטימען בויען
אַז מיר האָבן אין סי
>> און מיר וועט צולייגן אַז צו יעדער עלעמענט אין דער רשימה
און פאקטיש צושטעלן די בריוו מיינונג פון יעדער
פון יענע גראַדעס ניצן אַלע די קאַנסעפּס אַז מיר ווע נאָר גערעדט וועגן פריער.
איצט לאָזן ס סידעסטעפּ פֿאַר נאָר אַ מינוט און רעדן וועגן סטרוקץ.
און אַזוי סטרוקץ זענען אַ וואַרטן אין C אַז מיר זענען ביכולת צו דעפֿינירן אַ נייַ טיפּ פון דאַטן.
סטרוקץ עקסיסטירן ין סוויפט.
און אַזוי טאָן אַ פּלאַץ פון אנדערע קאַנסטראַקץ גערופן ענומס און קלאסן, וואס טאַקע
נעמען דעם געדאַנק צו אַ גאַנץ אַנדערש מדרגה.
>> און בייסיקלי עס ס נאָר אַ וועג פון דיפיינינג אַ נייַ טיפּ פון דאַטן.
אזוי אויב איר געט-- אויב איר קומען אַריבער קלאַס אָדער סטרוקץ אָדער ענומס,
טאָן ניט באַקומען צעמישט דורך עס.
עס ס נאָר דער וועג פון דיפיינינג עטלעכע נייַ באַזונדער טיפּ פון דאַטן.
און דעם איז טאַקע וויכטיק ווען מיר ניטאָ גערעדט וועגן יאָס אַפּ אַנטוויקלונג
ווייַל אַלץ וואָס יגזיסס ין דער יאָס אַפּ
איז יסענשאַלי אַ כייפעץ פון עטלעכע מין.
און אַ כייפעץ איז בייסיקלי אַ קלאַס אָדער אַן ענום אָדער אַ סטרוקט.
>> אזוי אין דעם פאַל איך בין דיפיינינג אַ נייַ טיפּ פון דאַטן
אַז איך בין פאַך אַסעסמאַנט אַז ס עטלעכע פּראָפּערטיעס, אַרייַנגערעכנט
אַ נאָמען און אַ סיקוואַנס פון גראַדעס.
אזוי איינער טיפּ פון אפשאצונג אַז איך זאל האָבן אין גייַסט
וואָלט זייַן קוויזיז, פֿאַר בייַשפּיל.
איך וואָלט וועלן צו האָבן אַ אַססעססמענט אַז איז אַ ויספרעג
און אַז האט אַ פאַרשיידנקייַט פון גראַדעס פארבונדן מיט אַז, פֿאַר ויספרעג איינער,
ויספרעג צוויי, אַזוי אויף און אַזוי אַרויס.
>> אדער איך זאל האָבן אַ אַנדערש טיפּ פון אַססעססמענט פֿאַר פּראָבלעם שטעלט.
און איך קענען טאָן זאכן.
איך קענען פאקטיש האָבן פאַנגקשאַנז ין דעם טיפּ
פון דאַטן, וואָס זענען איצט גערופן מעטהאָדס.
אזוי אויב איר אלץ זען די וואָרט מיטל, עס טאַקע
איז נאָר אַ פונקציע וואָס אַפּלייז צו אַ זייער ספּעציפיש קלאַס,
אָדער צו אַ זייער ספּעציפיש טיפּ פון דאַטן.
עס אַלאַוז אונדז צו מאָדיפיצירן די דאַטן ין.
>> אזוי אין אנדערע ווערטער, אויב איך ווילן צו לייגן אַ מיינונג צו מיין אפשאצונג,
דעריבער אַלע איך דאַרפֿן צו טאָן איז צו צוגעבן די כעזשבן אַז איז אַרייַנשרייַב
צו דעם פונקציע צו מיין ינערלעך פאַרמאָג.
עס ס אנדערן ציכטיק בויען דאָ אין סוויפט, וואָס איז דעם פּינטעלע פּינטעלע פּינטעלע
אָפּעראַטאָר, וואָס מיטל אַז סקאָרז קענען איצט אָננעמען קיין נומער פון ינטאַדזשערז.
און סקאָרז וועט זייַן אַ מענגע פון ​​ינטאַדזשערז אַז
האָבן שוין פארביי צו מיין פונקציאָנירן, וואָס מיטל אַז איך קענען טאָן שטאָפּן ווי דעם.
>> איך קענען טאָן לייגן גראַדעס און נאָר צושטעלן אַרבאַטרערי נומערן פון ינטאַדזשערז אין עס
און טאקע זיין צוגעשטעלט אַ מענגע פון יענע וואַלועס אין מיין פונקציאָנירן
אָדער אין מיין אופֿן, ווי איז דער פאַל.
איצט דעם איז וויכטיק ווייַל אַלץ אין קסקאָדע, אַלץ אין יאָס,
איז אין פאַקט אַ כייפעץ.
אזוי האַלטן אַז אין מיינונג ווען מיר בוסט עפענען קסקאָדע
און האָפּקען פאָרויס ווייַטער פון יאָס ווערסיעס צוויי און דרייַ
און פאקטיש גיין אויף צו ווערסיע פיר.
>> און ווידער, אַלע פון ​​דעם וועט זייַן אַרייַנגעשיקט אויף די סעמינאַר בלאַט.
יאָס פיר איז סאָרט פון אַ פול בלאָון ימפּלאַמענטיישאַן פון אַ זייער יקערדיק אַפּ.
און וואָס דעם אַפּ טוט איז עס לאָודז אַ וי, וואָס קוקט ווי דעם.
ווידער, אויב מיר דריקט אויף סטאָריבאָרד מיר קענען זען אַז דאָס איז וואָס עס קוקט ווי.
דאס איז די וי.
עס האט אַ טיטל בייַ די זייער שפּיץ.
איך ווע גערופן עס וועב גאַלעריע.
>> אין די מיטן עס ס אַן עלעמענט גערופן די וי בילד מיינונג.
און בייַ די דנאָ דאָרט ס אַ Toolbar מיט אַ איין קנעפּל אַז
האט סטרעטטשי ספּייסאַז אַז לאָזן עס צו צענטער אין דער מיטן פון דעם מכשיר.
און וואָס כאַפּאַנז איז אַז ווען דעם לאָודז עס דאַונלאָודז אַ דזשסאָן טעקע אַז ס
קאַנטיינד אויף אַ סערווירער אַנדערש ווו, פּאַרסעס אַז דזשסאָן טעקע,
און די דזשסאָן טעקע קוקט אַ ביסל ווי דעם.
די דזשסאָן טעקע קוקט ווי דעם.
עס עס איז.
>> עס האט אַן אלבאם נאָמען און עס האט אַ מענגע פון ​​פאָטאָס.
יעדער פון די פאָטאָס האָבן אַ נאָמען און אויך
אַ URL זיך אַז פאָרשטעלן די געפֿינען ווערסיע פון ​​אַז יחיד פאָטאָ.
אזוי וואָס פּאַסירן איז אַז ווען דעם פּראָגראַם לאָודז, עס דאַונלאָודז די דזשסאָן טעקע,
פּאַרסעס עס, לייגט אַלע פון ​​דעם אין די עקוויוואַלענט פון אַ מענגע אין יאָס
אַפּ אַנטוויקלונג, וואָס איז אַ נסאַררייַ.
און דעמאָלט איך קענען דעמאָלט מאַסע דעם דאַטע אין אַ אַפּלאַקיישאַן
און מאַסע עס אויף מיין פאַרשטעלן.
>> עס איז אַ בילד וואָס איז געווען לאָודיד מיט די קנעפּל בייַ די זייער דנאָ.
אויב איך געב באַקומען ווייַטער בילד, עס דעמאָלט פּולז אַז בילד פון די אינטערנעט
און ריפּלייסיז אַז בילד אין די וי בילד מיינונג.
אזוי איר קענען אראפקאפיע דעם און פאקטיש נעמען אַ קוק אין עס אויף דיין קאָמפּיוטער.
און בויען עס און פאקטיש צונויפנעמען עס אַנטו דיין מיטל.
אבער יסענשאַלי די פּראָצעס איז דעם, שאַפֿן די סטאָריבאָאַרד--
אָדער אלא ניט קרעאַטע-- אָבער אויסקלייַבן די סטאָריבאָרד.
און פאקטיש ווע'לל-- אויב איר טאָן ניט מינד-- מיר וועט נעמען נאָר אַ פּאָר פון סעקונדעס
צו פאקטיש ווייַזן איר ווי דעם איז געשען.
>> פונקט אַזוי אַז ווי מיר קענען אַקטשאַוואַלי דערגרייכן דעם איז געמאכט אַ ביסל ביסל מער
קלאָר.
איין מיינונג אַפּלאַקיישאַן, איך בין געגאנגען צו רופן דעם סעמינאַר
פיר רעפּריזענטינג דעם באַזונדער נומער.
היט עס אויף די דעסקטאַפּ.
גוט, געגאנגען צו גיט אויף די סטאָריבאָרד.
און וואָס איך בין געגאנגען צו טאָן איז צו געפֿינען מיין בילד מיינונג,
שלעפּן עס אַנטו מיין באַניצער צובינד און צענטער עס.
איצט נאָר סענטערינג עס ליידער איז ניט געגאנגען צו טאָן אַ גאַנץ פּלאַץ,
אַחוץ פֿאַר אַ פאַרשטעלן אַז איז דעם פּינטלעך גרייס.
>> אזוי מיר קענען איבערצייגן זיך פון אַז דורך געבן אַ קליק אויף דעם טאָפּל קרייַז זאַך,
געבראכט אַראָפּ דעם קנאַל אַרויף מעניו דאָ און טשאַנגינג
צו פאָרויסיקע ווייַזונג, ווו מיר וועט פאקטיש באַקומען אַ געלעגנהייַט צו פאָרויסיקע ווייַזונג ווי
דעם וועט אַקשלי קוקן אויף אנדערע דעוויסעס.
ווי מיר קענען זען, מיר טאָן ניט אפילו זען עס אויף דעם באַזונדער פאַל.
אזוי איך בין געגאנגען צו נאָענט דעם פֿאַר איצט.
>> און איך בין געגאנגען צו אויסקלייַבן דעם בילדל אַראָפּ בייַ די זייער
דנאָ חלק פון די פאַרשטעלן.
עס זאגט רעסאָלווע אַוטאָ אויסלייג ישוז.
אנטשולדיגט, עס ס שנייַדן אַוועק בייַ די דנאָ.
אבער אויב איך געב אויף אַז, וואָס איך באַקומען איז דעם קנאַל ופּ-- גיין אַוועק.
וואָס איך באַקומען איז דעם קנאַל אַרויף אַז אַלאַוז מיר צו לייגן פעלנדיק קאַנסטריינץ.
און דורך טאן אַז עס וועט דעמאָלט סאָרט פון שלאָס עס
אין דער צענטער חלק פון די פאַרשטעלן ווי איך זאל אַרויסקוקן.
>> איצט אין סדר צו באַקומען דעם קנעפּל אויף שפּיץ פון עס, איך דאַרפֿן צו גיין צו די רעדאַקטאָר.
גיין צו עמבעד אין און גיט נאַוויגאַציע קאָנטראָללער.
וואָס אַז וועט טאָן איז אַז וועט לייגן דעם גאנצן אנדערע קאָמפּאָנענט צו עס,
אָבער עס וועט פאקטיש לינק עס צוריק צו מיין אָריגינעל וי.
און די פרטים, ווידער, מיר טאָן ניט טאַקע דאַרפֿן צו זאָרג וועגן רעכט איצט.
אבער איך טאָן ווילן צו האָבן אַ מכשיר בייַ די זייער דנאָ.
אזוי איך וועט טשעק שאָווס Toolbar.
>> און דעם גיט ין מיין מיינונג, וואָס איז איצט ערגעץ אַנדערש,
מיר קענען זען עס ס לינגקט איבער דאָ.
עס איצט גיט אַ מכשיר בייַ די דנאָ פון מיין וי.
אזוי איצט, אלא ווי סאַלעקטינג אַ בילד מיינונג, איך קענען געפינען אַ פירמע,
אָדער אלא אַ טאָאָלבאַר-- זאל ס זען, ווו איז אַז?
וואָס איז עס גערופן?
א בוטטאָנ-- פּונקט באַר-- יטעמ-- סאָררי-- באַר קנעפּל פּונקט.
פּלאַפּ אַז דאָרט און צולייגן אַ פּאָר פון פלעקסאַבאַל ספּייסאַז אויף יעדער זייַט
צו פאקטיש צענטער אַז.
אזוי איצט איך ווע באשאפן מיין וי, בייסיקלי.
און איך קענען געבן עס אַ נאָמען דורך טאָפּל געבן אַ קליק אין די זייער שפּיץ
דאָ און געזאגט וועב גאַלעריע און אַזוי אויף.
איצט ווידער, די זענען עלעמענטן אַז עקסיסטירן דורך זיך.
און איך האָבן צו פאַרבינדן זיי צו מיין קאָד וואָס
איך קענען טאָן דורך ווידער געבראכט אַרויף דעם טאָפּל קרייַז בילדל,
טשאַנגינג פון די פאָרויסיקע ווייַזונג.
וואָס, דורך דעם וועג, איצט מיר קענען זען איז נייסלי סענטערד און וועט קוק גוט
אויף אַ פאַרשיידנקייַט פון דעוויסעס.
>> ויסבייַטן צו אָטאַמאַטיק, וואָס וועט ברענגען אַרויף די וויעווקאָנטראָללער קאָד.
און איצט דעם טייל איז וויכטיק.
אין סדר פֿאַר איר צו פאַרבינדן די צוויי עלעמענטן, דיין קאָד צו די וי,
איר אויסקלייַבן די פּאָזיציע אַז איר ווילן צו פאַרבינדן.
אזוי אין דעם פאַל, מיר פאקטיש ווילן צו ענקאָוד
טוישן די בילד אַז ס קאַנטיינד ין דעם וי בילד מיינונג.
אזוי אויב איר קאָנטראָל גיט פון די בילד מיינונג און שלעפּן,
איר וועט באַמערקן אַז איר באַקומען אַ ביסל באַר, ווען איר לאָזן גיין פון אַלץ דעם קנאַל
אַרויף וועט פאַלן.
>> און עס זאגט אַז מיר וועלן שאַפֿן אַ קשר.
און פון דאָ איך ווילן צו געבן עס אַ נאָמען, עפּעס ווי גאַלעריע.
קלאַפּ אַרייַן.
און דעם פאקטיש גיט אַ בייַטעוודיק גערופן גאַלעריע
אַז איך קענען דעמאָלט דערמאָנען אין מיין קאָד צו טוישן די בילד, פֿאַר בייַשפּיל.
אזוי ווי טוט אַז קאָד פאקטיש קוקן?
גוט ווידער, איך טאָן ניט וועלן צו פאַרברענגען צו פיל צייַט אויף עס.
און איך מוטיקן איר צו אראפקאפיע עס און נעמען אַ קוק.
אבער איינער פון די מערסט וויכטיק אַספּעקט איז די קאָד
אַז אַקטשאַוואַלי פעטשיז אַ בילד.
>> אזוי אין דעם פאַל איך ווילן צו באַקומען ין מיין פאָטאָס
מענגע, וואָס איז קאַנטיינד ין מיין קלאַס.
איך ווילן דעפֿינירן די נאָמען און די URL אַז ס געווארן פּאַרסט אויס פון דעם דזשסאָן.
אַקטואַללי פרעגן די מיטל צו באַקומען די URL, צו ברענגען די URL פון דעם,
און דעריבער ברענגען די דאַטן פון די אינהאַלט פון אַז URL.
דערנאך בייַטן אַז דאַטן אין אַ בילד דורך גייט פארביי עס אין די וי בילד.
אזוי ווידער, די זענען אַלע פאַרשידענע טייפּס פון אַבדזשעקס, פאַרשידענע טייפּס פון קלאסן.
>> און דעמאָלט איך קענען דעריבער שטעלן מיין גאַללערי.ימאַגע גלייַך צו אַז דאַטן.
און אַז ס סאָרט פון די פלייש פון עס אַז פאקטיש איז דעריבער
קענען צו טוישן די דאַטן פראָמ-- טוישן די בילד פון איינער צו דער ווייַטער.
אזוי ווידער, אַלעווייַ איצט אַ פּלאַץ פון די קאַנסטראַקץ
וועט מאַכן אַ קליין ביסל מער זינען.
נאָטיץ אַז דאָרט ס עטלעכע עקסקלאַמיישאַן ווייזט דאָ.
די עקסקלאַמיישאַן ווייזט זענען יסענשאַלי שייַכות צו די אָפּטיאָנאַלס.
>> וואָס איך בין בייסיקלי געזאגט איז אַז אָן אפילו קאָנטראָלירונג
צו זען אויב עס ס דאַטן ין דעם אַפּשאַנאַל,
איך בין געגאנגען צו גיין פאָרויס און יבערנעמען אַז עס איז און אַנראַפּ עס.
געדענק אַז מיר געניצט די אַנאַלאַדזשי פון סאָרט פון אַ פּעקל פֿאַר די אָפּטיאָנאַלס
און מיר דאַרפֿן צו אַנראַפּ די פּעקל און ציען די דאַטן אויס.
די עקסקלאַמיישאַן פונט פאָרסעס אַז פאקטיש פּאַסירן.
>> אבער איך וויסן אַז דאָס איז זיכער ווייַל איך אָפּגעשטעלט
צו זען אויב בילד דאַטן איז גלייַך צו נול, איך ווע פאקטיש קאָנטראָלירן
צו זען אויב אַז אַפּשאַנאַל איז, אין פאַקט, ניט אַנדערש.
אויב אַז האט, אין פאַקט, ניט אַנדערש שוין.
און אַזוי איך בין זיכער אַז אַמאָל איך באַקומען צו דעם פונט איך קענען בעשאָלעם ונווראַפּ אַז דאַטן.
איר זאל אויך זען עס אין די פאָרעם פון אַ קשיא צייכן.
אזוי אויב מיר מעגילע אַראָפּ צו ווו איך דאַרפֿן צו פאקטיש פּאַרס די דאַטן.
>> אזוי טאָן ניט זייַן שטעלן אַוועק דורך די סאָרט פון לאַנג נעמען.
איר קענען געפינען אין דער עפּל דעוועלאָפּער פּלאַץ אַ פּלאַץ
פון באַווייַזן צו אַלע פון ​​די אַבדזשעקץ און אַלע פון ​​די פּראַסעסאַז
אַז פאקטיש מאַכן דעם מעגלעך.
אבער באַמערקן אַז דאָס איז יסענשאַלי אַ פונקציאָנירן ווו איך פאָרן עס עטלעכע דאַטן.
און איך באַקומען צוריק עטלעכע סאָרט פון דאַטן.
און איך דאַרפֿן צו נוצן דעם ווי קיווערד צו גער עס אין דעם נסדיקטיאָנאַרי?
וואָס איז ווידער, אַ אַפּשאַנאַל נסדיקטיאָנאַרי.
וואָס איך דעמאָלט דאַרפֿן צו טשעק צו זען אויב עס יגזיסס.
>> אזוי איך קענען נוצן אַז אויב לאָזן מצליח יקוואַלז פּאַרסט,
דעמאָלט איך וויסן אַז אַז אַפּשאַנאַל פאקטיש כּולל עטלעכע דאַטן.
אָדער וואָס איך האבן דאָ איז געווען צו נאָר יבערנעמען אַז אויב עס
האבן ניט קיין ערראָרס אַז עס איז אין פאַקט גאַנץ.
כל רעכט, איך ווילן צו דאַנקען איר אַלע זייער פיל פֿאַר קומען.
איך וויסן דעם איז געווען אַ פּלאַץ, אָבער עס איז געווען בלויז אַ שעה
צו רעדן וועגן עטלעכע שיין אַוואַנסירטע שטאָפּן.
און אַזוי אַלעווייַ איר וועט באַקומען אַ געלעגנהייַט צו אָפּלאָדירן אַלע פון ​​דעם קאָד
און נעמען אַ בעסער, מער גרונטיק קוק אין עס.
סאָרט פון איבערצייגן זיך פון אַלע פון די שטאָפּן אַז ס געגאנגען אויף.
און איך ווילן צו דאַנקען איר אַלע, ווידער, פֿאַר קומען.
און גוט גליק מיט דיין לעצט פראיעקטן.
האָבן אַ גרויס טאָג.