>> HÖGTALARE 1: Antag nu att jag ville att ge Scratch förmågan
att nysa också.
Tja, min första instinkt skulle vara, som tidigare, att göra en
kvarter, kallar detta nysa.
Ange att jag skulle vilja specificera med ett antal hur många gånger
Scratch ska nysa.
Därefter klicka på OK.
Låt mig gå här över till höger för att ge mig själv lite mer utrymme.
>> Och låt mig återigen går att upprepa, åsidosätta standard 10 med n.
Låt mig gå till säg uttalande och säg inte "hej", men
"Achoo" i en sekund.
Ta sedan en stunds andrum.
Och det är det.
>> Nu har jag ett block som kallas nysning, såväl som ett block som kallas hosta.
Så att nu om jag vill Scratch att hosta och nyser, kan jag helt enkelt ange en
nysa under hans hosta.
Tre gånger, säger.
Klicka på den gröna flaggan, och jag borde se faktiskt, hosta, hosta, hosta.
Följt av achoo, achoo, Achoo.
Mina mest realistiska nyser hittills.
>> Nu märker något som är dåligt om denna design.
Även om jag inte rakt av dubbletter alla pusselbitar, jag
definitivt dras och släppas ganska ungefär samma pusselbitar, vilket ger
den ena funktionen en aldrig så lite annat namn än den andra, nysa
kontra hosta.
Så det här är en möjlighet för facto några vanliga kod.
Faktum är att märka den enda skillnaden mellan hosta och nysa är att man
har Scratch ordspråket "hosta", den andra av vilken säger "achoo."
>> Så kunde vi inte på något sätt generalisera detta kod på ett sådant sätt att vi helt enkelt
specificera vilka ord vi vill att grunden för att stanna?
Och beroende på det ordet, kommer det effektivt vara en hosta eller
det kommer att bli en nysning.
Så låt oss gå vidare och göra det.
Låt oss göra en tredje funktion och ringa den här, "säger." och jag vill att det ska
acceptera, inte bara en siffra, men den här gången en sträng, annars känd som en
ord eller en fras.
>> And we'll call this "word."
Och hur många gånger måste jag vill säga ordet?
Nåväl låt oss ange ett nummer, kalla det igen n.
Och bara för att göra detta block mer läsbar, låt mig gå vidare och lägga till en
etikett som heter "tider." Så att när du Läs detta block från vänster till höger, det
bokstavligen säger "säger ordet n gånger."
>> Låt mig gå vidare och klicka på OK.
Och nu vill jag genomföra det här blocket, återigen med användning av en upprepningsblocket.
Anger att jag vill ha den att upprepa n gånger.
Anger att jag vill säga något för en sekund.
Men snarare än något hårt kodad in i denna funktion, låt oss istället dra
och släpp det ord som är gått i.
Låt oss sedan vänta en sekund.
Så nu vill jag gå tillbaka och förbättra min implementeringar av hosta och nysa,
på ett sådant sätt att dessa två funktioner kalla denna tredje funktion, och därigenom
minimera mängden av duplicera kod.
Så låt oss bokstavligen kasta denna kod bort.
Låt oss kasta denna kod bort.
Och den här gången, låt oss helt enkelt ange att hosta bör genomföras av
säger "hosta" något antal n gånger.
>> Och på samma sätt, kan vi gå tillbaka och åter genomföra nysning, så att den använder
säga med ett argument av "achoo" n gånger.
Så vad har vi gjort?
Vi har erkänt den kod som var gemensam för både vår hosta och vår
nysning funktioner faktoriseras ut den i en ny tredje funktionen, och sedan
omskriven hosta och nysa i en sådan ett sätt som de kallar det
tredje och ny funktion.
>> Nu har vi absolut gjort det hela programmet mer komplicerat än det
egentligen behöver vara.
Trots allt, vid slutet av dagen, vi bara behöver Scratch att hosta tre gånger
och nysning tre gånger.
Och vi kunde ha gjort det med bara några pusselbitar.
Men eftersom våra program får mycket mer komplicerat, och våra program mer
sofistikerad, denna teknik för facto ut gemensam kod, eller
hierarkisk sönderdelning programmet i mindre funktion, av vilka var
ringa till andra funktioner och är en mycket övertygande teknik.
Eftersom det kommer att se till att din kod, även som det blir mer komplexa, återstår
lätt att uppdatera och också mycket läsvärd.
>> I själva verket anser slutresultatet.
När den gröna flaggan är tryckt, hosta tre gånger, nysning tre gånger.
Och det är det.
I själva verket, låt oss göra just det.
Klicka på den gröna flaggan och vi får en hosta, två hosta, tre hosta.
Följt av, hoppas vi, en gång nysa, två nysningar och en tredje nysning.
Hoppas han blir bättre snart.