>> LUIDSPREKER 1: Stel nu dat ik wilde Scratch de mogelijkheid te geven
om ook te niezen.
Nou, mijn eerste instinct zou zijn, zoals voorheen, om een
blok, noemen dit niezen.
Geef aan dat ik zou willen opgeven een getal hoe vaak
Scratch moet niezen.
Daarna op OK te klikken.
Laat mij dit dan naar rechts te verplaatsen om mezelf wat meer ruimte.
>> En dan laat ik weer naar Herhalen, overschrijven van de standaard 10 met n.
Laat mij naar het woord verklaring en zeg niet "hallo", maar
"Achoo" gedurende een seconde.
Neem dan een moment rust.
En dat is het.
>> Nu heb ik een blok genaamd niezen, en een blok genoemd hoest.
Zodat nu als ik wil Scratch hoesten en niezen, kan ik gewoon geef een
niezen onder zijn hoest.
Drie keer, zeg.
Klik op de groene vlag, en ik zou moeten zie inderdaad, hoesten, hoesten, hoesten.
Gevolgd door achoo, achoo, achoo.
Mijn meest realistische niest-to-date.
>> Let nu op iets dat slecht over dit ontwerp.
Hoewel ik niet ronduit duplicaat elke puzzelstukjes, I
zeker gesleept vrij vrijwel dezelfde puzzelstukjes, waardoor
de ene functie een ooit zo iets andere naam dan de andere, niezen
versus hoest.
Dus dit is een kans voor factoring een aantal gemeenschappelijke code.
Inderdaad, merkt het enige verschil tussen hoesten en niezen is dat een
heeft Scratch gezegde "hoest," de andere van die zeggen "achoo."
>> Dus konden we niet een of andere manier dit generaliseren code zodanig dat we gewoon
specificeren welk woord we willen Scratch verblijven?
En afhankelijk van dat woord, het zal een hoest of effectief zijn
zal een nies zijn.
Dus laten we verder gaan en doen dit.
Laten we een derde functie en bel deze, "zeggen." en ik wil dat het
aanvaarden geen nummer, maar nu een tekenreeks, ook wel bekend als
woord of een zin.
>> And we'll call this "word."
En hoe vaak moet ik wil dit woord zeggen?
Nou laten we geeft u een nummer, het opnieuw bellen n.
En om dit blok meer maken leesbare, laat me ga je gang en voeg een
label genaamd "tijden." Zodat wanneer u lees dit blok van links naar rechts, het
letterlijk zegt "zeggen woord n ​​keer."
>> Laat me nu ga je gang en klik op OK.
En nu laat ik de uitvoering van dit blok, opnieuw met een herhaling blok.
Specificeren dat ik wil aan n keer herhalen.
Preciseren dat ik wil zeggen iets voor een seconde.
Maar in plaats van iets te hard gecodeerd in deze functie, laten we in plaats slepen
en laat het woord dat is is doorgegeven inch
Laten we dan wachten op een seconde.
Dus laat me nu terug te gaan en te verfijnen mijn implementaties van hoesten en niezen,
zodanig dat deze twee functies noemen dit derde functie, waardoor
minimaliseren van de hoeveelheid van dubbele code.
Dus laten we letterlijk gooien deze code weg.
Werp deze code weg.
En deze keer, laten we gewoon aangeven dat hoest moet worden uitgevoerd door
zeggen "hoesten" een getal n keer.
>> En evenzo kunnen we teruggaan en opnieuw te implementeren niezen zodat het gebruikt
zeggen met een argument van "achoo 'n keer.
Dus wat hebben we gedaan?
We hebben de code die was erkend voor beide onze hoesten en onze
niezen functies, verwerkt het uit in een nieuw derde functie, en vervolgens
herschreven hoesten en niezen in dergelijke dat zij noemen
derde en nieuwe functies.
>> Nu hebben we geheel maakte dit hele programma ingewikkelder dan het
echt moet zijn.
Immers, aan het eind van de dag, we gewoon Scratch moeten drie keer hoesten
en niezen drie keer.
En we konden hebben gedaan met slechts een paar puzzelstukjes.
Maar als onze programma's krijgen veel meer ingewikkeld, en onze programma's meer
gesofisticeerde techniek factoring gemeenschappelijke code, of
hiërarchische ontbindend je programma in kleinere functie elk
noemen andere functies, is een zeer dwingende techniek.
Want het zal ervoor zorgen dat uw code, zelfs als het meer complexe, overblijfselen krijgt
eenvoudig te updaten en ook zeer leesbaar.
>> Sterker nog, overweeg dan het eindresultaat.
Wanneer de groene vlag wordt geklikt, hoest drie keer, drie keer niezen.
En dat is het.
In feite, we doen precies dat.
Klik op de groene vlag en krijgen we een hoesten, hoesten twee, drie hoesten.
Door gevolgd, hopen we, een keer niezen, twee niest, en een derde nies.
Hoop dat hij beter wordt binnenkort.