1 00:00:07,150 --> 00:00:08,850 [Powered by Google Translate] DAVID DICIURCIO: Allura kunċett importanti biex taqbadha fil 2 00:00:08,850 --> 00:00:11,010 programmazzjoni huwa l-kunċett ta 'ambitu. 3 00:00:11,010 --> 00:00:13,860 Kamp ta 'applikazzjoni jista' jiġi definit bħala l-kuntest li fih il-varjabbli huwa 4 00:00:13,860 --> 00:00:15,610 viżibbli jew aċċessibbli. 5 00:00:15,610 --> 00:00:18,150 Per eżempju, ejja ngħidu li għandna funzjoni, prinċipali, jiġifieri 6 00:00:18,150 --> 00:00:22,570 suppost inkrement varjabbli, x, minn sena sa tnejn. 7 00:00:22,570 --> 00:00:25,690 Kif nistgħu naraw, prinċipali initializes x għal wieħed, stampi 8 00:00:25,690 --> 00:00:28,740 out xi test, allura jibda l-inkrement funzjoni, qabel ma 9 00:00:28,740 --> 00:00:30,540 istampar test aktar. 10 00:00:30,540 --> 00:00:32,545 Jekk din il-funzjoni kellu jimxi sew, ikun 11 00:00:32,545 --> 00:00:34,120 jistampa x bħala 2. 12 00:00:34,120 --> 00:00:35,370 Ejja nippruvaw dan. 13 00:00:38,870 --> 00:00:43,075 >> Allura, kif tistgħu taraw, prinċipali ma tagħmel dak li aħna mistennija li. 14 00:00:43,075 --> 00:00:45,310 Hija lura l-valur 1, pjuttost 15 00:00:45,310 --> 00:00:47,150 milli l-2 konna qed nistennew. 16 00:00:47,150 --> 00:00:50,060 Ir-raġuni għal dan bug jista 'jiġi spjegat mill-ambitu. 17 00:00:50,060 --> 00:00:52,185 Fil-funzjoni, prinċipali, aħna initialized x 18 00:00:52,185 --> 00:00:53,820 biss fi ħdan il-funzjoni. 19 00:00:53,820 --> 00:00:56,580 Fi kliem ieħor, il-x varjabbli huwa ddikjarat lokalment fi ħdan l- 20 00:00:56,580 --> 00:00:58,640 funzjoni, prinċipali, u ma jkunx aċċessibbli 21 00:00:58,640 --> 00:01:00,210 barra tal-funzjoni. 22 00:01:00,210 --> 00:01:03,580 Biss prinċipali tista 'aċċess x f'din is-sitwazzjoni. 23 00:01:03,580 --> 00:01:06,990 Meta nitolbu żieda ma ngħaddux x bħala l-input, imma 24 00:01:06,990 --> 00:01:08,960 sempliċement kopja ta 'x. 25 00:01:08,960 --> 00:01:11,640 Bħala riżultat ta 'dan, l-inkrement funzjoni biss iżid 26 00:01:11,640 --> 00:01:14,190 il-valur ta '1 għal kopja tal-valur ta' x. 27 00:01:14,190 --> 00:01:16,170 Iżda mhux għal x innifsu. 28 00:01:16,170 --> 00:01:19,090 Meta nerġgħu lura għal prinċipali, x nnifisha ma nbidel f'xejn. 29 00:01:19,090 --> 00:01:22,370 Allura stampar x biss se jagħtu l-valur ta '1. 30 00:01:22,370 --> 00:01:24,890 >> Ukoll, allura li tħalli l-kwistjoni: kif għandna tiffissa 31 00:01:24,890 --> 00:01:26,230 din il-funzjoni? 32 00:01:26,230 --> 00:01:29,500 Soluzzjoni waħda hija li inkrement ritorn ta 'valur. 33 00:01:29,500 --> 00:01:31,180 B'dan il-mod, l-inkrement funzjoni se 34 00:01:31,180 --> 00:01:33,350 agħtina lura numru sħiħ. 35 00:01:33,350 --> 00:01:35,420 Allura hawnhekk il-kodiċi rivedut tagħna ma 'l- 36 00:01:35,420 --> 00:01:37,480 funzjoni sostitut inkrement. 37 00:01:37,480 --> 00:01:41,510 Hawnhekk, aħna minflok lura l-x + 1, aktar milli biss il-għan 38 00:01:41,510 --> 00:01:44,070 ma x tkun ugwali għal x + 1. 39 00:01:44,070 --> 00:01:46,290 Ukoll, jieħdu l-avviż li aħna mibdula l-produzzjoni ta ' 40 00:01:46,290 --> 00:01:49,630 inkrement, qabel null, bil int, li jiddikjara li 41 00:01:49,630 --> 00:01:52,230 inkrement issa se jgħaddu lura valur sħiħ. 42 00:01:52,230 --> 00:01:55,000 Issa, wara runs inkrementali, se terġa 'lura b'valur ta' 43 00:01:55,000 --> 00:01:56,535 2, eżattament kif aħna maħsub. 44 00:01:59,630 --> 00:02:02,260 >> Sitwazzjoni oħra li turi importanza ambitu tal- 45 00:02:02,260 --> 00:02:04,860 huwa fil scopeloop.c. 46 00:02:04,860 --> 00:02:07,320 F'dan il-kodiċi, aħna għandna biex linja fejn il-varjabbli 47 00:02:07,320 --> 00:02:10,310 total huwa initialized matul kull pass. 48 00:02:10,310 --> 00:02:13,720 Sfortunatament, dan il-kodiċi ma jikkumpilaw. 49 00:02:13,720 --> 00:02:16,690 Dan huwa minħabba li t-total varjabbli fil-fatt ma jeżistix 50 00:02:16,690 --> 00:02:18,550 barra l-linja ta '. 51 00:02:18,550 --> 00:02:21,000 Varjabbli ddikjarati fi ħdan linji jeżisti biss fi ħdan il- 52 00:02:21,000 --> 00:02:23,967 loop innifsu u hija murija bi żball tagħna 53 00:02:23,967 --> 00:02:25,880 , messaġġ total mhux iddikjarat. 54 00:02:25,880 --> 00:02:28,710 It-total varjabbli għad trid tiġi dikjarata fl-ambitu 55 00:02:28,710 --> 00:02:30,420 tal-funzjoni prinċipali. 56 00:02:30,420 --> 00:02:33,610 Barra minn hekk, matul kull iterazzjoni ta 'tagħna għall loop, aħna 57 00:02:33,610 --> 00:02:36,340 huma reinitializing totali tagħna għal 0. 58 00:02:36,340 --> 00:02:39,210 Dan fih innifsu ma jżommx il-kodiċi mill-kompilazzjoni, imma 59 00:02:39,210 --> 00:02:42,920 tipprevjeni totali minn qatt jingħaddu għal valur passat 1. 60 00:02:42,920 --> 00:02:45,760 >> Għal darb'oħra, dak li hu l-aħjar mod biex jiffissaw dan? 61 00:02:45,760 --> 00:02:48,520 Wieħed mill-metodi eħfef tinkludi li total lokali biex 62 00:02:48,520 --> 00:02:51,990 il-funzjoni, prinċipali, minflok għal-linja innifsu. 63 00:02:51,990 --> 00:02:55,210 Dan se totali li fil-fatt inkrement, u finalment, 64 00:02:55,210 --> 00:02:57,880 jippermettu li jiġu stampati wara l-linja ta '. 65 00:02:57,880 --> 00:03:00,093 Teknika oħra li jien ser biss fil-qosor tqassar kieku 66 00:03:00,093 --> 00:03:02,190 jkun l-użu ta 'varjabbli globali. 67 00:03:02,190 --> 00:03:04,890 Varjabbli globali huma varjabbli li huma ddikjarati qabel prinċipali 68 00:03:04,890 --> 00:03:07,860 li jżommu l-valur tagħhom matul il-programm kollu. 69 00:03:07,860 --> 00:03:10,710 Of course, il-funzjonijiet jistgħu jibdlu l-valur ta 'globali, 70 00:03:10,710 --> 00:03:13,470 iżda dawn ma jmorrux barra mill-iskop bħal varjazzjonijiet lokali. 71 00:03:13,470 --> 00:03:15,880 Madankollu, bl-użu varjabbli globali tendenza li jkunu frowned 72 00:03:15,880 --> 00:03:18,180 fuq bħala disinn ħażin, peress li hemm modi aħjar ta ' 73 00:03:18,180 --> 00:03:20,080 kondiviżjoni ta 'data fost funzjonijiet. 74 00:03:20,080 --> 00:03:21,920 Per eżempju, bl-użu pointers. 75 00:03:21,920 --> 00:03:24,250 Iżda aktar fuq dan ieħor żmien. 76 00:03:24,250 --> 00:03:26,670 >> Fl-aħħarnett, huwa importanti li jkollhom għarfien ta 'ambitu 77 00:03:26,670 --> 00:03:29,550 fil-kuntest tal-memorja tal-kompjuter, jew RAM. 78 00:03:29,550 --> 00:03:32,470 Meta aħna tesegwixxi programm, varjabbli lokali u l-funzjonijiet 79 00:03:32,470 --> 00:03:34,040 huma miżjuda ma 'lokazzjoni speċifika fil- 80 00:03:34,040 --> 00:03:36,010 RAM imsejjaħ il-munzell. 81 00:03:36,010 --> 00:03:39,230 Kif funzjonijiet ritorn, il-frejms munzell tal-varjabbli huma 82 00:03:39,230 --> 00:03:43,910 effettivament imneħħi mill-munzell ħelsien memorja aktar. 83 00:03:43,910 --> 00:03:46,750 Allura meta jirrevedi ambitu, kun ċert li tiftakar dawn it-tliet 84 00:03:46,750 --> 00:03:47,980 punti ewlenin. 85 00:03:47,980 --> 00:03:51,220 Wieħed, l-ambitu jista 'jkun jew lokali jew globali. 86 00:03:51,220 --> 00:03:53,990 Hija tiddependi fuq fejn il-varjabbli huwa ddikjarat. 87 00:03:53,990 --> 00:03:57,040 Żewġ, varjabbli dikjarati jew initialized fil-funzjonijiet huma 88 00:03:57,040 --> 00:03:59,510 lokali biex dik il-funzjoni u ma jistgħux jinbidlu b'mezzi oħra 89 00:03:59,510 --> 00:04:02,790 funzjonijiet, almenu mhux mingħajr l-użu pointers. 90 00:04:02,790 --> 00:04:05,340 Fl-aħħarnett, varjabbli huma wkoll lokali għal-linji li huma 91 00:04:05,340 --> 00:04:06,490 iddikjarati taħt. 92 00:04:06,490 --> 00:04:08,100 Il-varjabbli ma jkunux aċċessibbli 93 00:04:08,100 --> 00:04:09,860 barra tal-linja. 94 00:04:09,860 --> 00:04:11,170 >> Li kollox għal issa fuq firxa. 95 00:04:11,170 --> 00:04:12,420 Grazzi għall-ħars.