hvad er en konfiguration objekt, og hvorfor bruge det?

, hvad er en konfiguration, formål, og hvorfor bruge det?,,,,, andel,,,,,,,, 3,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' t miss ud. det er en smerte til at ændre parametrene for en funktion, må du ændre dig hver anden opfordring til at fungere, for at undgå fejl.men du kan komme rundt om dette ved hjælp af et parameter: en konfiguration objekt.,,, hvad det ligner, her er en fjollet eksempel på en funktion for at skabe en robot:, funktion generaterobot (våben: int, personlighed: string): robot (var - - robot = nye robot(); (var -: int = 0. jeg < våben; jeg + +) (//skabe arm og tilføje det til robot} hvis (personlighed = = "onde") (robot.commands = "udslette menneskeheden."} andre (robot.commands = bage kager.} tilbage robot.} generaterobot (2 "onde"), nu, her er den samme, f.eks. ved hjælp af en konfiguration objekt, funktion generaterobot (conf: formål: robot (var - - robot = nye robot(); (var - jeg: int = 0. jeg < conf.arms; jeg + +) (//skabe arm og tilføje det robot}hvis (conf.personality = = "onde") (robot.commands = "udslette menneskeheden."} andre (robot.commands = bage kager.} tilbage robot.} generaterobot ({våben: 2, personlighed: "onde"}), jeg har fremhævet de linjer, der kræver ændring, kan man se, at der er ikke meget forskel.,, hvorfor?så hvis der ikke er nogen forskel, hvorfor skulle vi gøre det den anden vej?det bliver faktisk fungere lidt sværere at bruge; før vores ide ville være i stand til at give os denne information om parametre for funktion forventede:,,... det kan kun give os denne:,, hvis du ønsker at tilføje nogle flere parametre: en angivelse af materiale til brug og en anden for at præcisere, hvad farve de laser bør være.det er ikke svært, i begge tilfælde:, funktion generaterobot (våben: int, personlighed: string, materiale: string, lasercolor: string): robot (var - - robot = nye robot(); (var - jeg: int = 0. jeg < våben; jeg + +) (//skabe arm og tilføje det til robot} hvis (personlighed = = "onde") (robot.commands = "udslette menneskeheden."} andre (robot.commands = bage kager.} skift (væsentlige) {"træ": //- robot bryde; sag "jern": default: //stål robot -;) robot.laser = nye laser(); robot.laser.color = lasercolor; tilbage robot.} generaterobot (2 "onde", "stil", "røde"), funktion generaterobot (conf: formål: robot (var - - robot = nye robot(); (var - jeg: int = 0. jeg < conf.arms; jeg + +) (//skabe arm og tilføje det til robot} hvis (conf.personality = = "onde") (robot.commands = "udslette menneskeheden."} andre (robot.commands = bage kager.} skift (conf.material) {"træ": //- robot - pause. "og": default: //stål robot pause.} robot.laser = nye laser(); robot.laser.color = conf.lasercolor; tilbage robot.} generaterobot ({våben: 2, personlighed: "onde" materiale: "jern", lasercolor: "røde"}), stadig ikke meget forskel.hvad, hvis du vil have din robotter, til alle har røde lasere af misligholdelse.let igen.uden en konfiguration objekt, du har bare brug for at ændre metoden underskrift (, funktion, linje), og derefter kan du fjerne det sidste argument fra funktion kalder:, funktion generaterobot (våben: int, personlighed: string, materiale: string, lasercolor: string = "røde"): robot (//denne er alle de samme} generaterobot (2, sandt, "stål"); //jeg fjernet den sidste argument med en konfiguration, genstand, det er lidt sværere, men ikke meget:, funktion generaterobot (conf: formål: robot (hvis (!conf.lasercolor) (conf.lasercolor = "røde"} var robot: robot = nye robot(); (var - jeg: int = 0. jeg < conf.arms; jeg + +) (//skabe arm og tilføje det til robot} hvis (conf.personality = = "onde") (robot.commands = "udslette menneskeheden."} andre (robot.commands = bage kager.} skift (conf.material) {"træ": //- robot, slå; sag "jern": default: //stål robot pause.} robot.laser = nye laser(); robot.laser.color = conf.lasercolor; tilbage robot.} generaterobot ({våben: 2, personlighed. "onde" materiale: "jern"}); //jeg fjernet den sidste argument, okay.nu tror du at du er, at næsten alle deres robotter til at være ond (jeg mener, hvorfor ikke?så det er faktisk en slags smerte til at skrive "onde" som et parameter, hver gang.selvfølgelig, du ønsker at sætte "onde" som default - - men du skal ikke ønsker at fastsætte en standard materiale. den eneste måde, vi kan gøre det, med et fast sæt funktion parametre, er at skifte for, personlighed, og materiale, parametre:, funktion generaterobot (våben: int, materiale: string, personlighed: string = "onde", lasercolor: string = "røde"): robot {, men nu skal du skifte for de argumenter, runde på hver enkelt funktion., generaterobot (2 "onde", "stål"); //ikke længere fungerer, en konfiguration, formål, har du ikke dette problem.tjek det ud:, funktion generaterobot (conf: formål: robot (hvis (!conf.lasercolor) (conf.lasercolor = "røde"} hvis (!conf.personality) (conf.personality = "onde") //- det er den samme} generaterobot ({våben: 2, materiale: "jern"}); //nej "personlighed" parameter.intet problem!fint!alle dine gamle, generaterobot(), funktion kræver, vil fortsætte med at arbejde, men du kan skabe nye krav, der ikke gider med angivelse af personlighed,., kan du selv beslutte at slippe af med den, som parameter i alt:, funktion generaterobot (conf: formål: robot (hvis (!conf.lasercolor) (conf.lasercolor = "røde"} hvis (!conf.personality) (conf.personality = "onde"} var robot: robot = nye robot(); (var - jeg: int = 0. jeg < conf.arms; jeg + +) (//skabe arm og tilføje det til robot} robot.commands = "udslette menneskeheden." skift (conf.material) {"træ": //- robot bryde; sag "jern": default: //stål robot pause.} robot.laser = nye laser(); robot.laser.color = conf.lasercolor; tilbage robot.}, ovennævnte version af den funktion, ikke henviser til, conf.personality, - - men du får ikke en fejl, hvis du stadig har krav, som det, generaterobot ({våben: 2, personlighed: "onde" materiale: "jern"}), selvfølgelig, du kan få et par forvirret brugere, hvis du har kalder sådan her:, generaterobot ({våben: 2personlighed: "god", materiale: "stål"}), da alle robotter er onde.men i det mindste kodeksen vil udarbejde. af samme grund, kan du ændre rækkefølgen af argumenter uden mattering overhovedet, og endda tilføje nye parametre, der gør ikke noget endnu. generaterobot ({materiale: "stil", lasercolor: "grønne" våben: 2, stemme: "mr. t"}), for at gøre det lettere at fastsætte misligholdelser, koden for fastsættelse af misligholdelse, er let at forstå, indtil videre, men det er meget ærgerligt, at udvide, hvis vi skal have masser af parametre: hvis (!conf.lasercolor) (conf.lasercolor = "røde"} hvis (!conf.personality) (conf.personality = "onde"}, lad os skrive nogle mere generelle kode til at håndtere den:, var misligholdelser: formål = {lasercolor: rød personlighed: "onde") til (var - nøgle: snor i misligholdelse) (hvis (!conf [centrale]) (conf [centrale] = misligholdelse [centrale]), at for, loop - kan være lidt forvirrende, så jeg vil bryde det ned.første, se her: for (var - nøgle: snor i misligholdelse) (spor (centrale);}, dette er for... i en sløjfe, som vil produktionen navnene på nøglerne, misligholdelse, formål, lasercolor personlighed, næste, se på denne linje:, trace (misligholdelse ["lasercolor"]), vil dette output, røde, - - det er det samme som at skrive, trace (tab. lasercolor). som følge af, at se på dette eksempel:, var f.eks.: objekt = (demo: "test"}; spor (f.eks. ["demo"]) og spor (f.eks. ["foo"]), hvad tror du det er output?- eksempel ["demo"], er den samme som f.eks. område, som er lig med "prøve".men example.foo, ikke eksisterer, så f.eks. ["foo"], vil vende tilbage, nul.det betyder, at!eksempel ["foo"] (note udråbstegnet) vil være det samme, sandt,., sætte det sammen, og du skal være i stand til at forstå, hvorfor denne kode virker:, var misligholdelser: formål = {lasercolor: rød personlighed: "onde") til (var - nøgle: snor i misligholdelse) (hvis (!conf [centrale]) (conf [centrale] = misligholdelse [centrale]}}, giv mig et kald i de bemærkninger, hvis du har brug for en hånd.jeg vil have mere!for en endnu hurtigere version, prøv sådan her:, funktion generaterobot (conf: formål = null): robot (var - conf: formål = conf



Previous:
Next Page: