[Powered by Google Translate] [סעקשאַן 8] [ווייניקער באַקוועם] [נאַטע האַרדיסאָן] [האַרוואַרד אוניווערסיטעט] [דאס איז קס50.] [CS50.TV] באַגריסן צו אונדזער רגע צו לעצט אָפּטיילונג. אין דעם וואָך מיר רע געגאנגען צו רעדן וועגן פפּ, און דעמאָלט ווייַטער וואָך מיר וועט טאָן אַ ביסל באריכטן פֿאַר קוויז 1. מיר רע געגאנגען צו אָנהייבן אויף בלאַט 3 פון די פּראָבלעם שטעלט פּאַק, און מיר וועט אַרבעטן דורך דער אָפּטיילונג פון שאלות פערלי געשווינד. אויף בלאַט 3, מיר אָנהייבן גערעדט וועגן דעם חילוק צווישן C און פפּ אין דעם זינען אַז פפּ איז אַ דינאַמיקאַללי טייפּט שפּראַך, וועראַז C איז סטאַטיקאַללי טייפּט, און האט אַבי ווער טאַקע געשווינד געטאן קיין קאָודינג אין עפּעס ווי פפּ אָדער פּיטהאָן אָדער רובי פריער, דזשאַוואַסקריפּט? טאָוטאַלי נייַ? אָוקיי. אַלע פון ​​די שפּראַכן וואָס איך נאָר דערמאנט זענען זייער אַנדערש פון שפּראַכן ווי C און C + +, און דזשאַוואַ אין די געפיל אַז ווען איר דערקלערן אַ בייַטעוודיק איר טאָן ניט האָבן צו דערקלערן וואָס מין פון בייַטעוודיק עס איז, אַזוי אין C מיר זענען סטאַק ווייל צו שטענדיק זאָגן דאָס איז געגאנגען צו זייַן אַ ינט בייַטעוודיק, אָדער דאָס איז געגאנגען צו זייַן אַ טשאַר * בייַטעוודיק, וועראַז מיט פפּ, מיט פּיטהאָן, מיט רובי, מיט אַ פּלאַץ פון די מער מאָדערן שפּראַכן איר טאָן ניט האָבן צו טאָן אַז בייַ אַלע. איר נאָר דערקלערן דיין בייַטעוודיק, און אין די פאַל פון פפּ איר דערקלערן אַז עס ס אַ בייַטעוודיק דורך פּרעפיקסינג עס מיט אַ $ צייכן, און דעמאָלט דער טיפּ פון די בייַטעוודיק איז באשלאסן דורך וועלכער ווערט עס ס האלטן, וואָס איז מין פון קיל. צו שפּילן אַרום מיט דעם אַ קליין ביסל, מיר האָבן מוסטער פפּ קאָד רעכט דאָ אין צווישן די אָנהייב און סוף טאַגס. מיר רע ניצן דעם מין פון ווי HTML אין די געפיל אַז מיר ווע גאַט די ווינקל בראַקאַץ דאָ צו עפענען און נאָענט. איר וועט זען דעם מיט HTML. איר וועט זען די זעלבע סאָרט פון סינטאַקס מיט קסמל אויך. דאס ינדיקייץ דער אָנהייב פון אַ פפּ פאַרשפּאַרן. דעם? פפּ איז ספּעציפיש צו פפּ. מיר נאָענט אַלץ מיט אַ?> ווי געזונט. זאל ס עפענען זיך אַ טעקע אין אונדזער אַפּפּליאַנסע ניצן וועלכער איר 'ד ווי. אין דעם פּאַקאַט עס זאגט צו רופן דינאַמיק.פפּ. אין אמת, איר קענען רופן עס וועלכער איר 'ד ווי, אָבער דער טעקע נאָמען וועט קומען אַרויף און זייַן וויכטיק שפּעטער, אַזוי נאָר געדענקען וועלכער איר רופן עס. איך בין געגאנגען צו באַשטימען איבער צו די אַפּפּליאַנסע, און איך בין געגאנגען צו מאַכן אַ וועגווייַזער פֿאַר אָפּטיילונג 9 איך גלויבן מיר ניטאָ בייַ איצט. און מיר וועט גיין אין אָפּטיילונג 9, און איך בין געגאנגען צו נוצן געדיט. זאל ס זען, געדיט, און איך בין געגאנגען צו רופן מייַן דינאַמיק.פפּ. בום. ין דינאַמיק.פפּ, זינט דאָס איז אַ פפּ טעקע און איך ווילן צו לויפן דעם דורך די פפּ יבערזעצער איך דאַרפֿן צו אָנהייבן אַלץ אַוועק מיט יענע עפענען טאַגס, אַזוי איך בין געגאנגען צו אָנהייבן יענע רעכט אַוועק, געבן זיך אַ ביסל פּלאַץ אין צווישן די טאַגס, און דעריבער די פונט פון דעם געניטונג איז געווען צו שפּילן אַרום מיט דעם פֿונקציע גערופן געטטיפּע, אַזוי געטטיפּע, דעם פֿונקציע רעכט דאָ. נאָטיץ אַז דאָרט ס קיין אַנדערסקאָר אָדער פּלאַץ אָדער מאַקעף אָדער עפּעס ווי אַז סעפּערייטינג די 2 ווערטער, באַקומען און טיפּ, נאָר איין וואָרט בעסאַכאַקל. אבער וואָס דאָס וועט טאָן איז אויב איך פאָרן אין אַ בייַטעוודיק צו געטטיפּע, זאָגן $ וואַר אָדער $ X, דאָס וועט זאָגן מיר מין פון אין אַ דיבאַגינג פֿאָרמאַט וואָס די נאָמען פון וואָס טיפּ איז. מיר רע געגאנגען צו עקספּערימענט דאָ. אין באַזונדער, אויב איר קוק צוריק בייַ די פּסעט ספּעק מיר ווע גאַט אַ ביסל אַנדערש שורות פון קאָד דאָ. אין דער ערשטער שורה פון קאָד מיר ינישאַלייז דעם בייַטעוודיק, $ וואַר, צו זייַן גלייַך צו 7, און דאַן מיר האָבן דעם פּרינטף שורה וואָס זאגט היי, פּרינטף וואַר איז ליידיק. פּרינטף איז איינער פון די פילע וועגן מיר קענען דרוקן דאס אין פפּ. אָפֿט איר וועט זען דעם ווידערקאָל פונקציאָנירן געניצט אַנשטאָט פון פּרינטף, אָבער פּרינטף מיר רע אַלע באַקאַנט מיט בעת שוין קאָודינג אין C פֿאַר אַ בשעת. וואָס איר קענען פאקטיש טאָן איז לאָזן ס זען אויב קאָפּיע און פּאַפּ אַרבעט. איך בין געגאנגען צו געבן דעם אַ פּרובירן. מיר וועט גיין צוריק איבער צו די אַפּפּליאַנסע. אָוקיי, און עס מיר גיין. און ספּייסינג איז אַ ביסל פאַנגקי, אָבער דאָ מיר גיין. מיר ווע גאַט דעם קאָד אין דאָ. [תּלמיד] איז עס נישט גוט נוסח צו קוויטל עס? אנטשולדיגט? [תּלמיד] איז עס קאַנווענשאַנאַל צו קוויטל עס? רעכט, אַזוי סאַם פרעגט אויב עס ס קאַנווענשאַן צו קוויטל עס אָדער נישט. טיפּיקלי יאָ. אין דעם פאַל איך האב אויסדערוויילט ניט צו. האָנעסטלי, איר וועט זען פאַרשידענע זאכן צווישן פאַרשידענע פּראָוגראַמערז. פפּ איז טיפּיקלי געניצט אָפֿט אין קאָמבינאַציע מיט HTML און אנדערע שפּראַכן, און אַזוי מאל די דרוקן וועט קוקן אַ ביסל פאַנגקי אויב איר ינדענט ין פפּ אָנהייב און סוף טאַגס. עס טאַקע דעפּענדס. אין דעם פאַל די קאָפּיע און פּאַפּ האט נישט פּאַפּ די טאַבס אין פֿאַר מיר, אָבער עס באשטימט טוט, ווי איר האט געזאגט, מאַכן עס קלירער. אַלע רעכט, אויב איר ראַטעווען דעם קאָד אין דינאַמיק.פפּ דעמאָלט וואָס איר קענען טאָן איז קומען אַראָפּ צו דיין וואָקזאַל פֿענצטער ווו איך בין רעכט אַראָפּ דאָ אין געדיט, און צו טאָן דעם עקוויוואַלענט פון צונויפנעמען ניצן מאַכן און דעמאָלט פליסנדיק דיין קאָד אין C אַלע איר האָבן צו טאָן מיט די פפּ טעקע איז אָנהייב אַרויף די פפּ יבערזעצער, וואָס איז אַ ביסל פּראָגראַם גערופן פפּ, און די אַרגומענט איר געבן צו די יבערזעצער איז די טעקע איר ווילן צו טייַטשן. אין דעם פאַל, דינאַמיק.פפּ. ווהאָאָפּס, ווו האט איך לייגן עס? אָה, איך לייגן עס אין אָפּטיילונג 9, און דאָ איך בין. אַז ס וואָס. איצט אויב איך לויפן אַז ווידער מיר זען אַז אין מיין ערשטער געטטיפּע פונקציאָנירן רופן וואַר איז אַ ינטעגער. אין דער ווייַטער איינער וואַר איז אַ שטריקל, און דעמאָלט אין די דריט איינער וואַר איז אַ בוליאַן. וואָס ס טשיקאַווע וועגן דעם איז אויב מיר מעגילע צוריק אַרויף מיר זען אַז די ביסט טייפּס ענלעך צו די אָנעס אַז מיר האט אין סי מיר האט ינץ אין סי מיר סאָרט פון האט סטרינגס אין C, אַזוי סטרינגס זענען נישט אַ טאָוטאַלי לעגיט טיפּ אין די געפיל אַז אונדזער קס50 שטריקל איז געווען טאַקע וואָס? אנטשולדיגט? מיססי? [מיססי] טשאַר *. יאָ, עס איז געווען דעם טשאַר * מיר געוויינט. אין דער זייער אָנהייב פון די זמאַן מיר האבן ניצן די שטריקל טיפּ, אָבער עס איז געווען טאַקע אַ טשאַר * אונטער די קאַפּטער. מיר נאָר טיפּ דיפיינד עס, וועראַז אין פפּ די סטרינגס ביסט אַ פאַקטיש טיפּ. עס ס ניט מער פון דעם טשאַר * טיפּ שטאָפּן. איר וועט זען אַז מיר קענען טאָן פילע מער זאכן מיט סטרינגס פיל מער לייכט אין פפּ ווי מיר קען אין C, און דעמאָלט לעסאָף, מיר האָבן דעם בוליאַן טיפּ, און די גרויס חילוק דאָ איז אַז אויב מיר מעגילע צוריק אַראָפּ מיר זען אַז דער נאָמען פון די טייפּס זענען איצט ינטעגער, שטריקל, און בוליאַן אַנשטאָט פון ינט און באָאָל, און ווי איר קלייַבן זיך פאַרשידענע פּראָגראַממינג שפּראַכן, אַסומינג אַז אין עטלעכע פונט אין דיין לעבן איר וועט קומען אין קאָנטאַקט מיט פאַרשידענע אָנעס איר וועט באַמערקן ביסל קווערקס ווי דעם ווו C רופט ינטאַדזשערז ינץ. עטלעכע רופן עס ינטאַדזשערז. עס זענען אנדערע תּנאָים וואָס איר וועט לויפן אין. גרויס ינט מיר געזען הייַנט אין סקל. עס זענען אויך נומער און דעמאָלט באָאָל, בוליאַן, אַלע סאָרץ פון דיפעראַנסיז דאָרט. דאס איז נישט טעראַבלי טשיקאַווע אָבער איצט איך בין געגאנגען צו געבן איר אַ קליין ביסל פון צייַט- אויב מיר פארגרעסער צוריק אויס-צו אַרבעט דורך דעם געניטונג בייַ די דנאָ פון Page 3 ווו עס פרעגט וואָס טייפּס שטימען צו די וואַלועס דאָ אין די דנאָ. מיר האָבן 3.50. מיר האָבן דעם זאַך רעכט דאָ, וואָס איז טשיקאַווע. מיר האָבן נישט געזען אַז פריער, כאָטש אויב איר ווע שוין פאלגענדע צוזאמען אין לעקציע איר מיסטאָמע שוין וויסן וואָס אַז איז. דעמאָלט מיר האָבן דעם, וואָס דאָס איז מין פון פאַנגקי. איר דערקענען דעם. וואָס איז דאָס אין C? סאַם? וואָס וואָלט דאָס געבן איר אין C? עס וואָלט עפענען אַ טעקע גערופן דינאַמיק.פפּ און מאַכן עס ליינעוודיק. יאָ, און וואָס וואָלט זייַן דער טיפּ פון בייַטעוודיק אַז מיר וואָלט באַשטימען דעם צו? >> טעקע שטערן. פּונקט, מיר וואָלט באַשטימען דעם צו אַ טעקע שטערן. דאס איז לאַדזשיטאַמאַט פפּ אויך. לויפן אַז. זען וואָס כאַפּאַנז ווען איר פאָרן אַז אין געטטיפּע. און דעריבער אויך טשעק אויס וואָס נאַל איז, וואָס וואָס זאל זייַן אין פפּ. איך וועט געבן איר אַ פּאָר מינוט. איר קענען ממש קאָפּיע און פּאַפּ די וואַלועס אין, און דעמאָלט מיר וועט טאָן אַ ביסל טראַפ רופן אויף איר און זען וואָס איר גאַט. [תּלמיד] איך האב אַ קשיא. << יאָ. אין איינער פון די רעפֿעראַטן דוד האט דאָרט ס 'עפּעס איר קענען שטעלן בייַ די שפּיץ פון דיין טעקע אַזוי אַז איר טאָן ניט האָבן צו דרוקן אין פפּ יעדער צייַט. וואָס איז וואָס? ער איז געווען מיסטאָמע גערעדט וועגן די פּאָונד קלאַפּ, דעם האַש קלאַפּ. עס ס אַ דירעקטיוו וואָס אויב איר צייכן דיין טעקע ווי עקסעקוטאַבלע דעמאָלט וואָס עס טוט איז ווען איר ויספירן דער טעקע עס וועט זאָגן די שאָל פּראָגראַם צו נוצן די פפּ יבערזעצער צו טייַטשן דעם אינהאַלט פון דער טעקע. די קשיא זייַענדיק וואָס איז געווען דעם ספּעציעל שורה אַז מיר קען אַרייַננעמען אין די שפּיץ פון אונדזער פפּ טעקעס צו נישט האָבן צו אַרייַננעמען דעם פפּ שורה אָדער דעם פפּ באַפֿעל ווען מיר ווילן צו ויספירן דער טעקע? און איר קענען פאקטיש טאָן דאָס מיט אַ בינטל פון פאַרשידענע טעקעס. איך גלויבן עס דעפּענדס אויף ווו די פפּ ביינערי איז סטאָרד, אָבער אָפֿט וסר / בין / פפּ איז אַ גוט פּלאַץ צו אָנהייבן. איר קענען רעכענען דאָס אויס פּונקט דורך געגאנגען צוריק אַראָפּ צו דיין אַפּפּליאַנסע און טייפּינג אויס וואָס פפּ. די וואָס באַפֿעל פיגיערז אויס ווען איר ניטאָ עקסאַקיוטינג ביינערי אָדער אַ באַפֿעל ווו די קאָראַספּאַנדינג טעקע איז. דאס דערציילט מיר אַז די פפּ איז טאַקע אַליאַסינג דעם ביינערי טעקע אַז ס סטאָרד אין וסר / בין, וואָס איז ווו אַ פּלאַץ פון די סיסטעם בינאַריעס זענען אינסטאַלירן. פֿאַר בייַשפּיל, אויב איך מעגילע אַרויף צו די שפּיץ, איצט אַז איך ווע שטעלן דעם #! שורה אין דאָ איך קענען מעגילע אַראָפּ, און איך קען פּרובירן צו לויפן דינאַמיק.פפּ, אָבער איך באַקומען דעם טעות וועגן דערלויבעניש זייַענדיק געלייקנט, און וואָס אַז מיטל איז אַז דעם טעקע איז נישט דערווייַל געבן עקסעקוטאַבלע פּערמישאַנז. עס ס נישט אנגעצייכנט ווי אַ טעקע אַז עמעצער קענען לויפן. ווען איר געלאפן מאַכן אָדער קלאַנג און איר גאַט אַ עקסעקוטאַבלע פון ​​עס דער קאַמפּיילער איז קלוג גענוג צו וויסן אַז היי, איך בין בנין אַ עקסעקוטאַבלע. איר מיסטאָמע ווילן צו ויספירן עס, אַזוי עס וואָלט אויטאָמאַטיש קאַנפיגיער די פּערמישאַנז פֿאַר איר. דאס איז נישט דער פאַל, כאָטש, ווען איר מאַכן אַ נאָרמאַל טעקע פון ​​קראַצן, די סיבה זייַענדיק טיפּיקלי איר טאָן נישט וועלן צו האָבן קיין טעקע אויף דיין סיסטעם זייַן עקסעקוטאַבלע, אַזוי איר פאקטיש האָבן צו גיין אין און מאַניואַלי טאָן עס. די יזיאַסט וועג צו טאָן עס איז מיט די טשמאָד באַפֿעל, און טשמאָד + X זאגט לייגן די עקסעקוטאַבלע ביסל ווייַל דאָרט ס די לייענען ביסל, די שרייַבן ביסל און די עקסעקוטאַבלע ביסל, ר, ד און X, און געזאגט טשמאָד + X וועט קער אויף די עקסעקוטאַבלע ביסל פֿאַר דעמאָלט דער טעקע אַז מיר ספּעציפיצירן, וואָס אין דעם פאַל וועט זייַן דינאַמיק.פפּ. [תּלמיד] איז אַז פארקערט אויף פֿאַר אַלעמען? זאל ס טשעק דאָס אויס, אַזוי ווי וואָלט איך טשעק צו זען די פּערמישאַנז? צי איר וויסן ווי איך 'ד טשעק צו זען די פּערמישאַנז פון אַ טעקע? [ינאָדאַבאַל תּלמיד ענטפער] אנטשולדיגט? >> [תּלמיד] קססד. קססד גיט אונדז די טעקע אין כאַקס. ליסטינג אַלע די טעקעס,-ל, וועט ווייַזן מיר אַלע פון ​​דעם טעקעס אין מיין וועגווייַזער מין פון אין זייער לאַנג, ווערבאָסע ליסטינג, און אַזוי דאָ מיר זען אַז דעם דינאַמיק.פפּ טעקע איז לעצט געווארן מאדיפיצירט נאוועמבער 5 בייַ 16:21. די באַזיצער פון דעם טעקע איז דזשהאַרוואַרד. אַז ס דער באַניצער וואס איז לאָגד ין אַז ס דער באַניצער איך בין ארבעטן ווי, און אויב איר ניטאָ אויך אין די אַפּפּליאַנסע איר ניטאָ אויך ארבעטן ווי באַניצער דזשהאַרוואַרד. איר ניטאָ אין די סטודענטן גרופּע, און די ביסט דאס וואָס איר וועט זען אָפֿט גענוג. מיר קענען גיין אין אַ פּלאַץ פון פּרט דאָ, אָבער פֿאַר די רובֿ טייל וואָס איר ווילן צו קוקן אין ווען איר ניטאָ קוקן צו זען צי אָדער נישט אַ טעקע איז עקסעקוטאַבלע איז בפֿרט דער באַניצער וואס אָונז דער טעקע, די באַזיצער, אַזוי דעם דזשהאַרוואַרד, און דאַן מיר האָבן די פּערמישאַנז ביטן איבער דאָ אויף די לינקס, און די וועג צו לייענען דעם איז אַז די לעצטע ביסל טיפּיקלי איז געניצט פֿאַר מאַרקינג צי אָדער נישט-בייַ מינדסטער אין דעם פאַל דאָס לעצטע ביסל וועט אָפֿט זייַן שטעלן צו אַד צו אָנווייַזן אַז דער טעקע איז אַ וועגווייַזער און ניט נאָר אַ נאָרמאַל טעקע. דעריבער די פאלגענדע 3 ביטן רעכט דאָ באַשטימען די פּערמישאַנז אַז די באַזיצער פון דער טעקע האט, אַזוי אין דעם פאַל דזשהאַרוואַרד, ווי די באַזיצער פון דער טעקע, קענען לייענען און שרייַבן דעם טעקע, אָבער דאָרט ס אַ לאָך געזאגט אַז דזשהאַרוואַרד קענען נישט ויספירן דעם טעקע. דער ווייַטער 3 ביטן ביסט פֿאַר די גרופּע, אַזוי דאָס איז די סטודענטן גרופּע, אַזוי אויב עס זענען קייפל ניצערס אויף מיין אַפּפּליאַנסע, און מיר האט קייפל ניצערס ווי טייל פון די סטודענטן גרופּע, דעריבער זיי קענען אַלע לייענען דעם טעקע, אָבער זיי קענען נישט שרייַבן עס, און פּונקט אַזוי ווער עס יז אַנדערש, די וועלט קענען בלויז לייענען דעם טעקע ווי געזונט. עס ס אַ גוט, לאַנג ווריטעופּ וועגן דעם, אַזוי איר קענען לייענען אָנליין. אין די פּראָבלעם שטעלן ספּעק מיר גיין אין דעם אין מער דעטאַל. [תּלמיד] איז די 218 ריפערינג צו די וועלט? די 218 איז-אַוועק די שפּיץ פון מיין קאָפּ איך בין פערגעטינג, אָבער ניט. זאל ס זען. איך בין בלאַנגקינג אויף אַז רעכט איצט. צוריק צו וואָס מיר האבן וועגן צו טאָן מיט דעם טשמאָד + X ווו מיר געוואלט צו געבן דינאַמיק.פפּ עקסעקוטאַבלע פּערמישאַנז, און די קשיא איז צי אָדער נישט דעם וואָלט געבן עקסעקוטאַבלע פּערמישאַנז צו אַלעמען אָדער צו נאָר דזשהאַרוואַרד, און מיר קענען זען דעם דורך פליסנדיק די קאַמאַנדז און טייפּינג לס-ל, און איצט מיר זען אַז עס ס אנגעצייכנט ווי עקסעקוטאַבלע. איר זען אַז עס איז געווען אַ פֿאַרב טוישן. איצט דינאַמיק.פפּ איז ליסטעד אין גרין, און עס קוקט ווי די ענטפֿערן צו דער קשיא איז וואָס, שאַרלאַט? [שאַרלאַט] בלויז דזשהאַרוואַרד. >> בלויז דזשהאַרוואַרד, יאָ. אויב מיר געוואלט צו אומקערן די עקסעקוטאַבלע ביסל אויף פֿאַר יעדער יינער ווי זאל מיר טאָן וואָס? קיין געדאנקען? >> א + X? יאָ, פּונקט. שאַרלאַט האט מיר קענען טאָן טשמאָד פון א + X פון דינאַמיק.פפּ, און איצט אויב מיר לויפן לס-ל מיר זען אַז דער עקסעקוטאַבלע ביטן ביסט טאַקע פארקערט אויף פֿאַר אַלעמען. און איר קענען פאקטיש טאָן די פאַרקערט פון דעם, אַזוי איר קענען ווענדן עס אַוועק פֿאַר אַלעמען ניצן מינוס. איצט עס ס פארקערט אַוועק, און איצט מיר קענען ווענדן עס צוריק אויף פֿאַר דזשהאַרוואַרד אַזוי אַז מיר קענען פאקטיש לויפן אים איצט, און איצט איר זען ווען מיר לויפן די קאָד דעם ספּעציעל #! שורה אין די שפּיץ, #! שורה, דערציילט די שאָל, דערציילט אונדזער וואָקזאַל היי, ווען דעם טעקע איז לויפן, נוצן / וסר / בין / פפּ צו טייַטשן דעם טעקע און דעמאָלט דרוקן די רעזולטאַט. [ינאָדאַבאַל תּלמיד קשיא] זיכער, לאָזן מיר מעגילע צוריק אַרויף. פּונקט ווי דעם. איר וועט זען אַלע פון ​​די דיירעקטיווז אָנהייבן מיט דעם פונט און דאַן די עקסקלאַמיישאַן פונט, מאל גערופן אַ שעבאַנג, האַש קלאַפּ. [תּלמיד] ווי קענען מיר לויפן עס מיט פפּ דינאַמיק.פפּ איידער מיר מאַכן עס עקסעקוטאַבלע? די קשיא איז ווי קענען מיר לויפן דעם ניצן די פפּ ביינערי בשעת דינאַמיק.פפּ איז נישט עקסעקוטאַבלע? דאס איז סופּער וויכטיק ווייַל דאָס איז פּונקט ווי עס ס געגאנגען צו אַרבעטן ווען איר שרייַבן פּראָבלעם שטעלן 7. רובֿ פון די צייַט פפּ טעקעס זענען נישט גלייַך עקסעקוטאַבלע. די וועג וואָס אַרבעט איז ווייַל עס ס די פפּ ביינערי אַז ס עקסעקוטאַבלע. די יבערזעצער איז די זאַך אַז ס זייַענדיק עקסאַקיוטאַד, און אַזוי וואָס עס ס טאן איז ממש סלורפּינג אין די גאנצע אינהאַלט פון אונדזער דינאַמיק.פפּ טעקע און געגאנגען שורה ביי שורה און עקסאַקיוטינג יענע קאַמאַנדז, אַזוי עס ס ניצן אונדזער פפּ טעקע ווי אַ רשימה פון ינסטראַקשאַנז. עס ס ניט גלייַך עקסאַקיוטינג עס. אַז ס ווו מיר זאָגן אַז די טעקעס זענען ינטערפּראַטאַד בייַ לויפן צייַט. עס ס אַ לויפן צייַט שפּראַך אַנשטאָט פון עפּעס אַז ס באשלאסן בייַ צונויפנעמען צייַט, ניט אַ צונויפגעשטעלט שפּראַך ווי סי איז עס אַ וועג צו באַקומען אַ לויפן צייַט שפּראַך צו שפּילן ווי אויב עס ס אַ צונויפנעמען צייַט שפּראַך, ווי אויב איר האָבן אַלע די פליסנדיק געטאן בייַ די סערווירער אלא ווי-איר וויסן וואָס איך מיינען? יא, אַזוי די קשיא איז איז עס אַ וועג צו באַקומען לויפן צייַט שפּראַכן צו שפּילן מער ווי צונויפנעמען צייַט טייפּס פון שפּראַכן? און עס זענען, איך מיינען, וואָס איז אַן אַקטיוו געגנט פון פאָרשונג פֿאַר אַ פּלאַץ פון די קאָמפּאַניעס. איך גלויבן פאַסעבאָאָק האט געטאן אַ פּלאַץ פון אַרבעט מיט פפּ און קאַמפּיילינג עס אַראָפּ, מאכן עס פאַסטער, אָפּטימיזינג עס זינט זייער פּלאַץ איז געבויט אויף פפּ. אויב איר ווע שוין פאלגענדע נאָדע.דזשס בייַ אַלע, וואָס איז מין פון אַ דזשאַוואַסקריפּט יבערזעצער צו זייַן ביכולת צו לויפן דזשאַוואַסקריפּט אַרויס פון דעם בלעטערער, ​​אַרויס פון דיין וועב בלעטערער, ווייַל טראַדישאַנאַלי דזשאַוואַסקריפּט וואָלט נאָר לויפן ין פון פירעפאָקס אָדער קראָום, און עס וואָלט זייַן געניצט צו מאַכן קיל אַנאַמיישאַנז פּאַסירן אויף אַ וועב בלאַט און מאַכן אייער וועב בלאַט דינאַמיש. אַז ס 'געווען געבויט אויף אַ פּלאַץ פון אַרבעט אַז גוגל האט געטאן צו מאַכן דזשאַוואַסקריפּט און C + + בינדן צוזאַמען, אַזוי דאָרט ס אַ פּלאַץ פון אַקטיוו פאָרשונג צו באַקומען די שפּראַכן צו ינטעראַקט און אַפּטאַמייז זיי, בפֿרט ווייַל אַזוי פילע מענטשן קענען קאָד אין פפּ און דזשאַוואַסקריפּט ווייַל עס ס אַ פּלאַץ גרינגער. עס ס אַ פּלאַץ ניסער. איר טאָן ניט האָבן פּוינטערז. איר טאָן ניט האָבן טייפּס פלאָוטינג אַרום. זיי געוואלט צו געווינען די בענעפיטן פון די צונויפנעמען צייַט שפּראַכן מיט אַלע די טיפּ קאָנטראָלירונג און די גיכקייַט און דער נידעריקער זכּרון באַניץ און אַלע פון ​​וואָס בשעת נאָך מיינטיינינג די בייגיקייַט און יז פון נוצן פון די נייַער אָנעס. צוריק צו אונדזער אָריגינעל פּלאַן פון באַפאַלן. מיר ווע גאַט אַ ביסל פון די שאלות דאָ אין אונדזער פּראָבלעם שטעלן ספּעק. זאל ס גיין דורך זיי טאַקע געשווינד, און מיר וועט גיין אַרום דעם צימער. שאַרלאַט, וואָס טיפּ איז 3.50? [שאַרלאַט] אַז ס אַ טאָפּל. >> עס ס אַ טאָפּל. זשימי, וואָס איז דאָס ווייַטער איינער? >> אַ מענגע. אַ מענגע, אָסאַם, און דזשאַרעד, וואָס איז די פאָפּען? [דזשאַרעד] עס ס אַ מיטל. >> עס ס אַ מיטל. אַז ס מין פון אַ נייַ איין, נישט אַ טעקע שטערן, ניט אַ טעקע. עס ס אַ מיטל איז די טיפּ אין פפּ, און איך בין נעבעכדיק, עלאַ, די לעצטע נאַל איז וואָס? נאַל. נאַל, ווי איז עס ספּעלד אין פפּ? >> די זעלבע וועג. די זעלבע וועג, קאַפּיטאַלס? >> יאָ. יאָ, אַלע רעכט. דאָ מיר גיין, מיר ווע גאַט אַ טאָפּל, מיר ווע גאַט אַ מענגע, מיר ווע גאַט אַ מיטל, און דאַן מיר ווע גאַט נאַל. זאל ס זען איצט האָט איר געזען- לאָזן ס זען, אַזוי איצט איך טרעפן וואָס איך אויך ווילן צו טאָן איז ציען אַרויף דעם וועב בלאַט רעכט דאָ, דעם php.net / מאַנואַל, אַזוי אויב איר גייז קאָפּיע וואָס און עפענען זיך אַ וועב בלעטערער. איך בין געגאנגען צו ציען אַרויף קראָום, שטעלן אַז ין איך ווילן צו ווייַזן איר דאָס ניט נאָר ווייַל מיר קענען רעדן אַלע טאָג וועגן טייפּס און אַלע וואָס שפּאַס שטאָפּן אָבער אלא ווייַל דאָס איז די פפּ מאַנואַל, און עס זענען אַ פּלאַץ פון פפּ פּראָוגראַמערז אויס דאָרט. עס זענען אַ פּלאַץ פון פפּ וועבסיטעס אויס דאָרט, און ווי אַ רעזולטאַט, עס איז אַ פּלאַץ פון דאַקיומענטיישאַן אויף פפּ, און די מאַנואַל, דעם php.net, איז אַ טאַקע גוט אָרט צו גיין ווען איר ניטאָ בעת פראגעס וועגן וואָס ס דער בעסטער וועג צו טאָן רענטגענ אין פפּ אָדער וואָס טוט אַ פֿונקציע קוק ווי? נאָר מין פון געטינג באַקאַנט מיט וואָס דאָס קוקט ווי ווייַל איר וועט זייַן קומען דאָ אָפֿט, אַ ביסל פֿאַר פּראָבלעם שטעלן 7. אויב איר סוף זיך טאן אַ לעצט פּרויעקט וואָס ניצט פפּ דאָס וועט זייַן אַ פּלאַץ איר וועט ווערן זייער גוט באַקאַנט מיט. אָפֿט דעם וועג מען טאָן דאָס איז זיי נוצן גוגל צו זוכן פֿאַר די פּלאַץ, און זיי טאָן ניט נוצן די זוכן קעסטל אַז ס אַרויף דאָ אין די שפּיץ רעכט, וואָס איז מין פון קליינטשיק. אויב איר ניטאָ גאָאָגלינג אַרום פֿאַר עפּעס צו טאָן מיט פפּ און איר זען איינער פון די מאַנואַל לינקס קנאַל אַרויף איר קענען טיפּיקלי פאַרלאָזנ אויף אַז ווי אַ פערלי גוט מיטל. אָסאַם, אַזוי אויס פון די טייפּס, נאָר אויס פון נייַגעריקייַט, וואָס אָנעס האָבן נישט מיר געזען? עפּעס מיר האָבן נישט געזען דאָ? [תּלמיד] ריסאָרס. >> מיר געזען מיטל מיט די פאָפּען רופן. [תּלמיד] אַבדזשעקס. >> אָבדזשעקץ מיר האָבן נישט געזען פֿאַר זיכער. קאַללבאַקקס מיר האָבן נישט געזען. עס זענען עטלעכע פון ​​די פּסעוודאָ-טייפּס. מיר באשטימט בלויז געזען ינטעגער און טאָפּל. מיר האט ניט זען עטלעכע פון ​​די אנדערע, אַזוי אויב מיר גיט אויף ינטאַדזשערז מיר קענען זען זענען דאָרט קיין אנדערע ינטאַדזשערז אַז זיי האָבן דאָ? זענען זיי אַלע-אַזוי ינטעגער, ינטעגער, ינטעגער. עטלעכע שפּראַכן האָבן ביגער ינטעגער טייפּס, ווי מיר געזען אויף מיסקל הייַנט דאָרט איז געווען ינט און דעמאָלט גרויס ינט. קיל. אַזוי, פפּ מאַנואַל. זאל ס גיין צוריק צו אונדזער פּראָבלעם שטעלן ספּעק, און מיר וועט איצט מעגילע אַראָפּ צו Page 4. איינער פון די זאכן וואָס כאַפּאַנז ווען איר באַקומען די שפּראַכן וואָס טאָן ניט האָבן דעם סטאַטיק טייפּינג, אַזוי די שפּראַכן ווו איר האָבן צו דערקלערן דער טיפּ פון אַ בייַטעוודיק אַרויף פראָנט איז איר באַקומען פאלן ווו איר זאל אָנהייבן בעת ​​וועריאַבאַלז פון פאַרשידענע טייפּס ינטעראַקטינג מיט יעדער אנדערע, און פפּ טוט דעם זאַך ווו עס פרוווט צו טאָן וואָס עס האלט צו זייַן דעם רובֿ פיליק זאַך צו טאָן ווען איר האָבן 2 פאַרשידענע טייפּס ינטעראַקט מיט יעדער אנדערע. פֿאַר בייַשפּיל, אויב מיר קוקן אין די שורות פון קאָד רעכט דאָ איר זען אַז מיר ווע גאַט וואָס כאַפּאַנז ווען מיר פּרובירן און לייגן דעם שטריקל 1 צו די ינטעגער 2. וואָס כאַפּאַנז אויב מיר פּרובירן און לייגן אַ שטריקל וואָס איז נישט אַ נומעריק ווערט אָבער אלא פאַקטיש אותיות, קס צו די נומער 50? דעמאָלט מיר וועט זען איז עס עפּעס אַנדערש וואָס כאַפּאַנז ווו אַנשטאָט פון אַדינג אַ שטריקל צו אַ נומער מיר רע אַדינג אַ נומער צו אַ שטריקל, און אַזוי אויף און אַזוי אַרויס צו די פונט ווו מיר רע געטינג עטלעכע מין פון טשודנע שטאָפּן רעכט דאָ ווו מיר ווע גאַט 7 + אמת. וואָס די כעק טוט וואָס מיינען? אויב איר גייז גיין פאָרויס און פּאַפּ עטלעכע פון ​​דעם קאָד אין דיין אַפּפּליאַנסע. איר קענען האַלטן עס אין דינאַמיק.פפּ. מיר וועט זען וואָס כאַפּאַנז. [תּלמיד] נאָר נוצן דרוקן, ניט פּרינטף? יאָ, אַזוי איר וועט געפֿינען וואָס דרוקן איז אויך אַ גילטיק פֿונקציע פֿאַר דרוקן אין פפּ. עס זענען פילע פאַרשידענע וועגן פון טאן עס. מיר וועט זען מיט אַ פּאָר פון די ביישפילן שפּעטער אויף אַמאָל מיר אָנהייבן גערעדט וועגן די יינציק פּראָבלעם אַז מיר רע געגאנגען צו שרייַבן און דעריבער די קאַנסאַנטריישאַנז פּראָבלעם אַז מיר רע געגאנגען צו שרייַבן אַז אַפֿילו כאָטש מיר האָבן פאָפּען און פקלאָסע אַז ס אָפֿט ניט די סימפּלאַסט וועג צו לייענען אין דעם אינהאַלט פון אַ טעקע. פפּ האט אַ פּלאַץ פון די C-ווי כאָולדאָוווערז. [תּלמיד] ווען איך שטעלן אין אַלע 6 פון יענע זאכן איך נאָר באַקומען איין נומער ווי אַ רעזולטאַט. [נאַטע ה] ווען איר שטעלן אין אַלע 6 פון די זאכן. זאל ס זען איז עס ווייַל עס ס עפשער- איין זאַך איז אַז די דרוק רופט זענען נישט טערמאַנייטיד אין די סוף מיט נייַ שורות. עס ס קיין נייַ שורה סעפּערייטינג יעדער פון די דרוק רופט, אַזוי אפֿשר איר ניטאָ געטינג איין גרויס נומער, און עס ס 'טאַקע נאָר אַמאַלגאַם פון נייַ שורה אותיות. [תּלמיד] אָוקיי, ווי טאָן איך מאַכן זיכער- נו, עס זענען אַ בינטל פון פאַרשידענע וועגן. איר קען מאַניואַלי שטעלן אין אַ דרוק פון אַ נייַ שורה כאַראַקטער, אַ ווידערקאָל פון אַ נייַ שורה כאַראַקטער, דרוק פון נייַ שורה. [תּלמיד] אזוי ווידערקאָל איז די זעלבע זאַך ווי פּרינטף? פּרינטף איז ווי C פּרינטף ווו איר ניטאָ דרוקן אַ פאָרמאַטטעד שטריקל. איר רע סאַפּלייינג עס די פֿאָרמאַט שטריקל און דעריבער אַלע די פּלאַסעהאָלדער וועריאַבאַלז. עס ס אָפֿט עפּעס וואָס איז נישט געניצט- לאָזן ס זען, ווי אַ אָפּלייקענונג, איך בין ווייניקער באַקאַנט מיט פפּ ווי איך בין מיט אנדערע וועב שפּראַכן, און ווען איך האָבן פּראָוגראַמד אין פפּ איך טיפּיקלי טאָן ניט נוצן פּרינטף ווייַל איך געפֿינען עס פאַסטער צו נוצן דעם שטריקל ינטערפּאָלאַטיאָן קייפּאַבילאַטיז אַז עס האט, וואָס מיר וועט גיין אין און איך וועט ווייַזן איר אין נאָר אַ רגע, וועראַז אין C מיר מין פון האָבן צו טאָן דעם האַקקי זאַך צו באַקומען עס צו דרוקן אויס רעכט. איר קענען פאקטיש שטעלן וועריאַבאַלז גלייַך אין סטרינגס אין פפּ. פּרינטף איז מין פון איבערגעשפיצטן לאַנג פֿאַר וואָס איך יוזשאַוואַלי טאָן. יא, עלאַ. [עלאַ] בכלל אויב איר באַקומען פּאַרס טעות טוט וואָס מיינען- ווי אויף C עס טוט נישט זאָגן איר פּונקט ווו דער גרייַז איז און וואָס עס איז, אַזוי טוט וואָס מיינען קוקן דורך דיין גאנצע קאָד און רעכענען עס אויס? עס ס טיפּיקלי מער טאַרגעטעד ווי אַז. איך טראַכטן אין אַז פאַל עס איז געווען אַ קליין אַוועק, אַזוי איך טראַכטן אין אַז פאַל מיר זענען פעלנדיק אַ פּינטל - קאָמע. עס איז געווען טריינג צו מאַכן זינען פון אַלץ, אַזוי ווי די ינטערפּראַטאַד שפּראַכן, די יבערזעצער איז געגאנגען צו פּרובירן און טאָן זייַן בעסטער צו מאַכן אַלץ אַרבעט אַפּראָופּרייטלי. איר וועט זען, פֿאַר בייַשפּיל, אין דזשאַוואַסקריפּט איר וועט אָפֿט-שורה סטייטמאַנץ סוף מיט אַ פּינטל - קאָמע פּונקט ווי זיי טאָן אין פפּ, פּונקט ווי זיי טאָן אין סי אין דזשאַוואַסקריפּט עטלעכע פון ​​די דזשאַוואַסקריפּט קומפיילרים אין אַ פּלאַץ פון די בראַוזערז וועט שטעלן אין סעמיקאָלאָנס פֿאַר איר אויב איר פּאַסירן צו זייַן פעלנדיק זיי. זיי וועט פּרובירן און אַקאַמאַדייט פֿאַר עטלעכע סלאַפּינאַס אויף דיין טייל. אַז ס ווו עס זאל זייַן טריינג און טריינג און טריינג צו מאַכן דאס אַרבעט, און דעמאָלט לעסאָף עס וועט באַקומען צו אַ פונט ווו עס זאגט אָוקיי, איך קענען נישט מאַכן זאכן אַרבעטן אויף ביילינג, און אַז ס ווו איר וועט באַקומען אַ שורה נומער וואָס זאל ויסקומען אַ ביסל אַוועק פון די פּינטלעך אָרט. אָוקיי, אַזוי לאָזן ס גיין דורך דעם טאַקע געשווינד. מיר לינקס אַוועק מיט עלאַ, אַזוי לאָזן ס גיין איבער צו מיססי, און מיססי, וואָס טוט דרוק פון שטריקל 1 פּלוס די נומער 2 געבן איר? [מיססי] 3. >> 3. טוט וואָס מאַכן זינען? סאָרט פון? טוט אים געבן איר אַ נומער? טוט אים געבן איר אַ שטריקל? [מיססי] א נומער. >> עס ס אַ נומער. אבער עס ס דרוקן עס, אַזוי עס ס געגאנגען צו געבן איר עטלעכע סאָרט פון שטריקל. איין זאַך מיר קענען טאָן צו קאָנטראָלירן דעם אויס איז אויב מיר טאָן $ וואַר = 1 + 2 און דעמאָלט מיר זאָגן ווידערקאָל פון געטטיפּע, אַזוי מיר רע ניצן 1/3 מין פון דרוקן דאָ. איצט מיר קענען זען וואָס כאַפּאַנז דאָ. דאָ וואָס מיר ווע גאַט איז מיר גאַט אַ ינטעגער אויס פון דעם. אפילו כאָטש מיר זענען אַדינג דעם שטריקל צו אַ נומער, מיר האט ניט באַקומען אַ שטריקל אויס פון אים, נאָר ווי מיססי געזאגט. מיר זענען געטינג אַן ינטעגער. אָוקיי, אַזוי לאָזן ס זען, ווייַטער אַרויף, קעווין. קס + 50? >> [קעווין] 50. [נאַטע ה] 50. טוט וואָס מאַכן זינען? [קעווין] יאָ. [נאַטע ה] פארוואס? וואָס טוט עס מאַכן זינען צו איר? [קעווין] ווייַל עס ס נאָר ווייל די שטריקל, ווייל נומער ווערט נול. יאָ, גרויס. מין פון אַמביגיואַס סיטואַטיאָנס, אָבער עס ס 'גוט צו וויסן וואָס כאַפּאַנז. סטעלאַ, וואָס כאַפּאַנז ווייַטער מיט נומער 1 + שטריקל 2? [סטעלאַ] 3. >> 3 ווידער. און אין דעם פאַל, טאָן מיר באַקומען אַ שטריקל אָדער אַ נומער? זאל ס געבן דעם אַ פּרובירן. אַבי ווער פאַסטער ווי מיר באַקומען דעם ענטפער? שאַרלאַט? אָה, איך דינט-אָוקיי, לאָזן ס זען, מיר רע געגאנגען צו טאָן די זעלבע סאָרט פון זאַך ווו מיר ווע גאַט אַ נומער פּלוס אַ שטריקל, און מיר רע געגאנגען צו ווידערקאָל דער טיפּ, זען וואָס מיר באַקומען. מיר אויך באַקומען אַ ינטעגער. עס טוט נישט ענין וואָס איינער איז די שטריקל, וואָס איינער איז די נומער. מיר ניטאָ נאָך געגאנגען צו באַקומען אַ ינטעגער. עס ס נאָך געגאנגען צו טאָן וואָס מיר זאל דערוואַרטן. אַלע רעכט, אַזוי סאַם, וואָס וועגן 90 + 9 לאגלען פון ביר אויף די וואַנט? [סאַם] 99. >> 99. קיין לאגלען פון ביר אויף די וואַנט, כאָטש. עס גיט אונדז אַ ביסל מער אינפֿאָרמאַציע וועגן וואָס ס געשעעניש. [סאַם] אויב איר האט געשריבן 9 אין אותיות דעמאָלט איר וואָלט האָבן 90, רעכט? [נאַטע ה] יאָ. די קשיא איז אויב מיר 'ד געשריבן 9 אויס ווי N-איך-N-E וואָלט מיר האָבן גאַטאַן 99 אָדער 90? מיר 'ד באַקומען 90. עס ס ממש נאָר קוקן פֿאַר ציפֿער אותיות. עס ס נישט קלוג גענוג צו דערקענען נומער ווערטער און וואָס שטאָפּן. יא. [תּלמיד] איז דאָרט אַזאַ אַ זאַך ווי טייפּקאַסטינג אין פפּ? עס איז, און עס ס 'פּונקט דער וועג איר וואָלט טאָן עס אין סי וואָס וועגן 10/7, שאַרלאַט? [שאַרלאַט] 1.4285. [נאַטע ה] יאָ, אַזוי וואָס זאל זייַן חידוש וועגן דעם? וואָס וואָלט פּאַסירן אויב איר האט דאָס זעלבע סאָרט פון זאַך אין C, אויב איר האט 10/7 אין C? [שאַרלאַט] עס וואָלט בלויז געבן איר-דיפּענדינג אויף ווי איר טיפּעקאַסטעד איך טרעפן עס וואָלט געבן איר בלויז אַ לימיטעד נומער פון דידזשאַץ נאָך די דעצימאַל. יאָ, אַזוי אַ לימיטעד נומער פון דידזשאַץ נאָך די דעצימאַל. וואָס אַנדערש זאל זייַן-וואָלט עס געבן איר קיין דידזשאַץ נאָך די דעצימאַל? אָפֿט נישט, אַזוי ווידער, דיפּענדינג אויף ווי איר ניטאָ טייפּקאַסטינג עס עס זאל אָדער זאל נישט בייַטן עס צו אַ פלאָוטינג פונט נומער. דאָ עס איז געווען מין פון פייַן אַז עס האט. האט מיר געוויזן איר דאָס צוריק ווען מיר אנגעהויבן טאן דעם מין פון שטאָפּן אין C עס מיסטאָמע וואָלט האָבן געמאכט אַ ביסל מער זינען אַז עס טוט נישט נאָר גיין צו 1. און דעמאָלט לעסאָף, דזשאַמיע, וואָס וועגן 7 + אמת? [דזשאַמיע] 8. >> 8. וואָס טוט וואָס מיינען? איך טרעפן עס נאָר גיט אמת די ווערט פון 1. יאָ. וואָס כאַפּאַנז אויב מיר טוישן וואָס צו פאַלש? [תּלמיד] 7. יאָ, אַזוי געדענקען ווו מיר רעדן וועגן די ביינערי וואַלועס, 1 זייַענדיק אויף, 0 זייַענדיק אַוועק? איצט מיר האָבן אמת איז 1, 0 איז פאַלש, און איר זאל נישט האָבן געזען דעם אין די C ביישפילן וואָס מיר ווע געטאן דעם פאַרגאַנגענהייַט זמאַן, אָבער כיסטאָריקלי די באָאָל טיפּ אין C האט נישט געווען אַ פאַקטיש טיפּ, אַזוי מענטשן האָבן געניצט 0 און 1 אין דעם אָרט פון אמת און פאַלש. דאס איז אַ מאַניפעסטאַטיאָן פון וואָס. אָוקיי, אַזוי די איין וויכטיק טייל וועגן אַלע דעם איז אַז מיר האָבן די פאַרשידענע טייפּס. זיי קענען ינטעראַקט מיט יעדער אנדערע. זיי קענען אָפֿט ינטעראַקט מיט יעדער אנדערע אין וועגן וואָס זענען פייַן, ווי מיר ווע געזען דאָ. עס ס פייַן צו זייַן ביכולת צו האָבן שטריקל 1 און דער נומער 2, לייגן זיי צוזאַמען און באַקומען 3. וואָס מאכט זינען. אבער, ווען איר ניטאָ שרייבן וועבסיטעס, און ספּעציעל ווען איר ניטאָ פּראַסעסינג באַניצער אַרייַנשרייַב, אַזוי זאָגן איר ווע געשריבן אַ וועב פאָרעם אַז קאַלעקץ אינפֿאָרמאַציע פון ​​דעם באַניצער און דעמאָלט גייט צו פּראָצעס עס אויף די צוריק סוף, אויף די סערווער זייַט אין דיין פפּ קאָד אויב איר ניטאָ יקספּעקטינג וואָס ווערט אַז דער באַניצער טייפּט אין און דערלאנגט צו דיין פאָרעם צו זייַן אַ ינטעגער אָדער צו זייַן אַ פלאָוטינג פונט נומער אָדער עפּעס ווי אַז איר דאַרפֿן צו בפירוש וואַרפן עס און דעמאָלט טאָן עטלעכע טיפּ קאָנטראָלירונג. איר טאָן נישט וועלן צו נאָר פאַרלאָזנ אויף דעם טיפּ דזשאַגאַלינג סיסטעם צו מאַכן זאכן אַרבעטן אויס, ספּעציעל פֿאַר זיכערהייַט סיבות און נאָר פֿאַר די ראָובאַסטנאַס פון דיין וועבזייַטל. נאָר עפּעס צו האַלטן אין גייַסט אַז ווען איר ניטאָ האַנדלינג פאָרעם דאַטע, עפּעס וואָס קומט אין די פּאָסטן אָדער דער באַקומען סופּערגלאָבאַלס מאַכן זיכער אַז איר שטענדיק וואַלאַדייט עס און בייַטן עס און טייפּקאַסט עס. און פּונקט ווי מיר האבן גערעדט וועגן אַ מאָמענט צוריק אַז טייפּקאַסטינג אין פפּ איז פּונקט די זעלבע ווי אין C ווו איר האָבן די קלאַמערן און דעריבער די טיפּ. האַלטן אַז אין מיינונג. איין פֿונקציע וואָס וועט קומען אין האַנטיק ווען איר ניטאָ טאן דעם איז מיר ווע שוין ניצן-און דאָס איז מין פון ווי אַ באַזונדער- מיר ווע שוין ניצן דעם געטטיפּע פונקציאָנירן רעכט דאָ צו רעכענען אויס דער טיפּ פון אַ בייַטעוודיק, און בשעת דעם איז האַנטיק פֿאַר דיבאַגינג און צו זען וואָס אַ בייַטעוודיק ס טיפּ איז איר טאָן נישט וועלן צו נוצן דעם, פֿאַר בייַשפּיל, אין אַ צושטאַנד ווו איר ניטאָ קאָנטראָלירונג צו זען אויב געטטיפּע פון ​​$ וואַר = ינטעגער טאָן עפּעס. דאס איז שלעכט, שלעכט, שלעכט. אַנשטאָט עס זענען די פאַנגקשאַנז גערופן איז ינטעגער, איז שטריקל, איז מענגע אַז איר ווילן צו נוצן אַנשטאָט, אַזוי אין דעם פאַל וואָס איך וואָלט ווילן צו טאָן אַנשטאָט פון דעם באָכער רעכט דאָ איז נוצן די איז ינטעגער וואַר. און זיי ניטאָ אָפֿט ריפערד איז יס_ * אין די געפיל אַז איר קען פאַרבייַטן דעם * מיט ינטעגער, שטריקל, עט סעטעראַ, און נאָר צו מאַכן זיכער טאַקע שנעל איז דאָס איז ינט פפּ. קוקט ווי איר קענען טאָן אָדער איז ינט אָדער איז עס איז ינטעגער ווי גוט? יא, אַליאַס, אַזוי ינט ינטעגער ייליאַסיז. קיל. ווי זענען מיר טאן? זאל ס 'קלייַבן זיך די גאַנג אַ קליין ביסל. איצט מיר רע געגאנגען צו רעדן וועגן ערייז, אַזוי ווי איר קענען זען אין דער ווייַטער טייל פון די ספּעק מיר רעדן וועגן ווי ערייז אין פפּ ביסט אַ ביסל אַנדערש ווי זיי זענען אין סי אין אמת, זיי ניטאָ מין פון אַ אַמאַלגאַם פון די ערייז אַז איר ווע קומען צו וויסן און ליבע אין C ווו אַלץ איז פון די זעלבע טיפּ סטאָרד קאַנסעקיאַטיוולי און קאָנטיגואָוסלי אין זכּרון, און איר האָט די נומעריק ינדיסעס. איר האָבן אינדעקס 0, אינדעקס 1, אינדעקס 2, און איר קראָם וואַלועס בייַ יענע ינדיסעס. איר אויך אין C, ווען איר געשריבן ספּעללער, אַ פּלאַץ פון איר האט דער האַש טיש צוגאַנג, און איר געזען אַז עס מיר האט אַ פאַרשידענע סאָרט פון סטאָרידזש ווו מיר זענען מאַפּינג אַ שליסל צו אַ ווערט, אַזוי ווען איר געפרוווט צו קראָם עפּעס אין האַש טיש איר האט צו ספּעציפיצירן אַז איר געוואלט צו קראָם עס מיט אַ ספּעציפיש שליסל, און אַז שליסל באשלאסן דעם אָרט פון די ווערט און ווו עס וואָלט זייַן סטאָרד. איר ווע מין פון גאַט ביידע פון ​​יענע קאַנסעפּס געשעעניש אין דער זעלביקער צייַט אין אַ פפּ מענגע, און ווי אַ רעזולטאַט, מיר אָפֿט רופן די אַססאָסיאַטיווע ערייז ווו מיר זענען אַסאָוסיייטינג אַ שליסל אין אַ ווערט. אין דעם ווייַטער טייל מיר רעדן וועגן אַ פּשוט פפּ מענגע ווו מיר האָבן קיז אַ, ב, און C, אַלע סטרינגס, מאַפּינג צו די ינטאַדזשערז 1, 2, און 3. און איר קענען האָבן שליסלען פון פאַרשידענע טייפּס. איר קענען האָבן עטלעכע קיז וואָס זענען סטרינגס, עטלעכע קיז וואָס זענען ינטאַדזשערז. איר קענען האָבן וואַלועס פון פאַרשידענע טייפּס. איר קענען האָבן אַ ווערט אַז ס אַ שטריקל, אַ ווערט אַז ס אַ ינטעגער, אַ ווערט אַז ס אַ כייפעץ אָדער אנדערן מענגע, פֿאַר בייַשפּיל, אַלע אין די זעלבע מענגע כייפעץ, וואָס איז מין פון טשודנע. איר טאָן ניט האָבן צו האָבן אַ מענגע אַז ס נאָר גאַט איינער טיפּ פון עלעמענט אין עס. איר קענען האָבן פילע פאַרשידענע זאכן געגאנגען אויף אין דאָרט. די אנדערע זאַך צו טאָן איז אַז ווען איר טאָן זען עפּעס ווי דעם אין דיין קאָד, וואָס איז גילטיק פפּ צו דערקלערן אַ מענגע פּונקט ווי דעם, 0, 1, 2, 3, 4, 5, וואָס וועט דערקלערן אַ ינישאַלייזד $ אַרר צו זייַן דעם מענגע. אבער וואָס איר ניטאָ פאקטיש געטינג אונטער די קאַפּטער איז דאָס מין פון ימפּליסאַט דור פון קיז ווו מיר ווע גאַט 0-0, 1-1, 2-2, 3-3. און עס טורנס אויס אַז אַפֿילו אויב איר טאָן האָבן אַ מענגע ווי דעם באָכער אַרויף דאָ ווו איר האָבן אַ, ב, און C ווי די שליסלען און דאַן איר אָנהייבן ניצן די מענגע שטופּן אופֿן צו אָנהייבן ניצן דעם מענגע ווי אַ אָנלייגן, אַזוי איר קענען זען אַז דאָס מענגע כייפעץ, דעם מענגע איז טאַקע שיין אָוווערלאָודיד. מיר קענען נוצן עס ווי אַ מענגע. מיר קענען נוצן עס ווי אַ האַש טיש. מיר קענען נוצן עס ווי אַ אָנלייגן. ווען איר אָנהייב פּושינג זאכן אַנטו דעם מענגע דער ערשטער זאַך איר שטופּן אַנטו דעם וועט זייַן אינדעקס 0 און דעמאָלט אינדעקס 1 און אינדעקס 2. איר קענען באַקומען דעם מין פון ימפּליסאַט דור פון קיז סייַדן איר ספּעציפיצירן זיי בפירוש. די וועג איר ספּעציפיצירן קיז בפירוש, פון קורס, איז דורך ניצן דעם קאַנטיקער נאָוטיישאַן, וואָס איז ענלעך צו ערייז חוץ אַנשטאָט פון בלויז אַלאַוינג ינטעגער ינדיסעס אין דאָ, איצט מיר לאָזן עפּעס. אויב איר ווילן דיין שליסל צו זייַן אַ שטריקל, איר 'ד ספּעציפיצירן עס ווי דעם. אויב איר ווילן עס צו זייַן אַ ינט, איר ספּעציפיצירן עס מיט דער ינט איר ווילן צו נוצן. שאלות אויף אַז אַזוי ווייַט? איינער פון די פייַן זאכן וועגן דעם געדאַנק איז אַז איר קענען נאָר אלץ האָבן איינער ווערט סטאָרד מיט אַ באַזונדער שליסל. אויב מיר גיין צוריק איבער צו אונדזער אַפּפּליאַנסע-לאָזן מיר אויסמעקן עטלעכע פון ​​דעם שטאָפּן. און לאָזן ס זאָגן איך ינישאַלייז אַ מענגע צו זייַן 0, 1, 2, געטאן. אויב איך איצט וויסן אַז, פֿאַר בייַשפּיל, אויב איך ווידערקאָל $ אַרר [0] איך בין געגאנגען צו באַקומען די ווערט 0 געדרוקט אויס, און זינט עס קענען נאָר אלץ זייַן איינער ווערט סטאָרד פֿאַר אַ באַזונדער שליסל אויב איך קראָם עפּעס בייַ $ אַרר [0], זאָגן אַ, דעמאָלט איך וויסן ווען איך ווידערקאָל $ אַרר [0] ווידער איך בין נישט געגאנגען צו באַקומען 0 געדרוקט אויס ווי פריער. איך בין נאָר געגאנגען צו באַקומען אַ. אַזוי דאָס איז בייסיקלי זאגן אַז איך קען נישט האָבן $ אַרר [0] סטאָרינג 2 פאַרשידענע וואַלועס. עס קענען נישט קראָם ביידע 0 און די שטריקל אַ, ווי דאָס ממש ריפּלייסיז וואָס איז געווען בייַ $ אַרר [0] פריער. די סיבה איך ברענגען דעם אַרויף איז לויפן עס, זען וואָס כאַפּאַנז. זע דאָ אַז איך גאַט 0 געדרוקט אויס און דעמאָלט אַ אַראָפּ דאָ. עס ס קיין נייַ שורה דאָרט ווייַל איך איז געווען פויל און האט ניט שטעלן אַז ין וואָס ס קיל וועגן דעם איז מיר קענען נוצן דעם ווי אַ וועג צו כאַפּן דעם געדאַנק פון אַ גאַנג ווו מיר קענען נישט האָבן קייפל קיז ין אַ מענגע. מיר קענען נישט האָבן יידעניקאַל קיז ין אַ מענגע. איך קען נישט האָבן שליסל 0 און ווערט 1 און שליסל 0 און ווערט אַ אָדער שליסל 0 און ווערט אמת. די שליסלען זענען אַלע-דאָרט ס בלויז 1 שליסל אין די מענגע. אפילו כאָטש איר קענען האָבן די זעלבע ווערט סטאָרד קייפל מאל אין די מענגע אונטער פאַרשידענע קיז עס ס ניט מעגלעך צו האָבן יידעניקאַל קיז קייפל מאל אין דיין פפּ מענגע. אויב מיר קוקן אין דעם ווייַטער פּראָבלעם, וניקווע.פפּ, ווו מיר ווילן צו עפענען זיך אַ פפּ טעקע מיט אַ רשימה פון סטרינגס, איינער שטריקל פּער שורה, און מיר ווילן צו געפֿינען אַלע פון ​​די יינציק סטרינגס אין אַז טעקע אַלע מיר האָבן צו טאָן איז נוצן איינער פון די פפּ ערייז און נוצן די סטרינגס אין דער טעקע ווי די שליסלען צו דעם מענגע און האַלטן אַפּדייטינג אונדזער מענגע ווי מיר קראָם די נייַ שליסלען. ווי מיר לייענען יעדער שורה אויס פון דער טעקע מיר קענען קראָם עס אין די מענגע, און אין די סוף מיר וועלן האָבן ווי אונדזער שליסלען אין אונדזער מענגע אַלע פון ​​די יינציק סטרינגס ין דער טעקע. טוט וואָס מאַכן זינען? זאל ס זען ווי דאָס אַרבעט. מיר רע געגאנגען צו עפענען זיך, לויט צו די ספּעק, אַ נייַ טעקע גערופן וניקווע.פפּ. עפענען. אָאָפּס, אנטשולדיגט, נייַ טעקע. מיר רע געגאנגען צו אָנהייבן עס אַוועק מיט דער זעלביקער אָנהייב און סוף טאַגס. מיר רע געגאנגען צו ראַטעווען עס אין אָפּטיילונג 9, און מיר רע געגאנגען צו רופן עס וניקווע.פפּ. אָוקיי, איצט פארגרעסער ין דער געדאַנק דאָ איז עפענען אַ טעקע, לייענען אין טעקע שורה ביי שורה. פֿאַר יעדער שורה אין טעקע מיר וועט האָבן אַ מענגע ווו מיר האָבן  די שורה ווי אונדזער שליסל. און דעריבער ווען מיר באַקומען צו דעם סוף דאָ $ אַרר ס קיז זענען די יינציק שורות פון דער טעקע זינט מיר וויסן אַז אויב איך שטעלן שורה אין דעם מענגע קייפל מאל עס וועט נאָר האַלטן אָוווערריידינג דער אַלט ווערט, און מיר קענען פאקטיש שטעלן מענגע שורה אין ווי זיך נאָר ווי אַז. דאס איז מין פון טשודנע. מיר רע סטאָרינג דער זעלביקער שליסל ווערט פּאָר איבער און איבער און איבער ווידער, אָבער זינט מיר זענען געראַנטיד אַז עס וועט זייַן בלויז 1 שליסל גערופן שורה אַזוי אויב מיר האָבן אַ טעקע וואָס זאגט-אַ טעקע פון ​​כייַע נויזיז און עס האט וווף, וווף, מיאַו, מיאַו, מוקען, מוקען, און יעדער מאָל מיר לייענען אַ כייַע ראַש אויס ווי וווף און מיר קראָם עס אין אונדזער מענגע מיר באַקומען וווף, און דאַן די רגע צייַט מיר קראָם וווף עס וועט אָווועררייט דער ערשטער מאָל וואָס מיר סטאָרד עס. אין די סוף מיר וועט נאָר האָבן איין פּאָזיציע אין די מענגע פֿאַר יעדער פון די כייַע נויזיז אין אונדזער כייַע נויזיז טעקע. צי איר גייז פילן זיכער אַז איר קענען מאַכנ די עפן פון אַ טעקע אין פפּ? איין וועג צו טאָן עס-לאָזן ס גיין איבער דעם געשווינד-איין וועג צו טאָן עס איז מיט פאָפּען, ווי מיר געזען פריער. איר קענען פאָפּען סאָמע_פילע.טקסט. איר קענען עפענען עס אין לייענען מאָדע, פּונקט ווי אין סי אַז ס איינער בישליימעס גוט וועג צו טאָן עס. איר אויך דעמאָלט פֿאַר לייענען אין דער טעקע שורה ביי שורה האָבן די זעלבע פאַנגקשאַנז, פילע פון ​​זיי, וואָס איר האט אין סי איר האָבן פגעץ. איר האָבן פעאָף, כאָטש מיר טאָן ניט ווי ניצן אַז ווייַל, געדענקען, וואָס איז ניט גרויס אין סי איר קענען טאָן עס די זעלבע וועג, אָבער דאָ איז אַ טאַקע קיל זאַך. אנטשולדיגט, איך טאָן נישט וועלן צו טאָן $ טעקע, אָבער עס איז אַ פֿונקציע גערופן טעקע אין פפּ, און דאָס פונקציאָנירן רעכט דאָ איז קיל ווייַל עס לייענט די גאנצע אינהאַלט פון דער טעקע אַז איר ספּעציפיצירן, אַזוי סאָמע_פילע.טקסט, לייענט די גאנצע אינהאַלט פון דעם טעקע אין אַ מענגע און דעמאָלט לעץ איר יטעראַטע איבער אים, וואָס איז שיין ניפטי. אויב מיר גיין, פֿאַר בייַשפּיל, צו אונדזער וועב בלעטערער און מיר קוקן אין גוגל פֿאַר פפּ טעקע איר קענען זען דאָ אַז אונדזער מאַנואַל זאגט אַז טעקע לייענט גאנצע טעקע אין אַ מענגע, און מיר קענען פילע_געט_קאָנטענץ צו צוריקקומען די אינהאַלט פון אַ טעקע ווי אַ שטריקל, אָבער טיפּיקלי נאָר געטינג עס ווי אַ מענגע איז טאַקע פייַן ווייַל וואָס עס טוט איז עס ברייקס עס אַרויף אַזוי אַז יעדער עלעמענט אין די מענגע איז איין שורה פון דער טעקע, אַזוי אויב מיר קוקן אין טעקע 0, אַז ס דער ערשטער שורה פון דער טעקע. טעקע 1, רגע שורה, טעקע 2, דריט שורה, און אַזוי אויף און אַזוי אויף. וואָלט נישט עס זייַן פייַן אויב אַז איז אַלע איר האט צו טאָן אין C? שיין ניפטי. דוד געוויזן דעם אין לעקציע, און דער ידיאָם ער אנטפלעקט איז געווען אַז אין דערצו צו אונדזער סטאַנדאַרד פֿאַר שלייף-אין פפּ מיר געהאט אַז פֿאַר ($ איך = 0; איך <10; איך + +), און איר קענען טאָן דאָס אין פפּ אויך, זעלבע זאַך- מיר אויך האָבן דעם קילן בויען גערופן פאָרעאַטש. פאָרעאַטש איז טאַקע האַנטיק ווען יטעראַטינג איבער ערייז אָדער די דאַטן סטראַקטשערז ווייַל עס אַלאַוז איר צו ציען אויס יעדער עלעמענט פון דער מענגע אָן בעת ​​צו מאַניואַלי טאָן די ינדעקסינג זיך, אָן בעת ​​צו מאַניואַלי מאַכן אַן אינדעקס בייַטעוודיק, ינקראַמאַנט עס, ציען אויס די ווערט אין דער מענגע בייַ אַז פונט, ווייַל אַז ס אַ זייער פּראָסט זאַך צו טאָן. איר מיסטאָמע האָבן געטאן אַז טאָנס פון מאל ווען איר זענען טאן C שטאָפּן איבער די זמאַן, אַזוי מיט דעם פאָרעאַטש מיר קענען שלייף איבער דעם טעקע מענגע, און די סינטאַקס איז וואָס מיר ווילן צו איצט שלייף איבער דעם מענגע און ספּעציפיצירן אַז די בייַטעוודיק מיר רע געגאנגען צו נוצן צו קראָם דער עלעמענט פון דעם מענגע לאָוקאַלי, היגע צו דער פאַרנעם פון דעם פאָרעאַטש שלייף, איז מיר רע געגאנגען צו רופן עס שורה. אויב עס ס אַ טעקע פון ​​נאָר ווערטער, און דאָרט ס איין וואָרט אין אַ שורה מיר קען רופן עס וואָרט ווי געזונט, טאַקע נאָר איר געבן דעם אַ נאָמען, וועלכער איר ווילן צו רופן עס, און דעמאָלט ין די שלייף איר קענען טאָן וועלכער איר ווילן מיט דעם בייַטעוודיק שורה. אויב עס ס 'נישט גענוג צו באַקומען די ווערט פון די מענגע און איר אויך ווילן צו באַקומען די אינדעקס צוזאמען מיט אים איר קענען ספּעציפיצירן אַ נאָמען פֿאַר די אינדעקס ווי געזונט ווי די ווערט, און איצט איר האָבן צוטריט צו 2 וועריאַבאַלז. איר האָבן $ איך און שורה ווו $ איך איז דער אינדעקס אין די מענגע, און שורה איז די שורה וואָס איר ריטריווד פון דער טעקע. פֿאַר בייַשפּיל, אויב מיר געוואלט צו דרוקן אויס ווידערקאָל שורה 0 פון דער טעקע ווי דעם, מיר קען טאָן עס פּונקט ווי דעם, "ליניע $ איך פון דער טעקע איז $ שורה," און דאָ איז עפּעס מיר אויך האָבן נישט געזען נאָך אָדער ווו איך ווע נאָר טאָוטאַלי סקיפּט איבער דאָס גאנצע% s% די געשעפט אַז מיר האבן צו האַנדלען מיט אין C, און אַנשטאָט איך ווע ניטאָ גלייַך צו שרייבן די וועריאַבאַלז אין שורה אין מיין שטריקל. דאס איז גערופן בייַטעוודיק ינטערפּאָלאַטיאָן, שטריקל ינטערפּאָלאַטיאָן ווו איר ניטאָ סטאַפינג די וועריאַבאַלז רעכט אין, און דעם פפּ יבערזעצער איז קלוג גענוג ווען עס ס רעאַדינג דורך אַ שטריקל וואָס הייבט מיט טאָפּל קוואָטעס- ניט איין קוואָטעס, מיט איין ציטירטן סטרינגס איר קענען ניט טאָן דעם- אָבער מיט טאָפּל ציטירטן סטרינגס ווי עס לייענט דורך אים ס 'זוכט פֿאַר וועריאַבאַלז. עס ס גייעג זיי אַראָפּ, און אויב עס זעט וועריאַבאַלז עס וועט נעמען די ווערט פון די בייַטעוודיק און שטאָפּן עס אין די שטריקל אויב עס קענען בייַטן עס אין אַ שטריקל פאַרטרעטונג, וואָס איז שיין ניפטי. פֿאַר איצט, לאָזן ס באַמערקונג אויס די מנוחה פון אַלץ, ראַטעווען דעם, און וואָס מיר קענען טאָן איצט איז מיר קענען עפענען זיך אַ טעקע אַז מיר קענען רופן סאָמע_פילע.טקסט-לאָזן 'ס שאַפֿן אַ נייַ טעקע- און מיר קענען לייגן אין אַ בינטל פון ומזין שטאָפּן אין דאָ נאָר צו פּרובירן אַלץ אויס, היט עס, רופן עס סאָמע_פילע.טקסט, ווי איך בין טאן אַרויף דאָ אין די שפּיץ, און איצט אויב איך פארגרעסער אויס נאָר צו מאַכן זיכער אַלץ איז אין דער זעלביקער Directory- עס קוקט ווי איך האָבן וניקווע.פפּ און סאָמע_פילע.טקסט אין דער זעלביקער וועגווייַזער. אויב איך לויפן פפּ וניקווע.פפּ זען ווי עס פּרינץ אויס יעדער שורה אין מיין טעקע און וואָס די שורה איז? אַז ס 'שיין שטאַרק, רעכט? קוק, עס גענומען 3 שורות פון קאָד צו עפענען זיך אַ טעקע. נו, 4 שורות פון קאָד. איך קען נישט ציילן הייַנט, קלאר. אבער טאַקע נאָר 2 טשיקאַווע שורות פון קאָד, ווייַל די אנדערע 2 זענען די געגרייַזלט ברייסאַז, אָבער אין דעם פיל קאָד מיר זענען ביכולת צו עפענען אַ טעקע, יטעראַטע דורך אים, ציען אויס די שורה נומער און די שורה זיך און דרוקן עס אויס. קיל שטאָפּן. שאַרלאַט. [שאַרלאַט] איך האב אַ קשיא וועגן די סינטאַקס. אַזוי פאָרעאַטש דילז מיט יעדער איין שורה פון דער טעקע אַז איר עפענען, און דעריבער ווען איר ווילן צו טאָן זאכן מיט יעדער איין שורה איר נאָר טאָן עס ווי און דעמאָלט מיטאַרבעטער די ווערט. [נאַטע ה] וואָס איר קענען טאָן רעכט דאָ-די קשיא איז געווען די פאָרעאַטש האט צו טאָן מיט די מענגע, אַזוי די פאָרעאַטש סינטאַקס איז טאַקע פאָרעאַטש, און באַמערקן אַז דאָרט ס קיין פּלאַץ אָדער עפּעס צווישן די פֿאַר און דער יעדער. זיי האָבן צו גיין רעכט ווייַטער צו יעדער אַנדערער, און דעמאָלט עס נעמט אין אַ מענגע, און דאַן איר האָבן דאָס אנדערע קיווערד גערופן ווי וואָס האט צו זייַן דאָרט, און דעמאָלט נאָך דעם ווי איר קענען אָדער שטעלן איין בייַטעוודיק נאָמען, אין וואָס פאַל איר ניטאָ געגאנגען צו זייַן פּולינג אויס די וואַלועס פון די מענגע, נישט די ינדיסעס, אָדער אויב איר טאָן עס ווי מיר ווע געשריבן ווייטער איר באַקומען די שליסלען און די וואַלועס. איר האָבן פאָרעאַטש עלעמענט פון דער מענגע אָדער פּאָר פון די מענגע ווי קיד צו ווערט אָדער ווי נאָר ווערט. דיפּענדינג אויף וואָס איר דאַרפֿן, אויב איר טאָן ניט דאַרפֿן די קיז, דעמאָלט איר קענען גיין מיט דעם ווערט. אויב איר ווילן די שליסלען איר קענען גיין מיט זיי אויך. [שאַרלאַט] איך אויך איינגעזען מיר קיינמאָל דערקלערט די איך אָדער שורה. ווי טוט עס אַפֿילו וויסן וואָס זיי זענען? [נאַטע ה] וואָס טאָן איר מיינען דורך דערקלערן? [שאַרלאַט] מיר קיינמאָל דערציילט זיי וואָס איך אָדער שורה מיטל. [נאַטע ה] מיר קיינמאָל דערציילט די קאָמפּיוטער וואָס איך אָדער שורה מיטל אין טערמינען פון- [שאַרלאַט] אַז זיי ניטאָ ינדעקסט אָדער אַז דער- [נאַטע ה] מיר קיינמאָל דערציילט אים אַז דאָס איז געמיינט צו זייַן די אינדעקס אָדער דער שליסל און די ווערט, און אַז ס ווייַל אַז ס די פפּ יבערזעצער. דאס באדינט ווי די דערקלערונג און זאגט אָוקיי, דער שליסל איז געגאנגען צו זייַן אַ בייַטעוודיק גערופן איך סטאָרד אין אַ בייַטעוודיק גערופן איך. די ווערט איז געגאנגען צו זייַן סטאָרד אין אַ בייַטעוודיק גערופן שורה, אַזוי דעם באדינט ווי דער דערקלערונג פון די וועריאַבאַלז און זאגט $ איך איז אַ שליסל, און $ שורה איז אַ ווערט. יאָ, עלאַ. [עלאַ] אויב די שליסלען זענען נישט געטאן נומעריקלי ווי טוט עס באַשליסן וואָס סדר עס ס געגאנגען צו דרוקן אַלץ? איז עס פּונקט ווי דער סדר עס ס אריין אין? [נאַטע ה] זאל 'ס געבן עס אַ פּרובירן. זאל ס שאַפֿן אַ בייַטעוודיק גערופן אַרר, און מיר קענען טאָן אַ גייט צו 7. זאל ס זאָגן 0 גייט צו אן אנדער מענגע מיט 1, 2, אָדער עפּל. זאל ס זאָגן 7 גייט צו 1, ב גייט צו 2, און 3 גייט צו 4. דאס איז מין פון אַ משוגע קוקן בייַשפּיל ווייַל מיר רע מיקסינג אַרויף סטרינגס און ינטאַדזשערז אַלע איבער דעם אָרט. עס ס קיין פאַקטיש סדר צו דעם מענגע. איך מיינען, מיר קען סדר אַלץ אין אַלפאַבעטיקאַל סדר דורך די שליסלען. מיר קען סדר אַלץ אַלפאַבעטיקלי דורך דעם ווערט. מיר קען פּרובירן און נעמען אין חשבון אַז עטלעכע זענען סטרינגס, עטלעכע זענען ינץ, און מיר קען פּרובירן און בייַטן זיי אַלע צו דער זעלביקער טיפּ און זען וואָס כאַפּאַנז, אָדער מיר קען באַטראַכטן זיי אין די ווערט אין וואָס מיר שוין אריין זיי ווו מיר שטעלן דעם באָכער אין ערשטער, דעם באָכער אין רגע, דעם באָכער אין דריט, דעם באָכער אין פערט, עט סעטעראַ. זאל ס זען וואָס כאַפּאַנז ווען מיר לויפן דעם קאָד. אויב מיר מעגילע אַראָפּ און טאָן די זעלבע סאָרט פון זאַך, און דאָ עס ס ניט דרוקן אויס די נייַ שורות. ווען עס לייענען דאס אויס פון דער טעקע עס איז געווען אַרייַנגערעכנט די נייַ שורות אין דער וואַלועס, וואָס איז וואָס עס געדרוקט אויס נייסלי, וועראַז דאָ עס האט ניט, אַזוי אַז ס וואָס אַלץ איז סמושעד צוזאַמען. זאל ס לייגן אין אַז נייַ שורה נאָר צו מאַכן זאכן פייַן. זאל ס ריראַן עס, און אַזוי דאָ קוק אין וואָס געטראפן. עס געדרוקט אַלץ אויס אין דעם סדר אין וואָס מיר שטעלן עס אין די מענגע. עס טוט ופהיטן סדר אין וואָס זינען. געגאנגען צוריק צו דעם פּראָבלעם פון וניקוועס ווו מיר ווילן צו זייַן ביכולת צו יטעראַטע איבער אַ טעקע, און מיר וועט געבן עס סאָמע_פילע.טקסט, און מיר רע געגאנגען צו יטעראַטע איבער אים ווי דעם. מיר געזאגט אַז מיר געוואלט צו נוצן אַ מענגע צו מאַכן זיכער אַז מיר 'ד גאַט אַלע פון ​​די יינציק שורות אויס פון דאָרט, און מיר קען טאָן אַז טאַקע לייכט דורך נאָר סטאָרינג אין אַ מענגע אַז מיר פון קורס דערקלערן אַרויס דעם פאַרנעם פון אַ שלייף, און מיר געזאגט אַז אויב מיר געניצט די שורות אין דער טעקע ווי די שליסלען אין אונדזער מענגע אויב מיר אריין אַ דופּליקאַט שורה מיר 'ד ווערן אָוווערריידינג די פֿריִערדיקע ווערט. עס ס ניט אלץ מעגלעך צו האָבן 2 קיז וואָס זענען יידעניקאַל אין דער זעלביקער מענגע. מיר קענען טאָן נאָר וואָס. מיר וועט באַקומען באַפרייַען פון דעם ווידערקאָל סטאַטעמענט רעכט דאָ. דאָ מיר רע סטאָרינג די שורה אין די טעקע אין אונדזער מענגע ניצן זיך ווי דער שליסל. גאָרנישט צו עס, און עס טורנס אויס אַז מיר טאָן ניט אַפֿילו דאַרפֿן דעם שליסל. מיר טאָן ניט דאַרפֿן אַז איך בייַטעוודיק. אין דעם פונט אויב מיר האבן צו טאָן אן אנדער פאָרעאַטש שלייף און מיר האבן צו שלייף איבער יעדער אַרר און שורה איצט אויב מיר ווידערקאָל-אָאָפּס, אנטשולדיגט. מיר קענען ניט נוצן די קאָמע. מיר האָבן צו נוצן דעם ווי קיווערד. איצט אויב מיר ווידערקאָל שורה מיר זאָל באַקומען אַלע פון ​​די יינציק ווערטער אין דער טעקע. אויב מיר גיין אַרויף צו סאָמע_פילע.טקסט, און לאָזן ס זאָגן מיר טאָן עפּל, באַנאַנע, עפּל, עפּל, באַנאַנע, אויב מיר רע דרוקן אויס אַלע פון ​​די יינציק ווערטער אין דעם טעקע מיר זאָל נאָר באַקומען עפּל און באַנאַנע צו דרוקן אויס. אויב מיר ראַטעווען דעם, איצט דאָ מיר וועט פארגרעסער צוריק אין, פפּ וניקווע.פפּ, און דעם-דאַ. מיר ווע הצלחה וניקוועד דער טעקע. די לעצט טייל פון דעם פּראָבלעם איז אַסקינג איר צו סאָרט דעם מענגע איידער איר געדרוקט עס אויס ווייַל אין דעם פּשוט בייַשפּיל וואָס מיר ווע נאָר געטאן מיר זענען מאַזלדיק אין די געפיל אַז דער טעקע- מיר האט דעם קאַנטרייווד בייַשפּיל מיט apples און bananas. עס איז שוין אויסגעשטעלט. אבער ניצן די פּשוט סאָרט פֿונקציע איר קענען סאָרט אַ מענגע, וואָס איז שיין ניפטי. די לעצט זאַך איך געוואלט צו רעדן מיט איר גייז וועגן טאַקע געשווינד איז אַז דעם מין פון פפּ איז אַלע געזונט און גוט, און עס ס 'סופּער האַנטיק צו וויסן ווי צו טאָן אויב איר אלץ דאַרפֿן צו טאָן קליין, שנעל זאכן פּראָגראַממאַטיקאַללי. פֿאַר בייַשפּיל, אויב איך דאַרפֿן צו שרייַבן אַ פּראָגראַם וואָס, זאָגן, לייגט יעדער יינער אין סעקשאַנז איך בין נישט געגאנגען צו גיין און שרייַבן עס אין סי עס ס געגאנגען צו זייַן לאַנג. עס ס געגאנגען צו זייַן מין פון אַ ווייטיק, ספּעציעל אויב עס זענען טעקעס ינוואַלווד, פּונקט ווי איר גייז האָבן געזען. עס ס אַזוי פייַן אַז מיט נאָר דעם פיל קאָד רעכט דאָ מיר זענען ביכולת צו טרענען דורך אַ טעקע, ציען אויס אַלע די יינציק וואַלועס און פאַרקויפט זיי צוריק אויס. אבער, פֿאַר דיין אַסיינמאַנץ, פֿאַר דיין פראיעקטן, אויב איר ניטאָ בנין וועבסיטעס מיט פפּ די מאַכט איז אַז מיר רע פליסנדיק אונדזער פפּ טעקעס דורך דעם יבערזעצער, און די יבערזעצער איז פּראַסעסינג אַלץ ין די פפּ טאַגס, געלאזן אַלץ אַנדערש אַנטאַטשט און ספּיטינג אויס די רעזולטאַטן. מיר קענען טאָן דעם צו בויען HTML פּראָגראַממאַטיקאַללי. איצט, אויב מיר גיין צוריק צו דער ספּעק, די לעצטע פּראָבלעם אין די ספּעק רעדט וועגן דעם געדאַנק פון קאַנסאַנטריישאַנז און שאפן אַ קאַפּ-אַראָפּ מעניו, וואָס איר זאל אָדער זאל נישט וועלן צו טאָן, דיפּענדינג אויף וואָס דיין לעצט פּרויעקט איז טאן, אַז אַלאַוז די באַניצער צו אויסקלייַבן פון אַ רשימה פון אַלע מעגלעך קאַנסאַנטריישאַנז זייער איין קאַנסאַנטריישאַן. איצט, דאָס איז מין פון אַ ווייטיק צו דרוקן דעם אויס און האָבן צו טאָן אַלע דעם מאַניואַלי, ספּעציעל ווען איר ניטאָ ווייל צו מאַכן זיכער אַז איר האָבן אַלע די ווינקל בראַקאַץ אין די רעכט אָרט און אַלע די ציטירט אין די רעכט אָרט, אַזוי מיט פפּ איר קענען טאָן דעם פּראָגראַממאַטיקאַללי, און איר קענען טאָן דעם טאַקע געשווינד. זאל ס זען ווי צו טאָן דעם. מיר רע געגאנגען צו עפענען זיך אַ נייַ טעקע. מיר רע געגאנגען צו שטעלן אין אונדזער פפּ טאַגס. מיר רע געגאנגען צו רופן עס קאָנסענטראַטיאָנס.פפּ, און איצט ווען איר ניטאָ טאן דעם, מין פון אַ גוט זאַך צו טראַכטן וועגן ווען איר ניטאָ טריינג צו מישן און גלייַכן אייער פפּ און דיין HTML איז פיגיערינג אויס, אָוקיי, וואָס איז דער טייל וואָס איך ווילן צו פּראָגראַממאַטיקאַללי דזשענערייט? וואָס איז דער טייל וואָס איך קענען פּראָגראַממאַטיקאַללי דזשענערייט? עס ס אמת אַז איר קענען טאָן אַלע פון ​​דיין HTML ין פון פפּ בלאַקס. איר קענען ווידערקאָל אַלע פון ​​דעם HTML ווי סטרינגס. פֿאַר בייַשפּיל, אויב איך ווילן צו אָנהייבן טאן די אויסקלייַבן טאַגס ין פון פפּ איך קענען זאָגן ווידערקאָל, זאָגן אויסקלייַבן נאָמען = קאַנסאַנטריישאַן, און דעמאָלט אַראָפּ אונטן איך קען האָבן אן אנדער ווידערקאָל קוויטל אָדער אנדערן ווידערקאָל גערופן נאָענט די אויסקלייַבן. דאס איז איין וועג צו טאָן עס ווייַל וואָס דאָס איז ממש געגאנגען צו טאָן איז דרוקן אויס דעם שטריקל ווען עס ס 'לויפן דורך די פפּ יבערזעצער, אַזוי דער רעזולטאַט וועט זייַן HTML. אויב איך ראַטעווען דעם טעקע ווי עס איז רעכט איצט און איך לויפן פפּ קאָנסענטראַטיאָנס.פפּ קוק אין וואָס איך גאַט. איך גאַט דעם עפענען נאָענט אויסקלייַבן קוויטל. אויב איך האבן צו טאָן דאָס און איך זענען געווען צו ראַטעווען דעם רעזולטאַט צו אַ טעקע, זאָגן, קאָנסענטראַטיאָנס.הטמל-וואַרטן, עס קוקט ווי דער ל האט ניטאָ איבער צו די אנדערע זייַט- איצט אויב איך עפענען אַרויף דאָ קאָנסענטראַטיאָנס.הטמל איר זען איך האָבן אַ גילטיק HTML טעקע. איז אַז מין פון טשודנע? מיר רע ניצן פפּ צו שאַפֿן HTML, שאַפֿן גילטיק HTML. די וועג מיר רע טאן עס איז מיר רע נאָר ווייל די פפּ דרוק די HTML וואָס מיר ווילן עס צו דרוקן. דאס איז ממש ווי פפּ וועבסיטעס זענען ארבעטן. ווען איר באַזוכן אַ וועבזייַטל וואָס סענדז איר צו עפּעס ווי עפּעס, עפּעס, עפּעס פּינטעלע קאַם צעהאַקן ינדעקס.פפּ דער קאָמפּיוטער איז ממש פאַך אַרויף ינדעקס.פפּ, פליסנדיק עס דורך די פפּ יבערזעצער, און וועלכער אָפּפאַל קומט אויס עס ס שיקט צוריק צו דער בלעטערער און געזאגט היי, בלעטערער, ​​טייַטשן דעם ווי HTML. די פייַן זאַך איז אַז עס קען זייַן אַ ווייטיק צו קעסיידער שרייַבן ווידערקאָל, ווידערקאָל, ווידערקאָל, ווידערקאָל און ינקלאָוז אַלץ אין קוואָטעס ווי דעם, אַזוי אויב איר ווילן צו שרייַבן די HTML אַז ס געגאנגען צו זייַן סטאַטיק זיך איר קענען טאָן עס ווי דעם, שטעלן עס אַרויס, נאָענט עס, און דעריבער דאָ איר בלויז שטעלן ין די פפּ טאַגס אַז וואָס איר וויסן איר ווילן צו פּראָגראַממאַטיקאַללי דזשענערייט, און אין דעם פאַל עס ס יענע אָפּציע Tags אַז ביסט אַ ווייטיק צו דזשענערייט. פֿאַר בייַשפּיל, מיר קען דזשענערייט אַ טויזנט אָפּציע Tags דורך טאן עפּעס ווי דעם, $ איך <1000, איך + + און געזאגט ווידערקאָל אָפּציע ווערט = $-ווופּס, איך קען נישט טאָן אַז. נו, לאָזן ס געבן עס אַ פּרובירן און זען וואָס כאַפּאַנז. $ איך און דעמאָלט געזאגט $ איך