1 00:00:00,000 --> 00:00:00,280 2 00:00:00,280 --> 00:00:02,970 >> SPEAKER 1: Anta nå at jeg ønsket å gi Scratch muligheten 3 00:00:02,970 --> 00:00:05,080 å nyse også. 4 00:00:05,080 --> 00:00:07,710 Vel, mine første instinkter ville er, som før, for å gjøre en 5 00:00:07,710 --> 00:00:10,070 blokk, kaller dette nys. 6 00:00:10,070 --> 00:00:14,110 Spesifiser at jeg har lyst til å spesifisere med et tall på hvor mange ganger 7 00:00:14,110 --> 00:00:15,800 Scratch skal nyse. 8 00:00:15,800 --> 00:00:17,540 Deretter klikker OK. 9 00:00:17,540 --> 00:00:20,370 La meg flytte denne over til høyre å gi meg selv litt mer plass. 10 00:00:20,370 --> 00:00:26,070 >> Og så la meg igjen gå til Gjenta, styrer standard 10 med n. 11 00:00:26,070 --> 00:00:29,610 La meg gå til si setningen og si ikke "hei", men 12 00:00:29,610 --> 00:00:32,350 "Achoo" i ett sekund. 13 00:00:32,350 --> 00:00:35,180 Så ta et øyeblikks pusterom. 14 00:00:35,180 --> 00:00:36,040 Og det er det. 15 00:00:36,040 --> 00:00:39,220 >> Nå har jeg en blokk kalt nys, så vel som en blokk kalles hoste. 16 00:00:39,220 --> 00:00:46,550 Så det nå hvis jeg ønsker Skrap å hoste og nys, jeg kan bare spesifisere en 17 00:00:46,550 --> 00:00:48,580 nyse under hans hoste. 18 00:00:48,580 --> 00:00:49,930 Tre ganger, sier. 19 00:00:49,930 --> 00:00:55,560 Klikk på den grønne flagg, og jeg burde se faktisk, hoste, hoste, hoste. 20 00:00:55,560 --> 00:01:01,880 Etterfulgt av Achoo, Achoo, Achoo. 21 00:01:01,880 --> 00:01:04,180 Mine mest realistiske nyser ennå. 22 00:01:04,180 --> 00:01:09,240 >> Nå oppdager noe som er dårlig om dette designet. 23 00:01:09,240 --> 00:01:11,930 Selv om jeg gjorde ikke outright duplikat noen puslebiter, jeg 24 00:01:11,930 --> 00:01:15,020 definitivt dras og slippes pen mye de samme brikkene, noe som gir 25 00:01:15,020 --> 00:01:18,660 den ene funksjonen en aldri så litt annet navn enn den andre, nys 26 00:01:18,660 --> 00:01:19,640 versus hoste. 27 00:01:19,640 --> 00:01:23,410 Så dette er en mulighet for facto ut noen felles kode. 28 00:01:23,410 --> 00:01:27,020 Faktisk, merke den eneste forskjellen mellom hoste og nys er at ett 29 00:01:27,020 --> 00:01:30,710 har Ripe ordtaket "hoste", den andre som sier "Achoo." 30 00:01:30,710 --> 00:01:35,010 >> Så kunne ikke vi liksom generalisere dette kode på en slik måte at vi bare 31 00:01:35,010 --> 00:01:37,990 spesifisere hva ordet vi ønsker å Scratch å bo? 32 00:01:37,990 --> 00:01:41,170 Og avhengig av det ordet, vil det effektivt være en hoste eller 33 00:01:41,170 --> 00:01:42,370 det vil være et nys. 34 00:01:42,370 --> 00:01:43,580 Så la oss gå videre og gjøre dette. 35 00:01:43,580 --> 00:01:49,500 La oss lage en tredje funksjon og ringe denne, "sier." og jeg vil ha det til 36 00:01:49,500 --> 00:01:53,360 akseptere, ikke bare et tall, men denne gangen en streng, også kjent som en 37 00:01:53,360 --> 00:01:54,980 ord eller uttrykk. 38 00:01:54,980 --> 00:01:57,500 >> And we'll call this "word." 39 00:01:57,500 --> 00:01:59,500 Og hvor mange ganger må jeg ønsker å si dette ordet? 40 00:01:59,500 --> 00:02:02,680 Vel la oss angir et tall, ringer det igjen n. 41 00:02:02,680 --> 00:02:05,540 Og bare for å gjøre denne blokken mer lesbar, la meg gå videre og legge en 42 00:02:05,540 --> 00:02:11,000 plateselskap kalt "ganger." Slik at når du lese denne blokken fra venstre til høyre, det 43 00:02:11,000 --> 00:02:14,380 bokstavelig sier "si ordet n ganger." 44 00:02:14,380 --> 00:02:15,760 >> Nå la meg gå videre og klikk på OK. 45 00:02:15,760 --> 00:02:18,320 46 00:02:18,320 --> 00:02:22,750 Og nå la meg gjennomføre denne blokken, igjen ved hjelp av en gjentakelse blokk. 47 00:02:22,750 --> 00:02:25,680 Spesifisere at jeg vil ha det å gjenta n ganger. 48 00:02:25,680 --> 00:02:29,480 Spesifisere at jeg ønsker å si noe i ett sekund. 49 00:02:29,480 --> 00:02:33,750 Men snarere enn noe hard kodet inn i denne funksjonen, la oss i stedet dra 50 00:02:33,750 --> 00:02:36,450 og slippe ordet som er gått i. 51 00:02:36,450 --> 00:02:38,790 La oss deretter vente i ett sekund. 59 00:02:39,297 --> 00:02:43,387 Så nå la meg gå tilbake og forbedre min implementeringer av hoste og nyse, 60 00:02:43,387 --> 00:02:47,367 på en slik måte at de to funksjoner kaller denne tredje funksjon, og dermed 61 00:02:47,367 --> 00:02:49,627 å minimalisere mengden av duplisere kode. 62 00:02:49,627 --> 00:02:52,237 Så la oss bokstavelig talt kaste denne koden unna. 63 00:02:52,237 --> 00:02:54,037 La oss kaste denne koden unna. 64 00:02:54,037 --> 00:02:57,707 Og denne gangen, la oss bare spesifisere at hoste bør gjennomføres ved 65 00:02:57,707 --> 00:03:02,607 sier "hoste" noen tall n ganger. 66 00:03:02,607 --> 00:03:06,987 >> Og på lignende måte kan vi gå tilbake og re-implementere Nys, slik at den bruker 67 00:03:06,987 --> 00:03:13,577 si med et argument av "Achoo" n ganger. 68 00:03:13,577 --> 00:03:14,687 Så hva har vi gjort? 69 00:03:14,687 --> 00:03:18,417 Vi har anerkjent den koden som var som er felles for både vår hoste og vår 70 00:03:18,417 --> 00:03:22,127 nyse funksjoner, priset det ut i et nytt tredje funksjon, og deretter 71 00:03:22,127 --> 00:03:25,377 omskrevet hoste og nyse i en slik en måte som de kaller det 72 00:03:25,377 --> 00:03:27,177 tredje og ny funksjon. 73 00:03:27,177 --> 00:03:30,297 >> Nå har vi absolutt gjort dette hele programmet mer komplisert enn det 74 00:03:30,297 --> 00:03:31,377 egentlig trenger å være. 75 00:03:31,377 --> 00:03:34,307 Tross alt, på slutten av dagen, vi bare trenger Scratch å hoste tre ganger 76 00:03:34,307 --> 00:03:35,587 og nyse tre ganger. 77 00:03:35,587 --> 00:03:38,007 Og vi kunne ha gjort det med bare noen få biter i et puslespill. 78 00:03:38,007 --> 00:03:41,197 Men som våre programmer får mye mer komplisert, og våre programmer mer 79 00:03:41,197 --> 00:03:45,257 sofistikert, denne teknikken av facto ut felles kode, eller 80 00:03:45,257 --> 00:03:49,007 hierarkisk rotne programmet i mindre funksjon, hvor hver av disse 81 00:03:49,007 --> 00:03:51,846 kalle andre funksjoner, er en svært overbevisende teknikk. 82 00:03:51,846 --> 00:03:55,627 Fordi det vil sikre at din kode, selv som det blir mer komplekse, restene 83 00:03:55,627 --> 00:03:58,087 enkel å oppdatere og også svært lesbar. 84 00:03:58,087 --> 00:03:59,627 >> Faktisk vurdere sluttresultatet. 85 00:03:59,627 --> 00:04:03,917 Når det grønne flagget er klikket, hoste tre ganger, nyser tre ganger. 86 00:04:03,917 --> 00:04:05,007 Og det er det. 87 00:04:05,007 --> 00:04:07,007 Faktisk, la oss gjøre akkurat det. 88 00:04:07,007 --> 00:04:12,187 Klikk på den grønne flagg, og vi får en hoste, to hoste, tre hoste. 89 00:04:12,187 --> 00:04:18,607 Etterfulgt av, håper vi, når nyser, to nyser, og en tredje nys. 90 00:04:18,607 --> 00:04:19,857 Håper han blir bedre snart. 91 00:04:19,857 --> 00:04:20,892