SPEAKER 1: Anta nå at jeg ønsket å gi Scratch muligheten å nyse også. Vel, mine første instinkter ville er, som før, for å gjøre en blokk, kaller dette nys. Spesifiser at jeg har lyst til å spesifisere med et tall på hvor mange ganger Scratch skal nyse. Deretter klikker OK. La meg flytte denne over til høyre å gi meg selv litt mer plass. Og så la meg igjen gå til Gjenta, styrer standard 10 med n. La meg gå til si setningen og si ikke "hei", men "Achoo" i ett sekund. Så ta et øyeblikks pusterom. Og det er det. Nå har jeg en blokk kalt nys, så vel som en blokk kalles hoste. Så det nå hvis jeg ønsker Skrap å hoste og nys, jeg kan bare spesifisere en nyse under hans hoste. Tre ganger, sier. Klikk på den grønne flagg, og jeg burde se faktisk, hoste, hoste, hoste. Etterfulgt av Achoo, Achoo, Achoo. Mine mest realistiske nyser ennå. Nå oppdager noe som er dårlig om dette designet. Selv om jeg gjorde ikke outright duplikat noen puslebiter, jeg definitivt dras og slippes pen mye de samme brikkene, noe som gir den ene funksjonen en aldri så litt annet navn enn den andre, nys versus hoste. Så dette er en mulighet for facto ut noen felles kode. Faktisk, merke den eneste forskjellen mellom hoste og nys er at ett har Ripe ordtaket "hoste", den andre som sier "Achoo." Så kunne ikke vi liksom generalisere dette kode på en slik måte at vi bare spesifisere hva ordet vi ønsker å Scratch å bo? Og avhengig av det ordet, vil det effektivt være en hoste eller det vil være et nys. Så la oss gå videre og gjøre dette. La oss lage en tredje funksjon og ringe denne, "sier." og jeg vil ha det til akseptere, ikke bare et tall, men denne gangen en streng, også kjent som en ord eller uttrykk. Og vi vil kalle dette "ord." Og hva ønsker jeg å si? Og hvor mange ganger må jeg ønsker å si dette ordet? Vel la oss angir et tall, ringer det igjen n. Og bare for å gjøre denne blokken mer lesbar, la meg gå videre og legge en plateselskap kalt "ganger." Slik at når du lese denne blokken fra venstre til høyre, det bokstavelig sier "si ordet n ganger." Nå la meg gå videre og klikk på OK. Og nå la meg gjennomføre denne blokken, igjen ved hjelp av en gjentakelse blokk. Spesifisere at jeg vil ha det å gjenta n ganger. Spesifisere at jeg ønsker å si noe i ett sekund. Men snarere enn noe hard kodet inn i denne funksjonen, la oss i stedet dra og slippe ordet som er gått i. La oss deretter vente i ett sekund. Og nå la oss gå tilbake og forbedre min implementeringer av nys og hoste, slik at de kaller dette fungere etter tur. Så la oss kaste bort denne koden. La oss kaste bort denne koden. La oss gå til min custom blokk og dra i "si". Og skriv i argumentet av "hoste" tre ganger. Og her nede la oss dra i "si" "Achoo" tre ganger. Så nå la meg gå tilbake og forbedre min implementeringer av hoste og nyse, på en slik måte at de to funksjoner kaller denne tredje funksjon, og dermed å minimalisere mengden av duplisere kode. Så la oss bokstavelig talt kaste denne koden unna. La oss kaste denne koden unna. Og denne gangen, la oss bare spesifisere at hoste bør gjennomføres ved sier "hoste" noen tall n ganger. Og på lignende måte kan vi gå tilbake og re-implementere Nys, slik at den bruker si med et argument av "Achoo" n ganger. Så hva har vi gjort? Vi har anerkjent den koden som var som er felles for både vår hoste og vår nyse funksjoner, priset det ut i et nytt tredje funksjon, og deretter omskrevet hoste og nyse i en slik en måte som de kaller det tredje og ny funksjon. Nå har vi absolutt gjort dette hele programmet mer komplisert enn det egentlig trenger å være. Tross alt, på slutten av dagen, vi bare trenger Scratch å hoste tre ganger og nyse tre ganger. Og vi kunne ha gjort det med bare noen få biter i et puslespill. Men som våre programmer får mye mer komplisert, og våre programmer mer sofistikert, denne teknikken av facto ut felles kode, eller hierarkisk rotne programmet i mindre funksjon, hvor hver av disse kalle andre funksjoner, er en svært overbevisende teknikk. Fordi det vil sikre at din kode, selv som det blir mer komplekse, restene enkel å oppdatere og også svært lesbar. Faktisk vurdere sluttresultatet. Når det grønne flagget er klikket, hoste tre ganger, nyser tre ganger. Og det er det. Faktisk, la oss gjøre akkurat det. Klikk på den grønne flagg, og vi får en hoste, to hoste, tre hoste. Etterfulgt av, håper vi, når nyser, to nyser, og en tredje nys. Håper han blir bedre snart.