דאַג לויד: ווי איר אָנהייב ארבעטן מיט פֿעיִקייטן,
אן אנדער זאַך איז געגאנגען צו ווערן טאַקע וויכטיק צו פֿאַרשטיין,
וואָס איז דער באַגריף פון בייַטעוודיק פאַרנעם.
אַזוי פאַרנעם איז אַ כאראקטעריסטיש אַ בייַטעוודיק
אַז דעפינעס פון וואָס פֿעיִקייטן אַז בייַטעוודיק קענען זיין אַקסעסט.
>> עס זענען צוויי ערשטיק סקאָפּעס אין C, היגע וועריאַבאַלז און גלאבאלע וועריאַבאַלז.
איצט, היגע וועריאַבאַלז קענען בלויז זיין אַקסעסט ין די פֿעיִקייטן
אין וואָס זיי ניטאָ Created.
זיי קענען ניט זיין אַקסעסט דורך יעדער אנדערער פֿונקציע אַז יגזיסץ אין דיין פּראָגראַם,
בלויז די פֿונקציע אין וואָס עס איז געווען Created.
גלאבאלע וועריאַבאַלז, אויף די אנדערע האַנט, קענען זיין אַקסעסט
דורך קיין פֿונקציע אין דער פּראָגראַם.
און די סיבה פֿאַר וואָס איז ווייַל זיי ניטאָ ניט Created ין
פון קיין באַזונדער פֿונקציע.
מיר דערקלערן זיי אַרויס פון אַלע פון ​​די פֿעיִקייטן, וואָס
מיטל אַז יעדער פֿונקציע ווייסט ווו עס איז און קענען צוטריט און מאַניפּולירן עס.
>> אַזוי ווייַט אין די לויף איר ווע שיין פיל שוין ארבעטן אויסשליסלעך
מיט היגע וועריאַבאַלז.
דאָ ס אַ בייַשפּיל פון אַ זייער, זייער פּשוט הויפּט פֿונקציע און אַ זייער פּשוט
נאָך פֿונקציע אַז מיר ווע געשריבן.
אין דעם פאַל, רענטגענ, וואָס איך'ווע בונט גרין פּונקט
צו הויכפּונקט די געגנט אָדער די פאַרנעם פון וואָס בייַטעוודיק,
איז היגע צו די פֿונקציע דרייַיק.
הויפּט קענען ניט אָפּשיקן צו רענטגענ אין אַלע.
עס טוט ניט וויסן וואָס עס איז.
קיין אנדערע פֿונקציע, אין פאַקט, אויב מיר האט נאָך פֿעיִקייטן אין דאָ,
קען אָפּשיקן צו רענטגענ.
>> סימילאַרלי, רעזולטאַטן וואָס איך ווע בונט בלוי, איז היגע בלויז צו הויפּט.
בלויז הויפּט ווייסט וואָס די בייַטעוודיק רעזולטאַט איז.
דרייַיק קענען ניט נוצן עס.
>> איצט ווי איך דערמאנט, גלאבאלע וועריאַבאַלז טאָן עקסיסטירן.
אויב איר דערקלערן אַז בייַטעוודיק אַרויס פון קיין פֿונקציע,
אַלע פון ​​די פֿעיִקייטן אין דער פּראָגראַם קענען אָפּשיקן צו עס.
אַזוי אין דעם פאַל איך ווע כיילייטיד אין גרין אַ גלאבאלע בייַטעוודיק דעקלאַראַציע.
אין דעם פאַל, די בייַטעוודיק ווייל דערקלערט
איז גערופֿן גלאבאלע, נאָר צו זיין גאָר קלאָר וועגן עס.
עס איז פון טיפּ לאָזנ שווימען.
און איך באַשטימען עס די ווערט 0.5050.
>> איר וועט באַמערקן אַז אין הויפּט און אין דרייַיק, איך בין קענען צו אָפּשיקן צו גלאבאלע.
און אין פאַקט, אויב איך גיין דורך די פּראָגראַם ווי אנגעוויזן, הויפּט ערשטער קאַללס דרייַיק,
דרייַיק מאַלטאַפּלייז גלאבאלע דורך 3, וואָס שטעלט זייַן ווערט צו 1.5-עפּעס,
1.51 אָדער עפּעס ווי אַז, און דעמאָלט הויפּט אויך פּרינץ אויס די ווערט
פון גלאבאלע.
אזוי הויפּט וועט ניט דרוקן אויס 0.5050, עס וועט דרוקן אויס גלאבאלע מאל 3, 1.51.
אַזוי איר ווע גאַט צו זיין אָפּגעהיט ווען איר ניטאָ ארבעטן מיט גלאבאלע וועריאַבאַלז.
בשעת זיי ניטאָ זייער Flexible אין ווייל קענען צו פאָרן אינפֿאָרמאַציע
אַרום אַזוי אַז יעדער פֿונקציע קענען נוצן עס,
עס אויך קענען האָבן עטלעכע געפערלעך קאַנסאַקווענסאַז
אויב איין פֿונקציע ענדערונגען די ווערט פון אַ בייַטעוודיק
איידער איר דערוואַרטן עס צו זיין געביטן.
>> וואָס טוט דעם דיסטינגקשאַן ענין?
וואָס טאָן מיר זאָרגן צי עטלעכע וועריאַבאַלז זענען היגע און אנדערע זענען גלאבאלע?
נו, פֿאַר די רובֿ טייל, היגע וועריאַבאַלז אין C זענט וואָס ס גערופֿן דורכגעגאנגען דורך ווערט
ווען מיר מאַכן אַ פֿונקציע רופן.
וואָס טוט אַז מיינען?
>> נו, ווען אַ בייַטעוודיק איז דורכגעגאנגען דורך ווערט, די קאַללעע, וואָס
איז אן אנדער וועג פון זאגן די פֿונקציע אַז איז ריסיווינג די בייַטעוודיק אַז
געץ דורכגעגאנגען אין ווי אַ ינפּוט, עס אַקשלי טוט נישט באַקומען אַז בייַטעוודיק זיך.
עס נעמט זייַן אייגן קאָפּיע פון ​​עס צו אַרבעטן מיט.
דאס איז אַ טאַקע וויכטיק דיסטינגקשאַן.
מיר נאָר געזען אַ רגע צוריק אַז מיט גלאבאלע וועריאַבאַלז,
אויב מיר מאַניפּולירן די גלאבאלע בייַטעוודיק אין איין פֿונקציע, די ווירקונג
אין אַז איין פֿונקציע קאַריז דורך צו יעדער אנדערע פֿונקציע.
>> אבער מיט היגע וועריאַבאַלז, אַז ס ניט אמת.
יעדער פֿונקציע ווען עס נעמט וועריאַבאַלז ווי ינפּוט
באַקומען קאָפּיעס פון די וועריאַבאַלז, נישט די וועריאַבאַלז זיך.
אזוי וואָס איז די זייַט ווירקונג פון וואָס?
אַז מיטל אַז די בייַטעוודיק אין די קאָלער, די פֿונקציע אַז
איז געמאכט די פֿונקציע רופן, איז אַנטשיינדזשד סייַדן איר אָווועררייד עס.
>> לעמאָשל, אין דעם קאָד FOO איז ניט געביטן אין אַלע.
ינט FOO יקוואַלז 4, רופן דרייַיק פון FOO, ין פון דרייַיק,
מיר וואָלט דערוואַרטן אַז FOO וואָלט זיין געמערט דורך 3 און אומגעקערט,
אָבער עס ס אַקטשאַוואַלי קיין ווירקונג.
>> דאָ כאָטש, אַ זייער סאַטאַל חילוק.
דעם טוט האָבן די ווירקונג מיר ווילן.
צי איר זען וואָס?
מיר 'רע אָוווערריידינג FOO אין הויפּט דעם מאָל.
>> אַזוי ינט FOO יקוואַלז 4, FOO יקוואַלז דרייַיק FOO, ווען מיר מאַכן אַז רופן,
דרייַיק געץ זייַן אייגן קאָפּיע פון FOO, זייַן אייגן קאָפּיע פון ​​4.
עס זאגט צוריקקומען 4 מאל 3, אָדער וועלכער בייַטעוודיק געץ דורכגעגאנגען אין מאל 3.
און דעמאָלט מיר באַשטימען די צוריקקומען ווערט פון דרייַיק צו FOO ווידער.
אזוי דעם אַקטשאַוואַלי וואָלט אָווועררייט FOO.
דאס איז דער בלויז וועג צו טאָן דעם מיט היגע בייַטעוודיק.
אַזוי איצט אויב מיר לייגן אנדערן שורה פון קאָד דאָ
אין די סוף פון הויפּט צו דרוקן אויס די ווערט פון FOO,
עס וואָלט אין פאַקט דרוקן אויס 12.
>> וואַריאַבלע פאַרנעם איז בכלל ניט צו פיל פון אַ פּראָבלעם
אויב איר נאָמען אַלע פון ​​דיין וועריאַבאַלז פאַרשידענע זאכן.
אבער עס קענען באַקומען מין פון פּאַסקודנע אויב דער זעלביקער בייַטעוודיק נאָמען
אויס אין קייפל פֿעיִקייטן, וואָס וועט פּאַסירן אַ פּלאַץ.
אויב איר אלץ טאָן אַרבעט אין דער עמעס וועלט ווו
איר זענט ארבעטן אויף קאַלאַבערייטיוו מגילה און מענטשן אין פאַרשידענע טימז
זענען ארבעטן צוזאַמען צו שרייַבן די זעלבע פּראָגראַם אָדער די זעלבע סכום פון מגילה,
זיי וועט אָפט רייוז בייַטעוודיק נעמען, דער הויפּט פּראָסט אָנעס
ווי רענטגענ, י, איך, דזש, און אַזוי אויף.
>> אבער ווען וועריאַבאַלז האָבן דער זעלביקער נאָמען, פאַרנעם ישוז
קענען באַקומען אַ ביסל טריקיער צו פּאַרס.
לעמאָשל, טאָן איר וויסן וואָס וואָלט זיין געדרוקט אויס
אין די סוף פון דעם באַזונדער פּראָגראַם?
נעמען אַ מינוט.
פּאָז די ווידעא און לייענען דורך דעם פּראָגראַם.
איר קענען זען אין די שפּיץ מיר האָבן אַ פֿונקציע דעקלאַראַציע
פֿאַר אַ פֿונקציע גערופֿן ינקראַמאַנט.
אַז פֿונקציע נעמט אַ איין פּאַראַמעטער, אַ ינטאַדזשער וואָס מיר רופן רענטגענ.
און עס אַוטפּוץ אַ ינטאַדזשער.
אַז ס די צוריקקומען טיפּ אין די אָנהייב.
>> דעמאָלט מיר האָבן הויפּט, אַ פּאָר פון שורות פון קאָד אין הויפּט, די לעצט פון וואָס
איז אַ דרוק דערקלערונג.
און געדענקען, אַז ס די קשיא דאָ.
וואָס איז אַקטשאַוואַלי געגאנגען צו זיין געדרוקט אין די סוף פון דעם פֿונקציע?
און דעמאָלט מיר אַקטשאַוואַלי האָבן די דעפֿיניציע פון ​​ינקראַמאַנט אונטן.
>> אזוי נעמען אַ מינוט, שריט דורך די קאָד, שפּור דאס אויס.
צי איר וויסן וואָס וועט זיין געדרוקט אין דער סוף פון דעם באַזונדער פּראָגראַם?
>> אַלע רעכט.
אַלעווייַ, איר ווע גענומען אַ ביסל סעקונדעס צו פּרובירן און פּאַרס דעם איינער אויס.
זאל ס טאָן עס צוזאַמען.
>> אַזוי איך ווע קראָסט אויס ינקראַמאַנט ס דעקלאַראַציע אין די שפּיץ דאָרט.
עס איז געווען מין פון אַ דיסטראַקשאַן.
עס ס ניט זייַן אייגן בייַטעוודיק.
עס טוט נישט האָבן זייַן אייגן פאַרנעם.
עס ס נאָר אַ פֿונקציע דעקלאַראַציע, אַזוי פֿאַר צוועקן
פון טריינג צו פּאַרס אויס וואָס ס געשעעניש אין דעם פּראָגראַם,
מיר זאל ווי געזונט נאָר ויסמייַדן עס.
>> איצט מיר האָבן אין דעם פאַל, די סיבה דעם פּראָבלעם איז טריקי
איז ווייַל מיר האָבן היגע וועריאַבאַלז אין ביידע הויפּט און ינקראַמאַנט, יעדער פון וואָס
איז גערופֿן רענטגענ.
און פון קורס די קרוקס פון דעם אַרויסגעבן איז טריינג צו סאַס אויס וואָס רענטגענ געץ געביטן
און ווי טוט עס באַקומען געביטן.
אַזוי איך ווע בונט יעדער בייַשפּיל פון רענטגענ אַז ס היגע צו הויפּט רויט.
און איך ווע בונט יעדער בייַשפּיל פון רענטגענ אַז ס היגע צו ינקראַמאַנט בלוי.
>> באַמערקן אין אַז דריט שורה פון הויפּט, י יקוואַלז ינקראַמאַנט
רענטגענ, אַז ינקראַמאַנט איז נישט ווייל דורכגעגאנגען הויפּט ס רענטגענ, אָדער די רויט רענטגענ.
עס ס געטינג דורכגעגאנגען אַ קאָפּיע פון ​​עס.
און עס ס נאָר געגאנגען צו אַרבעטן מיט וואָס קאָפּיע פון ​​עס, די בלוי רענטגענ.
אויב איר 'רע מאַטאַמאַטיקלי גענייגט, איר זאל
האָבן אַנשטאָט געדאַנק פון דעם ווי רענטגענ סאַב עם פֿאַר הויפּט און רענטגענ סאַב איך פֿאַר ינקראַמאַנט.
אבער עס ס די זעלבע געדאַנק.
רענטגענ סאַב עם, אָדער די רויט רענטגענ ס אין די פֿריִערדיקע רוק,
זענען די וועריאַבאַלז אַז זענען לאָקאַל-- איז די בייַשפּיל פון רענטגענ אלא אַז
איז היגע צו הויפּט, און רענטגענ סאַב איך, אָדער די בלוי וועריאַבאַלז אין די פֿריִערדיקע רוק,
זענען די ינסטאַנסיז פון X אַז זענען היגע צו ינקראַמאַנט.
>> אַזוי, זענען איר קענען צו רעכענען אויס וואָס דעם פֿונקציע געדרוקט אין די סוף?
איך בין דאַג לויד, און דאָס איז קס50.