[Powered by Google Translate] DAVID DICIURCIO: Felly yn gysyniad pwysig afael ag ef yn rhaglennu yw'r syniad o gwmpas. Gellir Scope yn cael ei ddiffinio fel y cyd-destun y newidyn yn weladwy nac yn hygyrch. Er enghraifft, gadewch i ni ddweud ein bod wedi swyddogaeth, prif, hynny yw i fod i gynnydd newidyn, x, o un i ddau. Fel y gallwn weld, prif initializes x i un, printiau allan rhywfaint o destun, ac yna rhedeg y cynyddiad swyddogaeth, cyn argraffu testun yn fwy. Os yw hyn yn swyddogaeth oedd i redeg yn gywir, byddai'n argraffu x yn 2. Gadewch i ni roi cynnig arni. Felly, fel y gallwch weld, nid yw'n prif gwneud yr hyn yr oeddem yn disgwyl i. Mae'n dychwelyd y gwerth 1, yn hytrach na'r 2 oeddem yn disgwyl. Gall y rheswm am hyn bug eu hegluro gan cwmpas. Yn y swyddogaeth, prif, rydym ymgychwyn x yn unig o fewn y swyddogaeth. Mewn geiriau eraill, mae'r newidyn x yn cael ei ddatgan yn lleol o fewn y swyddogaeth, prif, ac nid yw'n hygyrch y tu allan i'r swyddogaeth. Dim ond y prif fynediad x yn y sefyllfa hon. Pan fyddwn yn galw cynyddiad nid ydym yn pasio x fel y mewnbwn, ond dim ond copi o x. O ganlyniad i hyn, mae'r cynyddiad swyddogaeth yn unig yn ychwanegu y gwerth 1 i gopi o werth x. Ond nid i X ei hun. Pan fyddwn yn dychwelyd i'r cyfan, nid x ei hun wedi newid o gwbl. Felly, bydd argraffu x ond yn cynhyrchu gwerth o 1. Wel, yna mae hynny'n gadael y cwestiwn: sut y dylem bennu swyddogaeth hon? Un ateb yn cael cynyddiad yn dychwelyd gwerth. Yn y modd hwn, mae'r cynyddiad swyddogaeth yn rhoi ni yn ôl yn gyfanrif. Felly dyma ein cod diwygiedig gyda'r swyddogaeth gynyddran bob yn ail. Yma, rydym yn lle hynny dychwelodd y x + 1, yn hytrach na dim ond diwedd gyda x yn gyfartal i x + 1. Hefyd, yn sylwi ein bod yn cymryd lle'r allbwn cynyddiad, yn flaenorol yn ddi-rym, gyda int, gan nodi bod Bydd cynyddiad awr yn pasio yn ôl gwerth cyfanrif. Nawr, ar ôl rhediadau cynyddiad, bydd yn dychwelyd gyda gwerth o 2, yn union fel yr ydym yn bwriadu. Sefyllfa arall sy'n dangos pwysigrwydd cwmpas yn yn scopeloop.c. Yn y cod hwn, mae gennym dros ddolen lle mae'r newidyn cyfanswm yn cael ei ymgychwyn yn ystod pob cam. Yn anffodus, nid yw'r cod yn crynhoi. Mae hyn oherwydd bod y cyfanswm amrywiol mewn gwirionedd yn bodoli y tu allan i'r ddolen am. Newidynnau datgan mewn dolenni ond yn bodoli o fewn y dolen ei hun ac yn cael ei ddangos yn ein camgymeriad neges, heb eu datgan cyfanswm. Mae'r cyfanswm amrywiol eto i gael eu datgan o fewn y cwmpas o'r prif swyddogaeth. Ar ben hynny, yn ystod pob fersiwn o'n gyfer dolen, rydym yn yn reinitializing ein cyfanswm i 0. Nid yw hyn ynddo'i hun yn cadw'r cod o lunio, ond mae'n yn atal cyfanswm o erioed grynhoi hyd at werth y gorffennol 1. Unwaith eto, beth yw'r ffordd orau i atgyweiria hon? Un o'r dulliau yn cynnwys gwneud yn haws cyfanswm lleol i swyddogaeth, prif, yn hytrach nag i'r ddolen ei hun. Bydd hyn yn gyfanswm i mewn gwirionedd cynyddiad, yn y pen draw, caniatáu iddo gael ei argraffu ar ôl y ddolen ar gyfer. Techneg arall y byddaf yn fras grynhoi byddai fod y defnydd o newidynnau byd-eang. Newidynnau byd-eang o newidynnau sy'n cael eu datgan cyn y prif sy'n cynnal eu gwerth drwy gydol y rhaglen gyfan. Wrth gwrs, gall swyddogaethau newid gwerth byd-eang, ond nid ydynt yn mynd allan o gwmpas fel newidynnau lleol. Fodd bynnag, gan ddefnyddio newidynnau byd-eang yn tueddu i gael ei gwgu arnynt fel dylunio gwael, gan fod ffyrdd gwell o rhannu data ymysg swyddogaethau. Er enghraifft, gan ddefnyddio awgrymiadau. Ond mwy am hynny rywbryd arall. Yn olaf, mae'n bwysig cael dealltwriaeth o gwmpas yng nghyd-destun o gof y cyfrifiadur, neu RAM. Pan fyddwn yn gweithredu rhaglen, newidynnau lleol a swyddogaethau yn cael eu hychwanegu i leoliad penodol yn y RAM a elwir yn y pentwr. Fel swyddogaethau gyfnewid, mae'r fframiau pentwr o newidynnau yn gwaredu'n effeithiol o'r pentwr ryddhau mwy o gof. Felly, wrth adolygu cwmpas, gwnewch yn siŵr eich bod yn cofio y tri pwyntiau allweddol. Gall un, cwmpas fod naill ai'n lleol neu fyd-eang. Mae'n dibynnu ar ble y newidyn yn cael ei ddatgan. Dau, newidynnau datgan neu ymgychwyn mewn swyddogaethau yn Ni all lleol â'r swyddogaeth honno ac yn cael ei newid gan eraill swyddogaethau, o leiaf nid heb ddefnyddio awgrymiadau. Yn olaf, newidynnau hefyd yn lleol i ddolenni sy'n datgan mewn. Nid yw'r newidynnau yn hygyrch y tu allan i'r ddolen. Dyna'r cyfan am nawr ar gwmpas. Diolch am wylio.