1 00:00:00,000 --> 00:00:03,332 >> [Muzikos grojimo] 2 00:00:03,332 --> 00:00:06,200 3 00:00:06,200 --> 00:00:09,590 >> DAN AMRMENDARIZ: Kiekvienas, Sveiki atvykę į CS50 seminare, 4 00:00:09,590 --> 00:00:11,690 iOS Programos plėtros su Swift. 5 00:00:11,690 --> 00:00:15,690 Aš Danas Armendariz, ir aš auklėtojas kompiuterių mokslo čia Harvarde. 6 00:00:15,690 --> 00:00:21,510 >> Ir kitą valandą bus whirlwind kelionė, kaip daug dalykų 7 00:00:21,510 --> 00:00:25,160 apie šią temą, kaip mes gali tilpti. 8 00:00:25,160 --> 00:00:29,170 Aš po visų kodo kad jūs pamatysite šiandien internete. 9 00:00:29,170 --> 00:00:31,990 Mes gali nepavykti iš tikrųjų eiti virš visko 10 00:00:31,990 --> 00:00:34,810 kad aš, kad aš parodyti jums šiame valandą. 11 00:00:34,810 --> 00:00:37,580 Bet bent jau tikiuosi per Dėl kodo komentarai, 12 00:00:37,580 --> 00:00:40,830 Galėsite pabandyti išsiaiškinti, kas tiksliai vyksta už tų dalykų, 13 00:00:40,830 --> 00:00:42,950 kad mes ne visai gauti. 14 00:00:42,950 --> 00:00:46,970 >> Apskritai struktūra šiandien aptarimas bus taip. 15 00:00:46,970 --> 00:00:52,820 Pradėsime iš darote kai pagrindinė sintaksė su Swift kalba 16 00:00:52,820 --> 00:00:56,290 vyksta į kai kurias sudėtingesnes sintaksė Swift kalba. 17 00:00:56,290 --> 00:00:59,560 Kadangi kalba yra tikrai modernus ir ją 18 00:00:59,560 --> 00:01:02,110 turi aukšto lygio daug funkcijos, dalykų, kad mes ne 19 00:01:02,110 --> 00:01:06,600 matyti C visoje CS50 arba Net kai kitų kalbų 20 00:01:06,600 --> 00:01:09,310 kad mes pradėjome vartoti CS50 kaip PHP, 21 00:01:09,310 --> 00:01:12,670 todėl aš einu bandyti pristatyti taip pat kai temas, 22 00:01:12,670 --> 00:01:18,580 yra susiję su aukštesnio lygio kalbomis kad jūs negalite matyti gylio CS50, 23 00:01:18,580 --> 00:01:21,380 bet jūs pamatysite vėliau kompiuterių mokslo klasės. 24 00:01:21,380 --> 00:01:25,290 Taigi jis ketina būti sandariai supakuotas valandą. 25 00:01:25,290 --> 00:01:28,897 Ir prašome nedvejodami praneškite man žinoti, jei turite kokių nors klausimų. 26 00:01:28,897 --> 00:01:30,730 Taigi, jei jus domina daro plėtrą 27 00:01:30,730 --> 00:01:34,442 su SWIFT, ar tikrai bet iOS app plėtra, 28 00:01:34,442 --> 00:01:35,900 yra daug reikalavimų pora. 29 00:01:35,900 --> 00:01:39,940 Pirmiausia, jūs turite būti naudojant Mac, veikia pavyzdžiuose 30 00:01:39,940 --> 00:01:43,880 kad mes ketiname naudoti šiandien, palyginti nauja versija OS 31 00:01:43,880 --> 00:01:46,580 X. Tokiu atveju Bėgu X 10.5. 32 00:01:46,580 --> 00:01:48,600 Galite būti paleista 10.11, jei norite. 33 00:01:48,600 --> 00:01:52,430 Tačiau viskas, kad jūs ketinate pamatyti, yra įtraukti Xcode 7, o vėliau 34 00:01:52,430 --> 00:01:56,271 kuris turi naujausią versiją SWIFT, kuris yra SWIFT 2.0. 35 00:01:56,271 --> 00:01:58,270 Tai iš tikrųjų yra gana svarbus skirtumas. 36 00:01:58,270 --> 00:02:01,510 A sintaksė daug turi pasikeitė gana ženkliai 37 00:02:01,510 --> 00:02:05,890 kai kuriais atvejais iš SWIFT 1.0 kuris buvo išleistas pernai, 38 00:02:05,890 --> 00:02:08,514 SWIFT 2.0, kuri tiesiog išėjo šį rudenį. 39 00:02:08,514 --> 00:02:09,889 Taigi mes ketiname parodyti Swift 2.0. 40 00:02:09,889 --> 00:02:13,020 Keletas dalykų daug, kad jums ieškoti internete 41 00:02:13,020 --> 00:02:18,040 kai bandote gauti papildomos Informacija apie įvairių dalykų, 42 00:02:18,040 --> 00:02:20,710 jums gali tekti aiškiai ieškoti Swift 2 43 00:02:20,710 --> 00:02:24,950 o ne tiesiog senas Swift padaryti Įsitikinkite, kad jūs gaunate sintaksė teisinga. 44 00:02:24,950 --> 00:02:26,920 >> Iš tiesų, tai paprastai yra teisinga. 45 00:02:26,920 --> 00:02:31,210 Yra greitas suma plėtros vyksta Swift kalba 46 00:02:31,210 --> 00:02:35,110 bet kada, nes "Apple" išleido jį, manau, ką, tai buvo šiek tiek daugiau nei metus 47 00:02:35,110 --> 00:02:36,370 dabar. 48 00:02:36,370 --> 00:02:39,080 Ir viskas pasikeitė smarkiai tuo metu. 49 00:02:39,080 --> 00:02:42,160 Ir todėl nereikia būti nusivylė jeigu, jūs dairausi 50 00:02:42,160 --> 00:02:48,310 temų Swift arba kaip pasiekti kažkas naudojant kai kuriuos pavyzdinius kodą 51 00:02:48,310 --> 00:02:51,210 ar kažkas, kad ne realiai dirbti Swift 2.0. 52 00:02:51,210 --> 00:02:53,790 Įsitikinkite, kad jūs ieškote specialiai tam versija 53 00:02:53,790 --> 00:02:58,690 bandyti sumažinti poveikį skirtingi versijos ir tų dalykų rūšių. 54 00:02:58,690 --> 00:03:02,470 >> Bandysiu atkreipti dėmesį tik kai kuriuos dalykus kad yra skirtingi, kad vyresnio amžiaus versijas. 55 00:03:02,470 --> 00:03:03,970 Bet tai ką saugotis. 56 00:03:03,970 --> 00:03:06,770 Tai tikriausiai bus vienas iš didžiausių galvos skausmų 57 00:03:06,770 --> 00:03:11,010 kad jūs turite su Swift yra rasti pavyzdys kodas, kuris yra vyresnis, net tik 58 00:03:11,010 --> 00:03:14,050 iki kelių mėnesių, bando naudoti tai jūsų modernesnio projektą. 59 00:03:14,050 --> 00:03:15,430 Ir tai tiesiog neveikia. 60 00:03:15,430 --> 00:03:18,530 Jūs gaunate kompiliatoriaus klaidų, sintaksės klaidų, visi crazy stuff rūšių. 61 00:03:18,530 --> 00:03:21,580 Taigi tiesiog būkite kantrūs su , kad ir jūs, tikiuosi, 62 00:03:21,580 --> 00:03:24,200 turi gana gražią patirtį su Swift apskritai. 63 00:03:24,200 --> 00:03:28,430 >> Dabar jūs iš tikrųjų galite join-- ir aš tikiuosi, mes iš tikrųjų vis dar turi šią šį šarvuotuose 64 00:03:28,430 --> 00:03:30,910 CS 50 obuolys App plėtros komanda, kuri 65 00:03:30,910 --> 00:03:34,680 leis jums įdiegti jokių programų, kuris jums sukurti savo "iOS" įrenginius. 66 00:03:34,680 --> 00:03:39,190 Taigi imtis šiame URL, jei išvaizdą Jus domina daryti. 67 00:03:39,190 --> 00:03:41,450 >> Taigi tik porą dalykų apie save SWIFT. 68 00:03:41,450 --> 00:03:43,580 Jis yra sudarytas kalba. 69 00:03:43,580 --> 00:03:45,870 Bet jūs pamatysite, kad kai kurie iš funkcijų, kad mes naudojame 70 00:03:45,870 --> 00:03:50,650 kad ji galėtų būti naudojama taip pat šiek tiek kaip aiškinama būdas, taip pat. 71 00:03:50,650 --> 00:03:56,350 >> A sintaksė daug pasiskolinta iš C. Jis grindžiamas ir parašyta C 72 00:03:56,350 --> 00:04:00,400 Ir todėl mes matome, kad yra daug takeaways daug 73 00:04:00,400 --> 00:04:04,450 iš savo turimas žinias iš C, kad mes galime uosto Swift. 74 00:04:04,450 --> 00:04:07,290 >> Tačiau yra dalykų, kurie kad ji labai skiriasi nuo C 75 00:04:07,290 --> 00:04:08,860 Jis labai stipriai įvedėte. 76 00:04:08,860 --> 00:04:10,380 Yra automatinis atminties valdymas. 77 00:04:10,380 --> 00:04:13,170 Jūs neprisijungęs teks naudoti malloc arba nemokamai bet kurioje vietoje. 78 00:04:13,170 --> 00:04:15,110 Jis sukurtas bendrumo. 79 00:04:15,110 --> 00:04:19,480 Taigi, kitaip tariant, jūs galite naudoti ją Visi kontekstuose rūšių, iš Apple Žiūrėti 80 00:04:19,480 --> 00:04:26,290 iPhone visą kelią iki OS X, ir net kai kurie serveriai, net kai skriptų. 81 00:04:26,290 --> 00:04:28,400 Bet mes matome, kad parama scenarijus 82 00:04:28,400 --> 00:04:31,360 yra ne visai ten dar kaip ji yra ir kitomis kalbomis. 83 00:04:31,360 --> 00:04:34,930 Taigi, greičiausiai jums bus naudojant tai tik vystymosi 84 00:04:34,930 --> 00:04:37,060 ant jūsų Mac arba jūsų iPhone. 85 00:04:37,060 --> 00:04:40,150 >> Ir tai turi modernių funkcijų daug. 86 00:04:40,150 --> 00:04:43,380 Ir iš šių dalykų yra dalykų, kad mes ketiname išbandyti šiandien spręsti, 87 00:04:43,380 --> 00:04:47,590 bet ir mūsų temos, tiesą sakant, mes galime skirti visą kursus. 88 00:04:47,590 --> 00:04:50,140 Iš tiesų, CS 51, kuris yra pasiūlė kitą pusmetį, 89 00:04:50,140 --> 00:04:53,990 dėmesys dėl šių temų daug kad yra aprašyti žemiau. 90 00:04:53,990 --> 00:04:56,781 Taigi jūs galite praleisti visą semestrą suprasti šiuos dalykus. 91 00:04:56,781 --> 00:04:58,530 Tačiau mes ketiname pabandyti gauti per juos 92 00:04:58,530 --> 00:05:00,800 bent pakankamai, kad jums gali suprasti, kas yra 93 00:05:00,800 --> 00:05:03,700 vyksta, kai jūs žiūrite ne Swift programos 94 00:05:03,700 --> 00:05:07,310 ir galės nulaužti savo kelią per jį per galutinį projektą. 95 00:05:07,310 --> 00:05:10,780 >> Dabar vienas iš geriausių būdų, kad galite gauti papildomos informacijos apie tai 96 00:05:10,780 --> 00:05:14,700 yra atvirai tik per Apple pateikė dokumentus dėl SWIFT. 97 00:05:14,700 --> 00:05:16,930 Yra API daug , kurie yra prieinami. 98 00:05:16,930 --> 00:05:21,170 Ir tai yra geras namų vieta Jums ieškoti, konkrečių dalykų, kad jūs 99 00:05:21,170 --> 00:05:23,020 norite daryti su API dalyvavo iOS. 100 00:05:23,020 --> 00:05:26,350 Jei norite naudoti fotoaparatą Pavyzdžiui, galite pradėti ieškoti čia 101 00:05:26,350 --> 00:05:32,540 ir taip pat naudoti "Google" ir kamino Perpildyta kaip tai darytumėte įprastai. 102 00:05:32,540 --> 00:05:36,670 >> Bet apie tai klausimai kol mes pereiti teisę? 103 00:05:36,670 --> 00:05:37,880 Gerai. 104 00:05:37,880 --> 00:05:38,700 Pereikime. 105 00:05:38,700 --> 00:05:42,620 >> Taigi, pirmiausia, turiu Taškų pavyzdžiui failus. 106 00:05:42,620 --> 00:05:46,040 Ir aš ruošiuosi pabandyti žingsnis per juos gana greitai. 107 00:05:46,040 --> 00:05:49,190 Tai Hello World failą Swift. 108 00:05:49,190 --> 00:05:51,050 Tai labai paprasta. 109 00:05:51,050 --> 00:05:54,360 Yra būdas daugiau komentarų nei yra tikrasis kodas. 110 00:05:54,360 --> 00:05:57,100 Atkreipkite dėmesį, tikrasis kodas yra pačioje apačioje eilutėje 14. 111 00:05:57,100 --> 00:05:57,980 Ji sako spausdinti. 112 00:05:57,980 --> 00:05:59,820 Ir tada tai skambinimo funkcijos. 113 00:05:59,820 --> 00:06:03,010 Mes artimųjų į tai eilutė vadinama Hello CS50. 114 00:06:03,010 --> 00:06:04,750 Atkreipkite dėmesį, kad ten nėra kabliataškiai. 115 00:06:04,750 --> 00:06:07,010 Atkreipkite dėmesį, kad nėra int main. 116 00:06:07,010 --> 00:06:10,392 Yra nė vienas iš cruft, kad mes turėjome su C. 117 00:06:10,392 --> 00:06:15,020 Kai mes naudojame Swift šiuo būdu, kuris yra tiesiog parašyta tekstinį failą 118 00:06:15,020 --> 00:06:18,340 ir saugomi mano kompiuteryje, tada Galiu rinkti ją ir paleisti jį. 119 00:06:18,340 --> 00:06:20,920 >> Atkreipkite dėmesį, kad čia aš nenaudojate CS50 IDE. 120 00:06:20,920 --> 00:06:24,460 Tai reiškia, kad aš esu veikia ir kad aš ant OS X, 121 00:06:24,460 --> 00:06:27,870 ir kad aš Xcode jau įdiegta šiame kompiuteryje Kad ši 122 00:06:27,870 --> 00:06:29,080 faktiškai funkcija. 123 00:06:29,080 --> 00:06:33,349 Bet tai tiesiog normalus tekstinis failas kad mes galime tada surinkti ir redaguoti. 124 00:06:33,349 --> 00:06:34,890 Taigi pažiūrėkime, kaip tai iš tiesų veikia. 125 00:06:34,890 --> 00:06:37,430 Ką daryti, jei norite kompiliuoti tai? 126 00:06:37,430 --> 00:06:40,450 swiftc 1.swift. 127 00:06:40,450 --> 00:06:42,960 Po metu ar du, tai pamatysite, kad mes turime dabar 128 00:06:42,960 --> 00:06:45,360 surinkti į failą pavadinimu 1 tai. 129 00:06:45,360 --> 00:06:51,090 Ir dabar mes turime spausdinami mūsų CS50, Mūsų Hello World taikymas o. 130 00:06:51,090 --> 00:06:54,690 >> Atkreipkite dėmesį, vienas kitas dalykas, kaip gerai yra tai, kad pagal nutylėjimą, 131 00:06:54,690 --> 00:07:00,090 mes neturėjome įvesti A / N spausdinti naują eilutę. 132 00:07:00,090 --> 00:07:05,315 Numatyta, kad spausdinimo funkcija Swift bus atspausdinti naują eilutę jums. 133 00:07:05,315 --> 00:07:09,284 Galite pereiti neprivaloma papildoma parametras pasakyti, to nedaryti. 134 00:07:09,284 --> 00:07:10,950 Tačiau "Google" daugiau informacijos apie tai. 135 00:07:10,950 --> 00:07:13,450 Pagal nutylėjimą, jis darys spausdinimo liniją. 136 00:07:13,450 --> 00:07:16,420 >> Visos teisės, todėl galime pereiti tada kai kurių kitų dalykų. 137 00:07:16,420 --> 00:07:18,620 Taigi, kaip mes galime iš tikrųjų apibrėžia kintamuosius? 138 00:07:18,620 --> 00:07:21,960 Mes galime padaryti, tai naudojantis vienas iš dviejų metodų. 139 00:07:21,960 --> 00:07:26,122 Ir vienas, kad aš noriu jums pasakyti apie pirmą tai tegul apibrėžimas. 140 00:07:26,122 --> 00:07:27,830 Ir tai yra svarbu, nes efektyviai 141 00:07:27,830 --> 00:07:30,240 ką mes darome yra apibrėžti konstantą. 142 00:07:30,240 --> 00:07:34,010 Mes ketiname sukurti kintamąjį, ar veikiau nuolatinis vadinamas vardas 143 00:07:34,010 --> 00:07:38,200 teikti jai kai kurie data-- šiuo atveju, eilutė Danas. 144 00:07:38,200 --> 00:07:40,630 Tačiau naudojant šį let raktažodžių, mes sakome, 145 00:07:40,630 --> 00:07:43,860 kad tai variable-- arba vėl constant-- vadinamas 146 00:07:43,860 --> 00:07:46,220 pavadinimas niekada būti pakeistas. 147 00:07:46,220 --> 00:07:50,120 Tai bus nekintamas per visą šios programos trukmė 148 00:07:50,120 --> 00:07:53,100 arba visoje trukmė kontekste 149 00:07:53,100 --> 00:07:55,390 kad kintamasis yra prieinama. 150 00:07:55,390 --> 00:08:00,096 >> Tai tikrai svarbu, kad kai turite kokių nors duomenų, kurie nėra 151 00:08:00,096 --> 00:08:02,970 ketina keisti savo programą, ir pamatysite keletą pavyzdžių įvairovė 152 00:08:02,970 --> 00:08:06,790 kai norime naudoti tegul, palyginti su kitų sintaksės, 153 00:08:06,790 --> 00:08:11,040 svarbu, kad jūs naudojate tegul kur įmanoma, nes šio notifikuotų 154 00:08:11,040 --> 00:08:13,740 kalba, kad jis yra nesiruošia būti pakeistas, 155 00:08:13,740 --> 00:08:16,590 ir ji iš tikrųjų gali atlikti iš optimizavimas daug 156 00:08:16,590 --> 00:08:19,560 siekiant pagerinti greitį ir Jūsų programos sauga. 157 00:08:19,560 --> 00:08:24,480 Ir saugai, aš turiu galvoje ne tegul jis avarijos su beprotiškų klaidų 158 00:08:24,480 --> 00:08:27,910 kad būtume pripratęs prie C 159 00:08:27,910 --> 00:08:32,460 >> Tada mes galime naudoti string interpoliacija hermetyzacji tai per eilutę. 160 00:08:32,460 --> 00:08:35,200 Taigi matome, šiame Spausdinti linija, spausdinti Sveiki, 161 00:08:35,200 --> 00:08:38,950 ir tada naudojant backslash atviras skliaustai, ir tada mano kintamojo vardas, 162 00:08:38,950 --> 00:08:41,809 šiuo atveju konstanta, uždaryti skliausteliuose. 163 00:08:41,809 --> 00:08:46,400 Aš iš esmės tada išleidimą turinys Šis kintamasis vadinamas vardu 164 00:08:46,400 --> 00:08:50,240 viduje eilutę ir tada spausdinti rezultatas ten. 165 00:08:50,240 --> 00:08:54,070 >> Yra vienas kitas pakeitimas į šį failą kuris yra tai, kad aš, pačiame viršuje, 166 00:08:54,070 --> 00:08:57,340 įdėti į Szulernia linija, kuri iš esmės tik nurodo, 167 00:08:57,340 --> 00:09:00,180 kad aš noriu naudoti Swift vertėjas, kuris 168 00:09:00,180 --> 00:09:04,190 reiškia, kad aš nebeturi kaupia šią konkrečią programą. 169 00:09:04,190 --> 00:09:06,567 Galiu tiesiog paleisti jį kaip savo scenarijų. 170 00:09:06,567 --> 00:09:09,400 Tačiau tai yra, šiuo atveju, už scenos yra kaupiami ir tada 171 00:09:09,400 --> 00:09:10,030 vadovauja. 172 00:09:10,030 --> 00:09:13,540 Tai tiesiog nematomas mums. 173 00:09:13,540 --> 00:09:15,880 >> Gerai, tad judėti. 174 00:09:15,880 --> 00:09:19,650 Taigi ten yra gudrybė tiek kad tik atsitiko anksčiau. 175 00:09:19,650 --> 00:09:23,230 Aš jums parodžiau, kad aš gali apibrėžti konstantą. 176 00:09:23,230 --> 00:09:25,490 Ir aš galėtų suteikti tam tikrus duomenis tai padaryti. 177 00:09:25,490 --> 00:09:29,240 Tačiau šiuo atveju, pastebėsite, kad aš ne iš tikrųjų nurodyti duomenų tipą 178 00:09:29,240 --> 00:09:29,820 , kad jis yra. 179 00:09:29,820 --> 00:09:32,780 Ir tai dėl to, kad kompiliatorius Swift gali 180 00:09:32,780 --> 00:09:36,910 išvadą, jog duomenų tipą tik remiantis dėl duomenų, kad aš įdėti į jį. 181 00:09:36,910 --> 00:09:41,760 Nes jis žino, kad vertinant tai kintamasis čia, šie duomenys teisė 182 00:09:41,760 --> 00:09:43,370 čia, tai žino, kad ji yra eilutė. 183 00:09:43,370 --> 00:09:48,690 Ir taip ši konstanta vardas todėl bus eilutę taip pat. 184 00:09:48,690 --> 00:09:52,730 >> Bet mes taip pat gali būti aiškiai apie tipą, kuris manimi 185 00:09:52,730 --> 00:09:55,790 mes ketiname naudoti konstantos arba kintamieji 186 00:09:55,790 --> 00:10:01,590 naudojant šį sintaksė instead-- tegul vardas dvitaškis Styginių lygus 187 00:10:01,590 --> 00:10:05,530 Danas, kuris šiuo atveju reiškia, kad mes esame ketina nustatyti pastovų vadinamas vardą. 188 00:10:05,530 --> 00:10:07,150 Tai bus tipo eilutę. 189 00:10:07,150 --> 00:10:10,550 Ir vertė bus Danas. 190 00:10:10,550 --> 00:10:12,550 Dabar kitas būdas, kad mes galime sukurti variables-- 191 00:10:12,550 --> 00:10:15,549 ir tai yra permainingas kintamieji, kurie tai reiškia, kad mes esame, iš tiesų, vyksta 192 00:10:15,549 --> 00:10:19,670 pakeisti jų turinį kažkada atsižvelgiant į aplinkybes trukmę 193 00:10:19,670 --> 00:10:23,890 kad kintamasis defined-- mes naudoti var raktažodį vietoj tegul. 194 00:10:23,890 --> 00:10:27,400 Bet vėl, pagal nutylėjimą, jei žinote, kad jums reikia manipuliuoti, kad duomenys, 195 00:10:27,400 --> 00:10:30,510 pabandykite naudoti tegul už efektyvumu. 196 00:10:30,510 --> 00:10:33,740 >> Šiuo atveju, galiu tada nurodyti duomenų tipą 197 00:10:33,740 --> 00:10:37,650 kad mes tikimės, kad viduje Šis naujas kintamasis vadinamas etiketė. 198 00:10:37,650 --> 00:10:38,800 Tai bus įtemptas. 199 00:10:38,800 --> 00:10:43,030 Ir mes ketiname tada Jungiant dvi eilutes kartu, styginių Sveiki, 200 00:10:43,030 --> 00:10:48,070 ir styginių atstovavo šiuo kintamasis, ar veikiau nuolatinis pavadinimą. 201 00:10:48,070 --> 00:10:50,660 >> Taigi tai yra gražus, nes tai yra šiek tiek PHP kaip ir kad mes 202 00:10:50,660 --> 00:10:52,250 labai lengvai simbolių eilučių sujungimas. 203 00:10:52,250 --> 00:10:56,350 Mes neturi automatiškai naudoti bet atminties valdymas rūšiuoti 204 00:10:56,350 --> 00:11:00,580 padidinti dydį ir daryti bet juokingas dalykų ten rūšiuoti. 205 00:11:00,580 --> 00:11:05,040 Tai veikia, kaip mes iš tikrųjų tikėtis. 206 00:11:05,040 --> 00:11:09,370 >> Gerai, kokių nors klausimų apie tai? 207 00:11:09,370 --> 00:11:12,520 >> Dabar kita priežastis, dėl kurios mes turime jums turėti galimybę 208 00:11:12,520 --> 00:11:15,490 gebėti apibrėžti, kas Duomenų tipas kintamųjų yra 209 00:11:15,490 --> 00:11:18,170 yra todėl, kad kartais mes darome ne nori inicijuoti kintamieji 210 00:11:18,170 --> 00:11:21,080 su kai tuo duomenimis taškas apibrėžimą. 211 00:11:21,080 --> 00:11:23,500 Taigi šiuo atveju, tarkim kad aš noriu pradėti įvedusi 212 00:11:23,500 --> 00:11:25,040 kai į A klasės knygą rūšių. 213 00:11:25,040 --> 00:11:27,530 Na aš žinoti, kad vienas iš kintamieji, kad aš noriu būti 214 00:11:27,530 --> 00:11:30,280 ketina būti permainingas laipsnio. 215 00:11:30,280 --> 00:11:33,010 Ir mes taip pat žinome, kad noriu, kad ji būtų sveikas. 216 00:11:33,010 --> 00:11:36,030 Bet gal mes dar turite, kad kokybės nėra. 217 00:11:36,030 --> 00:11:39,570 >> Swift, turite apibrėžti duomenų tipą 218 00:11:39,570 --> 00:11:44,000 , kuris yra susietas su kintamasis arba tegul pastovi 219 00:11:44,000 --> 00:11:47,840 Prieš jūs iš tikrųjų galite naudoti, kad kintamasis. 220 00:11:47,840 --> 00:11:51,170 Kadangi ji yra labai įvedėte, jūs turite susieti tipas 221 00:11:51,170 --> 00:11:52,890 šių kintamųjų. 222 00:11:52,890 --> 00:11:56,120 >> Taigi šiuo atveju, jei aš netinkamai inicijuoti pirmasis su kai verte, 223 00:11:56,120 --> 00:12:00,520 tada man reikia pasakyti, kas Swift Tikiuosi, kad duomenų tipas turi būti. 224 00:12:00,520 --> 00:12:02,650 Ir jis ketina likti ta pati duomenų tipas 225 00:12:02,650 --> 00:12:05,780 visoje šios programos istoriją. 226 00:12:05,780 --> 00:12:10,050 >> Dabar jums gali būti linkusios kuo greičiau Aš sukūriau šią klasę kintamasis 227 00:12:10,050 --> 00:12:13,530 ir tai yra sąlyga, sveikasis skaičius 100, o dabar, jei aš 228 00:12:13,530 --> 00:12:18,540 noriu pabandyti Jungiant eilutė su tuo sveikasis skaičius, 229 00:12:18,540 --> 00:12:21,610 gali būti linkusios vis dar naudoja kad simbolių eilučių sujungimas operatorius 230 00:12:21,610 --> 00:12:24,500 kaip mes padarėme tik keletą eilučių anksčiau. 231 00:12:24,500 --> 00:12:26,460 Bet deja, Tai bus tikrai ne 232 00:12:26,460 --> 00:12:29,270 dirbti, nes jūs esate iš esmės atlikti 233 00:12:29,270 --> 00:12:32,380 on dviejų skirtingų tipų operacija. 234 00:12:32,380 --> 00:12:36,856 >> Dabar tai yra labai skiriasi nuo kitos kalbos, kaip PHP, kurie tikrai 235 00:12:36,856 --> 00:12:38,480 loosey Kvailys su savo rūšies tipus. 236 00:12:38,480 --> 00:12:40,030 Jie tiesiog patinka, taip, kas, man tai nerūpi. 237 00:12:40,030 --> 00:12:42,710 Tiesiog duok man vieną tipą ir gal aš daryti teisingus dalykus. 238 00:12:42,710 --> 00:12:46,060 >> Šiuo atveju, Swift labai griežta apie tipus 239 00:12:46,060 --> 00:12:47,350 kad jums yra susijusios su. 240 00:12:47,350 --> 00:12:50,700 Tai sumuojant operatorius arba sujungimas operatorius 241 00:12:50,700 --> 00:12:54,400 turi esmės yra pora įvairių galimų alternatyvų. 242 00:12:54,400 --> 00:12:56,970 Jūs galite tai padaryti sumavimo su skaičiais, arba 243 00:12:56,970 --> 00:13:00,870 gali padaryti simbolių eilučių sujungimas ir galbūt kai kiti daiktai, taip pat. 244 00:13:00,870 --> 00:13:05,550 Bet jei tas operatorius nepripažįsta kas yra ant abiejų jo pusėje, 245 00:13:05,550 --> 00:13:10,452 ar veikiau tų funkcijų deriniui dviejų tipų, yra ne tai, ką ji laukiasi, 246 00:13:10,452 --> 00:13:11,910 tada jis ketina sukelti gedimą. 247 00:13:11,910 --> 00:13:16,690 >> Taigi šiuo atveju, ką tai reiškia turėti eilutę plius sveikasis skaičius? 248 00:13:16,690 --> 00:13:18,880 Na kontekste tai, mes tikriausiai nori 249 00:13:18,880 --> 00:13:21,990 padaryti simbolių eilučių sujungimas veikimą. 250 00:13:21,990 --> 00:13:26,420 Bet, žinoma, kompiuteris neturi tokios konteksto rūšiuoti. 251 00:13:26,420 --> 00:13:29,950 Ir todėl mes turime teikti papildoma informacija 252 00:13:29,950 --> 00:13:32,390 tegul jis žino, kas tai yra tai, kad mes norime daryti. 253 00:13:32,390 --> 00:13:36,860 >> Taigi, kitaip tariant, dėl to, kad SWIFT yra stipriai įvedėte 254 00:13:36,860 --> 00:13:39,520 reiškia, kad jūs turite padaryti šiek tiek papildomo darbo 255 00:13:39,520 --> 00:13:42,100 gauti jį eksploatuoti būdas, kad jūs norėtumėte. 256 00:13:42,100 --> 00:13:43,710 Bet, kaip rezultatas, jis yra saugesnis. 257 00:13:43,710 --> 00:13:46,290 Ir kai jūs turite imtis į šiuos tipus, 258 00:13:46,290 --> 00:13:49,300 dalykai tiesiog atvirai pradėti dirbti gana gerai. 259 00:13:49,300 --> 00:13:52,520 >> Taigi, šiuo atveju, mes tada būtų atlikti simbolių eilučių sujungimas 260 00:13:52,520 --> 00:13:56,040 , aiškiai liejimo į eilutę sveikasis skaičius 261 00:13:56,040 --> 00:13:58,490 vyniojimo šiame kapitalo S Styginių funkcija, 262 00:13:58,490 --> 00:14:03,510 ir tada naudojant simbolių eilučių sujungimas operatorius keisti mūsų etiketės kintamasis, 263 00:14:03,510 --> 00:14:06,280 ir tada atsispausdinti. 264 00:14:06,280 --> 00:14:08,420 >> Kol kas viskas gerai? 265 00:14:08,420 --> 00:14:12,020 Gerai, pereikime. 266 00:14:12,020 --> 00:14:16,300 >> Dabar yra įvairius duomenis tipai, mes galime naudoti SWIFT. 267 00:14:16,300 --> 00:14:21,620 Kaip jūs jau įprato, mes galime sukurti permainingas masyvo. 268 00:14:21,620 --> 00:14:26,140 Ir tai masyvas gali tik būti vienas tipą. 269 00:14:26,140 --> 00:14:30,360 >> Taigi šiuo atveju, mes ketiname sukurti a permainingas matricos sveikieji skaičiai, kurie 270 00:14:30,360 --> 00:14:34,800 mes vadiname pažymius, ir mes galėsime saugoti, kad šioje kvadratinį kronšteino 271 00:14:34,800 --> 00:14:38,650 formatas, kaip jūs įpratę į kitų kalbų įvairovė. 272 00:14:38,650 --> 00:14:41,150 Tačiau pastebite, kad čia mes apibrėžti keletą dalykų. 273 00:14:41,150 --> 00:14:45,350 rūšių yra permainingas variable-- mes ne naudoti tegul raktinį žodį. 274 00:14:45,350 --> 00:14:49,620 Taigi tai reiškia, kad mes galime tada pakeisti šio masyvo turinys. 275 00:14:49,620 --> 00:14:53,420 Tai tipo Array Žiniasklaida, ir mes galime pasakyti, kad 276 00:14:53,420 --> 00:14:56,260 remiantis šiais laužtiniuose skliaustuose čia. 277 00:14:56,260 --> 00:14:58,930 >> Dabar vienas iš gražumynai apie tai, kad mes 278 00:14:58,930 --> 00:15:02,310 turi prieigą prie daug Papildoma informacija 279 00:15:02,310 --> 00:15:07,110 apie masyvo tik naudojant kai paprastas taškas notacija. 280 00:15:07,110 --> 00:15:10,500 Taigi, pavyzdžiui, grades.count suteikia mums 281 00:15:10,500 --> 00:15:14,820 vienetų skaičius, kad egzistuoja, kad masyvas, kurį mes galime tada prieiti gana 282 00:15:14,820 --> 00:15:19,090 lengvai tiesiog naudojant tą dot notacijos. 283 00:15:19,090 --> 00:15:21,830 >> Jei norite pridėti papildomą elementus į šio masyvo, 284 00:15:21,830 --> 00:15:27,220 jūs negalite padaryti PHP stilius kur jūs tiesiog aiškiai apibrėžti, 285 00:15:27,220 --> 00:15:30,910 bent tam tikro indekso, kai vertė kad norite įterpti. 286 00:15:30,910 --> 00:15:37,210 Vietoj to, naudokite APPEND metodas masyvo tipo 287 00:15:37,210 --> 00:15:40,920 pridėti šį elementą, 95, prie šio sąrašo. 288 00:15:40,920 --> 00:15:45,990 >> Taigi, dabar šis masyvas turi šias contents-- 100, 0, 90, 85. 289 00:15:45,990 --> 00:15:49,270 Ir dabar mes pridėti 95, kad taip pat. 290 00:15:49,270 --> 00:15:51,830 >> Yra ir kitų būdų mes galime pridėti dalykų. 291 00:15:51,830 --> 00:15:55,030 Jūs iš tikrųjų galite naudoti sumuojant operatorius, 292 00:15:55,030 --> 00:15:59,200 kuris bus aiškinama kaip masyvas Papildyti operacija. 293 00:15:59,200 --> 00:16:04,680 Ir tada galite pridėti kitą masyvas, kurio turinys yra 70 ir 80, 294 00:16:04,680 --> 00:16:05,560 to masyvo. 295 00:16:05,560 --> 00:16:08,250 Taigi dabar mes turime turinys Šiame kintamajame 296 00:16:08,250 --> 00:16:17,220 grades-- 100, 0, 90, 85, 95, 70, ir 80. 297 00:16:17,220 --> 00:16:21,850 Tai tik gražus sintaksinis cukraus, kad SWIFT teikia mums. 298 00:16:21,850 --> 00:16:23,850 >> Taigi, jei norime, kad susumuotų rūšių, mes galbūt 299 00:16:23,850 --> 00:16:27,340 ketinate norite pakartoti per kiekvieną šio ciklo dienos. 300 00:16:27,340 --> 00:16:32,150 Ir mes turime, Swift, sąvoka iš už linijos, kaip būtų galima tikėtis. 301 00:16:32,150 --> 00:16:35,350 Bet taip, kad mes rodo intervalas yra šiek tiek kitoks. 302 00:16:35,350 --> 00:16:37,790 Taigi, šiuo atveju, siekiant Apibendrinant viską, mes 303 00:16:37,790 --> 00:16:40,650 ketina sukurti laikinas kintamasis vadinamas suma tam, kad mus 304 00:16:40,650 --> 00:16:42,580 išlaikyti šią skaičius. 305 00:16:42,580 --> 00:16:44,430 >> Ir pastebėsite mūsų For kilpa statybos čia. 306 00:16:44,430 --> 00:16:46,820 Dėl indekso 0 .. 00:16:51,480 308 00:16:51,480 --> 00:16:57,390 Taigi, tai statybos, 0 .. 00:17:01,860 sakydamas, kad mes ketiname sukurti iš sveikųjų skaičių intervale nuo 0 iki 310 00:17:01,860 --> 00:17:05,750 į bet išskyrus grades.count. 311 00:17:05,750 --> 00:17:09,577 Taigi, šis bus 0, 1, 2, 3, 4, 5, iki Tačiau daugelis vieną 312 00:17:09,577 --> 00:17:10,410 prieš grades.count. 313 00:17:10,410 --> 00:17:14,160 >> Taigi, šis yra kitoks, nei kaip mes būtų paprastai naudojami kilpų 314 00:17:14,160 --> 00:17:18,569 kur jūs turite šiek tiek indeksą kintamasis, nustatykite jį lygų 0, pirmiausia, 315 00:17:18,569 --> 00:17:25,480 ir tada integruoti, kad iki kai vertė mažesnė nei daiktų skaičius 316 00:17:25,480 --> 00:17:27,140 toje masyvo. 317 00:17:27,140 --> 00:17:29,820 >> Taigi yra modifikacija tai, iš tikrųjų, 318 00:17:29,820 --> 00:17:35,010 kuri leidžia mums lengvai nustatyti skirtingų tipų ribas. 319 00:17:35,010 --> 00:17:40,570 Jei pakeisite šį diapazoną trys taškeliai, 0 ... grade.count, 320 00:17:40,570 --> 00:17:45,120 Tai reiškia asortimentą 0 į grades.count imtinai, 321 00:17:45,120 --> 00:17:49,260 Tai reiškia, kad, kad skaičius yra taip pat tada, įtrauktų į tą intervalą. 322 00:17:49,260 --> 00:17:52,110 >> Bet tai labai patogu šių tiksliųjų dalykų, 323 00:17:52,110 --> 00:17:54,590 kai mes turime atlikti iteracijų per kilpa 324 00:17:54,590 --> 00:17:59,630 nes tie indeksai yra nulis indeksuojami, kaip matėme kitomis kalbomis 325 00:17:59,630 --> 00:18:02,360 taip pat. 326 00:18:02,360 --> 00:18:05,210 Bet apie tai klausimai kilpa? 327 00:18:05,210 --> 00:18:10,660 >> Taigi ten numanoma apibrėžimas Šio indekso kintamasis, 328 00:18:10,660 --> 00:18:14,350 kurių vertė prasideda "0" ir toliau kiekviename ciklo iteracijos 329 00:18:14,350 --> 00:18:17,950 padidinti 1 iki tol, kol taško kuris yra lygus grades.count, 330 00:18:17,950 --> 00:18:20,380 nes tuo metu, kilpa nutraukia. 331 00:18:20,380 --> 00:18:23,730 >> Atkreipkite dėmesį, kad mūsų eilutę interpoliacija čia 332 00:18:23,730 --> 00:18:26,910 mes iš tikrųjų galite atlikti keletą paprastų manipuliacijos į šias vertybes. 333 00:18:26,910 --> 00:18:31,230 Taigi indekso plius 1 tikrai bus atlikti tos vertės sumavimo 334 00:18:31,230 --> 00:18:34,780 nes indeksas yra šiuo atveju, yra sveikasis skaičius. 335 00:18:34,780 --> 00:18:37,810 Ir tuo momentu, ji bus tada bus paversta eilutę 336 00:18:37,810 --> 00:18:42,230 ir interpoliacijos į šią eilutę čia ir atspausdinti kaip galima būtų tikėtis. , 337 00:18:42,230 --> 00:18:44,520 >> Ir malonus dalykas apie masyvų čia 338 00:18:44,520 --> 00:18:50,730 kad mes taip pat galėtų turėti Gaunamos vertės ir nustatyti dydžiai 339 00:18:50,730 --> 00:18:54,080 naudojant kvadratinės laikiklis notacijos kaip mes matėme kitomis kalbomis, taip pat. 340 00:18:54,080 --> 00:18:57,130 341 00:18:57,130 --> 00:19:01,030 >> Visos teisės, todėl iš čia, mes dabar apskaičiuoti mūsų sumą visi mūsų klasėse. 342 00:19:01,030 --> 00:19:02,780 Dabar tarsi šalia logiškas žingsnis būtų 343 00:19:02,780 --> 00:19:07,580 padaryti skaidymo procedūrai rasti iš šių klasių vidurkis. 344 00:19:07,580 --> 00:19:10,150 Bet kažkas svarbaus čia vyksta, kuri 345 00:19:10,150 --> 00:19:15,020 yra tai, kad ši suma yra turbūt sveikasis skaičius. 346 00:19:15,020 --> 00:19:18,020 Bet mums reikia atlikti kai kurias Rūšiuoti dvigubo padalijimo. 347 00:19:18,020 --> 00:19:20,600 Ir tai bus labai svarbu, kai 348 00:19:20,600 --> 00:19:24,140 mes norime atlikti šią operaciją, nes tai, ką mes sakome, 349 00:19:24,140 --> 00:19:28,430 yra tai, kad mes turime iš tikrųjų atlikti padalijimo į du dviviečiai kambariai. 350 00:19:28,430 --> 00:19:31,370 Ir vėl, nes Swift labai stipriai įvedėte, 351 00:19:31,370 --> 00:19:36,760 turime aiškiai nustatyti visas elementus į dvejetų, kol mes iš tikrųjų 352 00:19:36,760 --> 00:19:38,300 atlikti šią operaciją. 353 00:19:38,300 --> 00:19:40,550 >> Taigi, kad galėtume atlikti dvigubą padalinys, 354 00:19:40,550 --> 00:19:43,730 tai nėra pakankama tik vienas tų objektų būti dviguba. 355 00:19:43,730 --> 00:19:46,400 Abu jie turi būti dvigubai, kad sparčiai 356 00:19:46,400 --> 00:19:50,860 būti tikri, kad tai yra tai, ką mes norime daryti. 357 00:19:50,860 --> 00:19:54,360 Taigi mes tada aiškiai Spausdinti medžiaga suma, kurią mes kompiuterinė aukščiau 358 00:19:54,360 --> 00:19:58,970 ir klasių iki Dubletų skaičius, taip tada atlikti šią operaciją ir parduotuvę 359 00:19:58,970 --> 00:20:02,390 kad į šią naują kintamąjį, ar veikiau Ši nauja konstanta vadinama vidutinė, 360 00:20:02,390 --> 00:20:06,810 kuris turės kokio tipo, galite įsivaizduoti? 361 00:20:06,810 --> 00:20:07,587 Dvivietis, taip. 362 00:20:07,587 --> 00:20:09,420 Taigi, šiuo atveju, mes neturi tai nurodyti 363 00:20:09,420 --> 00:20:13,450 nes ji gali būti kildinamas iš operacija, kokio tipo duomenų vidurkiu 364 00:20:13,450 --> 00:20:14,730 bus. 365 00:20:14,730 --> 00:20:19,025 Ir Swift paprastai gana geras apie galimybę daryti išvadą, tipus. 366 00:20:19,025 --> 00:20:22,116 367 00:20:22,116 --> 00:20:24,200 >> Norite pamatyti šį paleisti, ar aš galiu pereiti? 368 00:20:24,200 --> 00:20:25,640 Noriu nesustoti. 369 00:20:25,640 --> 00:20:28,130 Bet dėl ​​to klausimų? 370 00:20:28,130 --> 00:20:28,630 Didysis. 371 00:20:28,630 --> 00:20:31,160 372 00:20:31,160 --> 00:20:35,010 >> Dabar mes ketiname pradėti gauti geras stuff-- apibrėžiant funkcijas, 373 00:20:35,010 --> 00:20:39,090 ir kitų tipų, kurie yra pora unikalus Swift, kad jūs neturite 374 00:20:39,090 --> 00:20:41,620 matyti kitomis kalbomis iki šio taško, 375 00:20:41,620 --> 00:20:46,290 bet jie yra iš kitos, kalbos, kad jūs galite rasti vėliau. 376 00:20:46,290 --> 00:20:48,210 Taigi, pirmiausia, jei norite apibrėžti funkciją, 377 00:20:48,210 --> 00:20:52,170 Jūs apibrėžtumėte jį su funky žodis funkcija, ir tada funkcijos pavadinimas, 378 00:20:52,170 --> 00:20:56,710 Ir tada skliausteliuose, argumentai kad norite, kad funkcija priimti. 379 00:20:56,710 --> 00:21:00,280 Argumentai taip pat turi specify-- generally-- 380 00:21:00,280 --> 00:21:05,010 Taip pat būtina nurodyti duomenų tipą, kad jie yra, jeigu jie gali būti nustatyta. 381 00:21:05,010 --> 00:21:07,500 Ir mes matome, kad tiek Rizika ir tik šiek tiek. 382 00:21:07,500 --> 00:21:09,920 >> Taigi, šiuo atveju turime funkcija vadinama printGradeCount. 383 00:21:09,920 --> 00:21:12,840 Mes ketiname priimti variable-- ar veikiau šiuo atveju, 384 00:21:12,840 --> 00:21:14,450 constant-- vadinamas dienynams pildyti. 385 00:21:14,450 --> 00:21:18,517 Ir ji ketina būti įrašykite sveikųjų skaičių masyvas. 386 00:21:18,517 --> 00:21:20,600 Dabar kažkas tai tikrai svarbu čia 387 00:21:20,600 --> 00:21:21,849 kad aš noriu jums suprasti. 388 00:21:21,849 --> 00:21:27,560 Tai, kad pagal nutylėjimą, šie argumentai kad yra įėjimai į šią funkciją yra 389 00:21:27,560 --> 00:21:34,380 apibrėžti numanomą let raktažodį o tai reiškia, kad aš negaliu pakeisti šį 390 00:21:34,380 --> 00:21:39,850 dienynams pildyti kintamasis čia. 391 00:21:39,850 --> 00:21:43,360 Ir tai tarsi prasminga, nes jūs artimųjų duomenis. 392 00:21:43,360 --> 00:21:45,860 Ir jūs galbūt nenori turi būti pakeista iš pagal jus. 393 00:21:45,860 --> 00:21:50,800 Tai galima aiškiai paminėti kad tai yra kintamasis, nes juose 394 00:21:50,800 --> 00:21:52,070 var raktažodis čia. 395 00:21:52,070 --> 00:21:56,832 Bet tai yra kabliuko, kad mes pastebėjau žmonės daroma anksčiau 396 00:21:56,832 --> 00:21:59,790 yra tai, kad jie manė, kad ji vyksta kintamas, kai, iš tikrųjų, ją 397 00:21:59,790 --> 00:22:02,640 yra pastovus. 398 00:22:02,640 --> 00:22:07,340 >> Gerai, kad čia tada, šiuo atveju, mes ne nurodant bet kokį grąžinimo tipą. 399 00:22:07,340 --> 00:22:09,460 Mes jums parodysime, kaip tai padaryti kad vos akimirką. 400 00:22:09,460 --> 00:22:12,340 Tačiau pastebite, kad čia mes turime tik jei būklė paprasta. 401 00:22:12,340 --> 00:22:14,560 Jei dienynams pildyti yra tuščias, kuri šiuo atveju 402 00:22:14,560 --> 00:22:19,310 yra tik šio objekto sveikasis skaičius masyvas, tada mes atsispausdinti kažką. 403 00:22:19,310 --> 00:22:23,100 Priešingu atveju mes darome ką nors kita. 404 00:22:23,100 --> 00:22:25,000 >> Gana paprasta šiol manau. 405 00:22:25,000 --> 00:22:27,960 Bet mane sustabdyti, jei turite kokių nors klausimų. 406 00:22:27,960 --> 00:22:33,350 >> Dabar ši funkcija, vidutinis, taip pat atsižvelgiama kai kurie argumentai, ar veikiau vienas argumentas, 407 00:22:33,350 --> 00:22:37,507 kuris yra dienynams pildyti, ir šį kartą ketina grįžti dvigubą tipą. 408 00:22:37,507 --> 00:22:39,340 Nes jis yra skaičiavimo vidutinė ir tai 409 00:22:39,340 --> 00:22:45,010 vyksta iš tikrųjų grįžti, kad apskaičiuotos vidutinės skambinančio linija. 410 00:22:45,010 --> 00:22:50,070 >> Šiuo atveju, mes nustatančias grįžti tipo po rodykle. 411 00:22:50,070 --> 00:22:53,260 Ir tai gali jaustis rūšies keistai iš pradžių. 412 00:22:53,260 --> 00:22:55,610 Jūs įpratę nustatant grąžą 413 00:22:55,610 --> 00:22:57,720 tipo iki funkcija pavadinimu. 414 00:22:57,720 --> 00:23:00,310 Bet jeigu jūs manote, kad tai kalbant apie matematiką, 415 00:23:00,310 --> 00:23:03,320 pavyzdžiui, kai jūs turite matematika kurios apibrėžia funkciją, 416 00:23:03,320 --> 00:23:06,807 jūs turite funkcija, kai įėjimai, ir ji gamina išvestį. 417 00:23:06,807 --> 00:23:08,890 Ir tai būtent tai, ką tai turėtų supanašėti. 418 00:23:08,890 --> 00:23:12,460 Ir ten yra kitų kalbų pora kad turi panašią sintaksę, taip pat, 419 00:23:12,460 --> 00:23:15,674 bet tikriausiai nė, kad Jūs mačiau CS50. 420 00:23:15,674 --> 00:23:17,090 Bet vis tiek neturi būti painiojama juo. 421 00:23:17,090 --> 00:23:21,650 Rodyklė reiškia tai, kas vyksta turi būti grąžintas ir šiuo atveju. 422 00:23:21,650 --> 00:23:23,650 Gerai, taip, kaip mes ketiname apskaičiuoti šį vidurkį? 423 00:23:23,650 --> 00:23:25,649 Na, jei dienynams pildyti yra tuščias, gerai tada mes 424 00:23:25,649 --> 00:23:30,731 ketina grįžti 0, o gal protingas būdas gydyti tai. 425 00:23:30,731 --> 00:23:32,980 Aš nežinau, tegul ateina atgal į tą, kuris truputį. 426 00:23:32,980 --> 00:23:34,688 Tai gali ne iš tikrųjų būti protingas būdas 427 00:23:34,688 --> 00:23:38,310 apskaičiuoti IF vidurkis turime tuščią dienynams pildyti. 428 00:23:38,310 --> 00:23:41,260 >> Tada mes tiesiog atlikti mūsų sumavimo. 429 00:23:41,260 --> 00:23:43,900 Atkreipkite dėmesį, kad mes čia iš tikrųjų turi alternatyvų versija 430 00:23:43,900 --> 00:23:49,190 už kilpa, kuri leidžia mums kartoti per kiekvieną elementą masyvo 431 00:23:49,190 --> 00:23:53,630 ir įdėkite kiekvieną elementą į savo kintamąjį. 432 00:23:53,630 --> 00:23:56,200 Nurodydami už rangui dienynams pildyti, ką mes sakome, 433 00:23:56,200 --> 00:24:00,560 yra tai, kad mes ketiname netiesiogiai sukurti naują konstanta, vadinama 434 00:24:00,560 --> 00:24:05,180 Įvertinimas kad ketina atstovauti kiekvienas unikalus elementą dienynams pildyti 435 00:24:05,180 --> 00:24:06,769 kiekvieną kartą, už Ciklas. 436 00:24:06,769 --> 00:24:08,560 Taigi, pirmą kartą, kad tai paleisti, pažymys 437 00:24:08,560 --> 00:24:09,800 pirmasis elementą dienynams pildyti. 438 00:24:09,800 --> 00:24:12,300 Antrą kartą tai bus antrasis elementas, todėl toliau ir taip toliau 439 00:24:12,300 --> 00:24:15,970 iki dienynams pildyti turi išsisėmė elementų. 440 00:24:15,970 --> 00:24:20,390 Tada mes galėsime apibendrinti, kad Įvertinimas į mūsų sumavimo kintamojo 441 00:24:20,390 --> 00:24:22,570 ir grąžinti mūsų vidurkis kaip matėme anksčiau. 442 00:24:22,570 --> 00:24:25,670 443 00:24:25,670 --> 00:24:26,950 Gerai, kokių nors klausimų? 444 00:24:26,950 --> 00:24:27,699 Taip? 445 00:24:27,699 --> 00:24:28,990 Auditorija: Turiu du klausimus. 446 00:24:28,990 --> 00:24:33,586 Numeris vienas, hipotetiškai gali Paleidus sveikasis apie šį vieną? 447 00:24:33,586 --> 00:24:35,604 Neturi būti dvigubai, yra tai, kad informacija? 448 00:24:35,604 --> 00:24:37,520 DAN AMRMENDARIZ: Ar galite pakartokite šį klausimą? 449 00:24:37,520 --> 00:24:39,587 Auditorija: Ar galiu tai padaryti sveikas kaip vidurkiu? 450 00:24:39,587 --> 00:24:41,670 DAN AMRMENDARIZ: Ar galite padaryti sveikasis kaip vidurkis? 451 00:24:41,670 --> 00:24:45,015 Taigi grąžina sveikąjį skaičių Vidutinis vietoj dvigubas? 452 00:24:45,015 --> 00:24:48,204 >> Auditorija: Return-- jus turite, kad dabar toliau. 453 00:24:48,204 --> 00:24:49,870 DAN AMRMENDARIZ: Dešiniuoju čia grįžti 0.0? 454 00:24:49,870 --> 00:24:51,790 Auditorija: Taip, tik grįžti 0. 455 00:24:51,790 --> 00:24:56,590 Taigi, tai bus arba 80 arba 85, bet ne 85,2. 456 00:24:56,590 --> 00:24:59,465 >> DAN AMRMENDARIZ: Taigi šiuo atveju, todėl ten pora skirtingų būdų 457 00:24:59,465 --> 00:25:00,090 atsakyti, kad. 458 00:25:00,090 --> 00:25:02,760 Leiskite atsakyti juos tvarka. 459 00:25:02,760 --> 00:25:06,740 Taigi, jei aš tiesiog padaryti šią deklaraciją 0, taikomas 0 yra sveikas skaičius, vertė. 460 00:25:06,740 --> 00:25:09,730 Ir taip, kad sukels tipo klaida šiuo atveju 461 00:25:09,730 --> 00:25:13,210 nes ji laukiasi dvigubai bet paskui grįžta sveikasis skaičius. 462 00:25:13,210 --> 00:25:16,770 Jei aš noriu grįžti sveikasis skaičius, galiu. 463 00:25:16,770 --> 00:25:20,450 Galiu nustatyti grįžimo tipas į int, grįžti 0 čia 464 00:25:20,450 --> 00:25:22,047 o ne atlikti dvigubą padalinys. 465 00:25:22,047 --> 00:25:23,880 Bet tada mes būtume daro sveikasis padalinys. 466 00:25:23,880 --> 00:25:27,080 Ir taip mes tada nebūtų gauti Vidutinė kad mes galbūt tikėtis. 467 00:25:27,080 --> 00:25:29,210 Bet taip mes galime pakeisti kad tokiu būdu tipai. 468 00:25:29,210 --> 00:25:32,598 >> Auditorija: Ir antra, jus turėti vieną dvigubą ant viršaus. 469 00:25:32,598 --> 00:25:35,502 Bet apačioje, kai jūs padaryti grįžti Double Double, 470 00:25:35,502 --> 00:25:38,280 tai jau automatiškai grįžti Double formatą. 471 00:25:38,280 --> 00:25:42,278 Kodėl jūs vis dar reikia ją apibrėžti su rodykle ant viršaus su dvigule? 472 00:25:42,278 --> 00:25:45,010 >> DAN AMRMENDARIZ: Taigi tuo atveju,, tai yra dalis 473 00:25:45,010 --> 00:25:50,580 iš the-- taip pakartoti klausimą, nes tai išvestinis iš grąžos 474 00:25:50,580 --> 00:25:56,030 rūšys čia, kokio tipo tai iš tiesų yra, mes turime būti aiškiai su Swift 475 00:25:56,030 --> 00:25:59,970 apie tai, ką mes norime grįžti iš šios funkcijos 476 00:25:59,970 --> 00:26:02,690 taip, kad, kai jis atlieka tipo tikrinti, ji gali įsitikinti, 477 00:26:02,690 --> 00:26:05,850 kad tai, ką mes iš tikrųjų parašyta apačioje iš tikrųjų atitinka tai. 478 00:26:05,850 --> 00:26:10,225 Taigi, tai tarsi kaip patikrinti su savimi tarsi situaciją. 479 00:26:10,225 --> 00:26:11,050 Tačiau are-- 480 00:26:11,050 --> 00:26:12,560 >> Auditorija: [nesigirdi] arrow? 481 00:26:12,560 --> 00:26:19,490 >> DAN AMRMENDARIZ: Yra atvejų, kai mes galime nurodyti, kad mes galime netiesiogiai 482 00:26:19,490 --> 00:26:21,550 nustatyti grįžimo tipo. 483 00:26:21,550 --> 00:26:23,940 Tačiau šiuo atveju, aš neturiu manau, kad galėtų dirbti. 484 00:26:23,940 --> 00:26:26,190 Yra keletas kitų sintaksė kad mes pamatysime vėliau. 485 00:26:26,190 --> 00:26:30,320 486 00:26:30,320 --> 00:26:35,280 >> Visos teisės, todėl šis šaltinis kodas yra šiek tiek kitoks 487 00:26:35,280 --> 00:26:41,839 nes tai suvokia argumentus iš funkcija, kad mes skambina. 488 00:26:41,839 --> 00:26:44,130 Leiskite parodyti jums, kaip tai veikia kol mes iš tikrųjų pereiti 489 00:26:44,130 --> 00:26:48,050 kai įdomių dalykų kad vyksta Swift. 490 00:26:48,050 --> 00:26:51,870 >> Taigi, šiuo atveju, jei aš tiesiog paleisti ši kodas, pastebėsite, kad tai, ką jis daro 491 00:26:51,870 --> 00:26:54,900 is-- o tai rūšies man suteikia keistą klaidą. 492 00:26:54,900 --> 00:26:59,730 Man reikia praeiti jai porą sveikieji skaičiai, kaip komandinės eilutės argumentas. 493 00:26:59,730 --> 00:27:06,220 Taigi pažiūrėkime, 150 ir 80, ir paspauskite Enter išsiaiškinti, ką jis iš tikrųjų daro. 494 00:27:06,220 --> 00:27:09,890 Tai priimdamas kiekviena Šios vertės sveikieji skaičiai. 495 00:27:09,890 --> 00:27:12,040 Jis juos nusiunčia į dienynams pildyti. 496 00:27:12,040 --> 00:27:14,470 Ir tada jis atlieka kad vidutinis skaičiavimas 497 00:27:14,470 --> 00:27:16,650 ir išvedė, kad mes galime tikėtis. 498 00:27:16,650 --> 00:27:19,950 >> Tačiau akivaizdu, kad kažkas vyksta su šiuo atmesti kažką 499 00:27:19,950 --> 00:27:23,300 kažkas kaip sveikasis skaičius. 500 00:27:23,300 --> 00:27:27,300 Kaip jūs tikriausiai pamenate, nuo tada, kai mes buvome susijusius su komandų eilutės argumentai 501 00:27:27,300 --> 00:27:32,640 C ir kitomis kalbomis, pats pirmas 0 tojoje toje komandinės eilutės argumentas 502 00:27:32,640 --> 00:27:35,774 sąrašas yra komandą vardas kad mes iš tikrųjų įvykdytas. 503 00:27:35,774 --> 00:27:38,690 Taigi šiuo atveju, aš tiesiog kilpų per visus komandinės eilutės argumentus. 504 00:27:38,690 --> 00:27:41,650 Bet aš nesu daro kokią nors išgalvotas rūšiuoti Tikrinti praleisti daugiau, kad pirmasis. 505 00:27:41,650 --> 00:27:45,920 Aš tiesiog aiškiai ar netiesiogiai aš tikrinti, kuri iš šių tipų 506 00:27:45,920 --> 00:27:49,900 yra sveikieji skaičiai, prieš aš iš tikrųjų atlikti šį skaičiavimą. 507 00:27:49,900 --> 00:27:52,420 >> Ir tai iš esmės kas čia vyksta. 508 00:27:52,420 --> 00:27:55,860 Už kiekvieną argumentą Procesas argumentai, 509 00:27:55,860 --> 00:27:59,210 Aš ruošiuosi atlikti tam tikrą patikrinimą. 510 00:27:59,210 --> 00:28:01,970 Ir šiuo atveju, aš ruošiuosi pabandyti pirmą konvertuoti 511 00:28:01,970 --> 00:28:07,620 šis argumentas į sveikojo skaičiaus pagal Atliekant aiškų Spausdinti medžiaga, 512 00:28:07,620 --> 00:28:12,310 nes ji yra prie įėjimo, styginių o ne iš tikrųjų yra sveikasis skaičius. 513 00:28:12,310 --> 00:28:18,140 >> Bet tai kokios keistos sintaksę, jei tegul padala INT (argumentas). 514 00:28:18,140 --> 00:28:21,120 Ką iš tikrųjų vyksta čia yra labai 515 00:28:21,120 --> 00:28:24,390 svarbi jūsų naudojant SWIFT. 516 00:28:24,390 --> 00:28:27,610 Tai, naudojant tai, kas vadinamas neprivaloma tipo. 517 00:28:27,610 --> 00:28:34,790 >> Taigi ši funkcija, INT (argumentas), grįžta ne tik sveikasis skaičius, bet grąžą 518 00:28:34,790 --> 00:28:37,470 tai, kas vadinama pasirenkamas sveikasis skaičius. 519 00:28:37,470 --> 00:28:41,200 Ir todėl tai tarsi tipo ant tipo. 520 00:28:41,200 --> 00:28:45,900 Jūs galite rūšiuoti įsivaizduoti jį kaip jis grįžta kaip paketą. 521 00:28:45,900 --> 00:28:47,750 Ir kai atidarote kad paketas, tai tiek 522 00:28:47,750 --> 00:28:53,930 turi sveikasis skaičius, kuris yra rezultatas, arba jis turi absoliučiai nieko tai ne visi. 523 00:28:53,930 --> 00:28:58,140 Ir tai yra naudinga, kaip klaidų tikrinimas mechanizmas, nes šiuo atveju 524 00:28:58,140 --> 00:29:02,080 mes galime sužinoti, buvo šios konversijos tipo sėkminga? 525 00:29:02,080 --> 00:29:05,810 Jei ji buvo, tada jis yra iš esmės teks sveikasis skaičius viduje. 526 00:29:05,810 --> 00:29:08,750 Priešingu atveju jis ketina turėti kai vertė, kuri mes vadiname nulinis, 527 00:29:08,750 --> 00:29:10,920 atvaizduoja ne sveikasis skaičius ne visiems. 528 00:29:10,920 --> 00:29:13,270 Tai tikrai atstovas nieko. 529 00:29:13,270 --> 00:29:18,130 >> Ir todėl tai jei statyba leidžia mums išsivynioti šį paketą, 530 00:29:18,130 --> 00:29:19,850 kad neprivaloma privalomas. 531 00:29:19,850 --> 00:29:25,560 Ir jei mes galime išvystyti, kad pakuoja ir rasti sveikuosius viduje, 532 00:29:25,560 --> 00:29:27,720 kas tada mes sakome, čia yra, kad mes tada 533 00:29:27,720 --> 00:29:33,090 leisti, kad vertė turi būti nustatyta į ši konstanta vadinama laipsnio. 534 00:29:33,090 --> 00:29:36,590 Ir tai, jei pareiškimas dalis, viršuje dalis, jei pareiškimas 535 00:29:36,590 --> 00:29:40,390 veiks, nes tai Išimkite buvo sėkmingas. 536 00:29:40,390 --> 00:29:43,290 >> Jei jis tiesiog taip atsitinka, kad ten gal buvo klaida 537 00:29:43,290 --> 00:29:47,040 Šioje aiškaus tipo konvertavimo nuo eilutę sveikasis skaičius, o gal 538 00:29:47,040 --> 00:29:49,160 tai vertė ABC pvz. 539 00:29:49,160 --> 00:29:52,120 Ir tai tikrai nesiruošia konvertuoti į visumą. 540 00:29:52,120 --> 00:29:55,520 Tada jis grįš lygus nuliui, kuris yra ne sveikasis skaičius. 541 00:29:55,520 --> 00:29:57,570 Ir tai, jei pareiškimas gerai tada nepavyks. 542 00:29:57,570 --> 00:30:01,930 pažymys neegzistuoja, nes ji neturi sveikasis turinį. 543 00:30:01,930 --> 00:30:06,391 Ir tai bus paleisti šį kita blokas vietoj. 544 00:30:06,391 --> 00:30:06,890 Taip? 545 00:30:06,890 --> 00:30:09,652 >> Auditorija: Nėra yra N-I-L? 546 00:30:09,652 --> 00:30:11,110 DAN AMRMENDARIZ nulis yra N-I-L, taip. 547 00:30:11,110 --> 00:30:14,970 548 00:30:14,970 --> 00:30:20,310 >> Taigi, tai yra galbūt vieną iš sudėtingiausių dalykų apie SWIFT, 549 00:30:20,310 --> 00:30:23,690 ypač kai esate ant iOS app piktžolės 550 00:30:23,690 --> 00:30:27,442 ir jūs iš tikrųjų bando padaryti tam tikrą vystymąsi ten. 551 00:30:27,442 --> 00:30:29,400 Tai bus šaukiantį ne jums apie neprivaloma. 552 00:30:29,400 --> 00:30:33,050 Ji ketina būti užduoti jums klaustukai ir šauktukai. 553 00:30:33,050 --> 00:30:37,100 Bet kai jūs suprasite out-- jei jus skirti šiek tiek laiko suprasti, 554 00:30:37,100 --> 00:30:41,990 kas vyksta su pasirenkamais tipų, jums sutaupyti sau galvos daug 555 00:30:41,990 --> 00:30:46,040 kaip jūs bandote rašyti Swift programą. 556 00:30:46,040 --> 00:30:47,660 >> Tai iš tikrųjų yra labai galinga funkcija. 557 00:30:47,660 --> 00:30:49,826 Ir jūs tiesiog turite imtis savo žodį už jį dabar. 558 00:30:49,826 --> 00:30:52,620 Bet mes pamatysime šį statinį ir kai kurie kiti patiks 559 00:30:52,620 --> 00:30:56,740 kai kurie iš kitos kodo, kad mes jums parodysime, vos truputį. 560 00:30:56,740 --> 00:31:00,440 >> Ar yra kokių nors pradiniai klausimai čia? 561 00:31:00,440 --> 00:31:03,790 562 00:31:03,790 --> 00:31:08,690 Taigi svarbu, Takeaway yra tai, kad neprivaloma tipas yra tarsi metatype. 563 00:31:08,690 --> 00:31:12,500 Jis arba turi vertę, ir, jei jis nėra, tada jis 564 00:31:12,500 --> 00:31:18,110 galbūt turi tą vertę, susijusią su juo, ar jis neturi vertės galios, 565 00:31:18,110 --> 00:31:19,620 ir jis atstovauja nuliui. 566 00:31:19,620 --> 00:31:24,210 567 00:31:24,210 --> 00:31:28,870 To poilsio galbūt kaip galima tikėtis. 568 00:31:28,870 --> 00:31:32,900 >> Taigi leiskite kelią iki sunku dar kartą. 569 00:31:32,900 --> 00:31:37,070 Ir šį kartą, tegul pažvelgti į kai išvaizdą kitų duomenų tipų, kurie iš tikrųjų egzistuoja. 570 00:31:37,070 --> 00:31:41,290 Vienas iš jų yra žodynai, kuris yra labai panaši į Python žodynų. 571 00:31:41,290 --> 00:31:48,270 Tai šiek tiek panašus į maišos lentelę C. Tai yra iš esmės raktų kartografavimas 572 00:31:48,270 --> 00:31:49,820 kur raktai gali būti be įsipareigojimų. 573 00:31:49,820 --> 00:31:52,670 Ir kada jus ieškoti tuos raktus, šie raktai turės vertę. 574 00:31:52,670 --> 00:31:56,020 Taigi, tai ne visai masyvas, bet Vietoj to, labiau susijęs 575 00:31:56,020 --> 00:31:58,810 į hash žemėlapyje arba maišos lentelė. 576 00:31:58,810 --> 00:32:02,420 >> Pažiūrėkime, kaip tai turėtų dirbti, kol mes iš tikrųjų 577 00:32:02,420 --> 00:32:05,210 eiti į kodo pati. 578 00:32:05,210 --> 00:32:07,680 Jei aš tiesiog paleisti tai, nieko tikrai atsitiks. 579 00:32:07,680 --> 00:32:12,430 Jis pasakojo, kad aš laukiu kai kurie iš šių tipo parametrai. 580 00:32:12,430 --> 00:32:16,050 Taigi, aš ruošiuosi pateikti tai kai problema nustatyti vardai 581 00:32:16,050 --> 00:32:18,490 taip pset0, gal aš 100. 582 00:32:18,490 --> 00:32:20,790 Ir pset1, gavau 5. 583 00:32:20,790 --> 00:32:24,630 Ir tada į egzaminą, aš padarė tikrai gerai ir gavo 30. 584 00:32:24,630 --> 00:32:27,180 Ir Oi, aš paspauskite erdvę čia. 585 00:32:27,180 --> 00:32:30,940 >> Kai aš paspauskite Enter, jūs galite pamatyti jis atlieka tam tikrą skaičiavimo. 586 00:32:30,940 --> 00:32:33,740 Ji sako dienynams pildyti yra trys rūšių, pset1, pset0, egzaminas. 587 00:32:33,740 --> 00:32:36,120 Ir dienynams pildyti turi Šis specifinis vidurkis. 588 00:32:36,120 --> 00:32:38,370 Taigi dar kartą, mes dirbame su šiuo dienynams pildyti idėjos 589 00:32:38,370 --> 00:32:44,650 bet mes ketiname toliau Iteracja su mūsų funkcija sudėtingumo. 590 00:32:44,650 --> 00:32:47,650 >> Taigi tuo pradžios, mes tik ketina sukurti funkciją, kuri 591 00:32:47,650 --> 00:32:49,390 yra atsakingas už spausdinimo naudojimas. 592 00:32:49,390 --> 00:32:51,920 Ir ten tai išeiti funkcija, kuri tiesiog 593 00:32:51,920 --> 00:32:53,710 prievarta mesti paraišką. 594 00:32:53,710 --> 00:32:56,530 Tai nėra kažkas, kad Jūs naudojate iOS app. 595 00:32:56,530 --> 00:32:59,750 Tai tik, šiuo atveju, su komandinės eilutės argumentas. 596 00:32:59,750 --> 00:33:01,990 Kitas mes pradėsime juda link Xcode. 597 00:33:01,990 --> 00:33:07,760 Tačiau tai yra specifinė komandą linija stiliaus programa Swift. 598 00:33:07,760 --> 00:33:11,490 >> Paimkime pažvelgti į kai įdomių dalykų čia. 599 00:33:11,490 --> 00:33:15,150 Pažiūrėkime, tik pora įdomių dalykų paminėti galbūt 600 00:33:15,150 --> 00:33:19,930 yra tai, kad savo funkciją spausdinti pažymių skaičių, 601 00:33:19,930 --> 00:33:26,090 jums gali priminti, kad turėjau šį sąrašą iš items-- pset1, pset0 ir egzaminą. 602 00:33:26,090 --> 00:33:29,130 Jūs iš tikrųjų galite greitai ir lengvai tai padaryti 603 00:33:29,130 --> 00:33:34,490 imant dienynams pildyti, kuris yra žodynas kuris turi raktus ir reikšmes. 604 00:33:34,490 --> 00:33:38,730 Visus rakto yra per DOT raktai metodas čia 605 00:33:38,730 --> 00:33:43,180 ir tada naudoti šį joinWithSeparator, kuris bus tada visi raktai 606 00:33:43,180 --> 00:33:48,590 kad mes įvedėte, pset1-- arba Atsiprašome, pset0, pset1 ir exam-- 607 00:33:48,590 --> 00:33:53,030 ir Jungiant juos kartu naudojant kablelį ir vietos 608 00:33:53,030 --> 00:33:55,400 sukurti vieną ilgą eilutę. 609 00:33:55,400 --> 00:34:00,190 Ši prisijungti operacija yra tiesiog fenomenaliai naudinga įvairiuose kontekstuose. 610 00:34:00,190 --> 00:34:03,450 Ir todėl tai joinWithSeparator. 611 00:34:03,450 --> 00:34:06,939 >> Ir tai yra vienas dalykas, kad pasikeitė nuo Swift 1 Swift 2. 612 00:34:06,939 --> 00:34:08,730 Yra naudojami būti Python style-- jei esate 613 00:34:08,730 --> 00:34:13,219 susipažinęs su Python-- Python stilius prisijungti metodą stygos. 614 00:34:13,219 --> 00:34:15,699 Bet, kad nebėra Į Swift 2 atvejis. 615 00:34:15,699 --> 00:34:19,400 Jūs norite naudoti šią parinktį jei norite Jungiant žinutę daiktų masyvo 616 00:34:19,400 --> 00:34:23,380 kartu su eilutę. 617 00:34:23,380 --> 00:34:27,889 >> Taigi, galbūt tada mūsų diskusija vidutiniškai anksčiau, 618 00:34:27,889 --> 00:34:32,659 tai daro šiek tiek daugiau prasmės mums nustatyti vidutinį funkciją 619 00:34:32,659 --> 00:34:36,610 būti pasirinktinai dvigubą o ne tik aiškų dvigubai. 620 00:34:36,610 --> 00:34:39,239 Kadangi mes turėjome, kad neįprastas būklė, kai, 621 00:34:39,239 --> 00:34:41,550 Ką daryti, jei dienynams pildyti tikrųjų neturi per jį vertybes? 622 00:34:41,550 --> 00:34:44,280 Ką reikėtų vidutinė grąža? 623 00:34:44,280 --> 00:34:46,350 >> Na gal jums C būtų padaręs kažką 624 00:34:46,350 --> 00:34:50,040 kaip numatyta kontrolinio vertę, pavyzdžiui, 0.0, gal neigiamas skaičius, 625 00:34:50,040 --> 00:34:53,690 ar kažkas tiesiog atstovaujantis tai kad ten buvo keletas klaidų būklė 626 00:34:53,690 --> 00:34:57,910 ir jūs galbūt ne iš tikrųjų turėti gebėjimas apskaičiuoti, kad vidutinis. 627 00:34:57,910 --> 00:35:05,590 Na nurodymo grožis neprivaloma tipas būtų tai padaryti. 628 00:35:05,590 --> 00:35:09,540 Ir aš dabar sako, visus šiuos žodžius, bet Tai iš tikrųjų nenaudoja Papildomi reikmenys. 629 00:35:09,540 --> 00:35:12,970 Bet mes pamatysime, kad tik minučių, jei mes galime nustatyti vidutiniškai 630 00:35:12,970 --> 00:35:17,230 būti pasirinktinai duomenų tipas taip, kad jei ji iš tikrųjų grįžta tam tikrus duomenis, tada 631 00:35:17,230 --> 00:35:18,470 grįšime, kad duomenis. 632 00:35:18,470 --> 00:35:20,570 Priešingu atveju grįšime nulinis, sakydamas, kad tai 633 00:35:20,570 --> 00:35:22,200 neturi reikšmingos skaičiavimus. 634 00:35:22,200 --> 00:35:25,650 635 00:35:25,650 --> 00:35:28,570 >> Pereikime į ką nors kita. 636 00:35:28,570 --> 00:35:35,910 Taigi iš čia, mes jau žiūri Visi šie pavyzdžiai komandų eilutę. 637 00:35:35,910 --> 00:35:39,470 Bet iš tikrųjų, ką jūs ketinate būti susiję su tai Xcode. 638 00:35:39,470 --> 00:35:43,720 Ir vienas iš naudingų dalykų apie Xcode yra ir konkrečiai Swift, 639 00:35:43,720 --> 00:35:47,450 yra tai, kad mes turime tai dalykas vadinamas žaidimų aikštelė. 640 00:35:47,450 --> 00:35:51,470 Ir žaidimų aikštelė yra ne visi iOS app. 641 00:35:51,470 --> 00:35:54,751 Bet jis leidžia jums eksperimentuoti su Swift labai lengvai. 642 00:35:54,751 --> 00:35:56,000 Galite įvesti visus savo kodą. 643 00:35:56,000 --> 00:35:58,140 Tai gražiai sintaksė pabrėžė čia. 644 00:35:58,140 --> 00:36:01,600 Kai kuriate naują failą, jis paprašys Jums, jei norite sukurti žaidimų aikštelė. 645 00:36:01,600 --> 00:36:08,720 Bet Gražus dalykas, apie žaidimų aikštelėje yra tai, kad ant savo lango dešinėje, 646 00:36:08,720 --> 00:36:12,020 ji iš tikrųjų parodyti jums, išėjimas iš savo kodą. 647 00:36:12,020 --> 00:36:16,110 Taigi, jei aš slinkite žemyn, mes galime pamatyti, kas įvairių eilučių kodo išėjimo 648 00:36:16,110 --> 00:36:17,200 iš tikrųjų atsitinka būti. 649 00:36:17,200 --> 00:36:19,850 650 00:36:19,850 --> 00:36:26,790 >> Taigi šiuo atveju, mes ketiname pakeisti kryptimis truputį 651 00:36:26,790 --> 00:36:30,960 ir kalbėti apie tai, kas iš tikrųjų Svarbu Šiame aukšto lygio būdu 652 00:36:30,960 --> 00:36:34,020 kad SWIFT veikia, ir ji tai uždarymo idėja. 653 00:36:34,020 --> 00:36:36,960 Ir jūs tikriausiai nematė šio truputį JavaScript. 654 00:36:36,960 --> 00:36:40,770 Tiems iš jūsų, kad yra CS50, uždarymo 655 00:36:40,770 --> 00:36:47,240 yra labai populiarus, labai geras būdas tai padaryti aukšto lygio dalykų šiuolaikinių kalbų. 656 00:36:47,240 --> 00:36:50,270 Bet tai taip pat rūšies sunku wrap savo galvos aplink pirmą kartą. 657 00:36:50,270 --> 00:36:52,269 Taigi, jei jūs ieškote ši Pirmą kartą, kad viskas OK. 658 00:36:52,269 --> 00:36:56,740 Tiesiog pažvelgti į kodą ir pamatyti jei galite figure it out namuose. 659 00:36:56,740 --> 00:37:01,050 >> Taigi šiuo atveju, tarkime, kad mes norite sukurti rodiklių daug 660 00:37:01,050 --> 00:37:04,134 su tam tikru fiksuoto vertės. 661 00:37:04,134 --> 00:37:05,800 Taigi, šiuo atveju galiu sukurti funkciją. 662 00:37:05,800 --> 00:37:09,270 Aš ruošiuosi jį vadiname galia 2, kurio vienintelis tikslas gyvenime 663 00:37:09,270 --> 00:37:15,770 yra šiek tiek įvesties ir dvigubo tai, ir grąžinti šią vertę. 664 00:37:15,770 --> 00:37:21,210 Atkreipkite dėmesį, kad aš esu čia priimantis vieną duomenų rūšį. 665 00:37:21,210 --> 00:37:23,137 Tai bus kintamasis vadinamas x. 666 00:37:23,137 --> 00:37:23,970 Tai tipo dvigubai. 667 00:37:23,970 --> 00:37:26,190 Ir aš ruošiuosi grįžti dvigubą čia. 668 00:37:26,190 --> 00:37:29,100 Ir aš tik ketina tai padaryti labai, atvirai kalbant, gana 669 00:37:29,100 --> 00:37:32,650 naivus būdas padvigubinti šią vertę. 670 00:37:32,650 --> 00:37:35,600 Ir aš jums parodysiu, kodėl šis yra naudinga, tik sekundę. 671 00:37:35,600 --> 00:37:40,418 >> Atkreipkite dėmesį, kad čia mes turime šį diapazoną dar kartą. nors 1, dot 672 00:37:40,418 --> 00:37:44,130 dot dot, 2, tai reiškia, kad Šis ciklas bus paleisti du kartus. 673 00:37:44,130 --> 00:37:46,480 Bet tai yra fiktyvus kintamasis. 674 00:37:46,480 --> 00:37:49,650 Tai reiškia, kad aš nesu tikrai ketina naudojate, kad kintamasis niekur 675 00:37:49,650 --> 00:37:51,070 viduje šio kilpa. 676 00:37:51,070 --> 00:37:55,380 Aš tik noriu šią eilutę kodo paleisti du kartus, 677 00:37:55,380 --> 00:37:58,980 nereikia žinoti tos diapazone vertė. 678 00:37:58,980 --> 00:38:02,570 >> Taigi šiuo atveju Bėgu rezultatą kartus x du kartus, kuris iš esmės 679 00:38:02,570 --> 00:38:06,560 tai reiškia, kad aš suvedimas šią vertę. 680 00:38:06,560 --> 00:38:10,230 Ir tai atsitinka dirbti kaip galima būtų tikėtis. 681 00:38:10,230 --> 00:38:16,410 Galia 2, einančios vertė yra 2.0 suteikia mums 4 išėjimo. 682 00:38:16,410 --> 00:38:18,810 3.2 aktyvumas 10.24. 683 00:38:18,810 --> 00:38:22,660 >> Dabar mes galime padaryti panašų dalykas galios 3. 684 00:38:22,660 --> 00:38:25,330 Bet dabar pakeisti tik spektrą. 685 00:38:25,330 --> 00:38:28,840 Dėl fiktyvus kintamasis 1 per 3, dauginti 3 kartus, 686 00:38:28,840 --> 00:38:29,830 ir daryti tą patį. 687 00:38:29,830 --> 00:38:32,240 >> Taigi, tai gali jaustis šiek tiek nenatūralu. 688 00:38:32,240 --> 00:38:34,270 Bet yra svarbus dalykas čia, kurie 689 00:38:34,270 --> 00:38:37,770 yra tai, kad žiūri į tai dvi funkcijas, yra 690 00:38:37,770 --> 00:38:43,600 tik vienas dalykas, kad skirtingi, kuris yra ši reikšmė yra intervale. 691 00:38:43,600 --> 00:38:46,910 Visa kita apie šias dvi funkcijos, galia 3 ir galia 2, 692 00:38:46,910 --> 00:38:50,440 yra, iš tiesų, identiški, nes jie dirba tuo pačiu būdu. 693 00:38:50,440 --> 00:38:53,460 >> Taigi, šiuo metu, šiek tiek ŀadintuvas turėtų būti nenukryptų. 694 00:38:53,460 --> 00:38:56,200 Tikimės, kad tai, ką jūs sakote, Jūs žinote, tai jaučiasi šiek tiek 695 00:38:56,200 --> 00:38:59,250 kaip pastangų dubliavimo. 696 00:38:59,250 --> 00:39:02,950 Galbūt yra būdas, kad aš būtų galima įdėti į kapsulę visa tai 697 00:39:02,950 --> 00:39:06,630 ir suteikti funkciją arba sukurti funkciją, kuri 698 00:39:06,630 --> 00:39:11,550 daro būtent tai, ką aš noriu be kuriems tipo it out aiškiai. 699 00:39:11,550 --> 00:39:15,732 Ir tai, kas maitinimo iš uždarymo leidžia mums daryti. 700 00:39:15,732 --> 00:39:16,940 Taigi leiskite pažvelgti šią išvaizdą. 701 00:39:16,940 --> 00:39:18,700 Ir aš praleisti pora minučių apie tai, nes tai 702 00:39:18,700 --> 00:39:20,310 yra gana svarbus Swift. 703 00:39:20,310 --> 00:39:22,900 Mes tai visą laiką. 704 00:39:22,900 --> 00:39:24,550 Mes ketiname apibrėžti funkciją. 705 00:39:24,550 --> 00:39:26,380 Jis bus vadinamas powerOf. 706 00:39:26,380 --> 00:39:29,470 Ji ketina sutikti su parametras vadinamas y tipo Žiniasklaida. 707 00:39:29,470 --> 00:39:32,220 Bet pažvelkite grįžtamasis išvaizdą. 708 00:39:32,220 --> 00:39:38,730 Grįžtamoji tipas yra skliaustai, Dvivietis arrow dvigubai. 709 00:39:38,730 --> 00:39:43,370 Tai reiškia, kad šią funkciją, Ši funkcija powerOf, 710 00:39:43,370 --> 00:39:46,550 grįžta funkciją. 711 00:39:46,550 --> 00:39:50,845 Tai priimdamas dvigubas ir grąžinti dvigubą. 712 00:39:50,845 --> 00:39:53,720 Taigi, kad gali skambėti rūšies kvailai, bet tegul slinkite žemyn truputį 713 00:39:53,720 --> 00:39:55,060 ir pažiūrėkite, kas vyksta. 714 00:39:55,060 --> 00:39:57,910 Mes viduje Ši funkcija powerOf. 715 00:39:57,910 --> 00:40:00,760 Mes sukurti naują funkciją vadinamas exponentiator, 716 00:40:00,760 --> 00:40:02,900 bet tai nesvarbu, kas tai yra. 717 00:40:02,900 --> 00:40:06,410 >> Atkreipkite dėmesį, kad tai yra įvesties vertė x. 718 00:40:06,410 --> 00:40:09,910 Ir tai yra atsižvelgiant į dvigubą ir grąžinti dvigubą. 719 00:40:09,910 --> 00:40:16,320 Ir tai yra tas pats kodas, kad mes minėta pirmiau, išskyrus tai, kad nuo 2 vertės 720 00:40:16,320 --> 00:40:20,060 arba 3 vertė, tai viršutinė riba yra tame diapazone, 721 00:40:20,060 --> 00:40:23,210 buvo pakeista šis iš y vertė, kuri 722 00:40:23,210 --> 00:40:27,230 buvo pradinis parametras Mūsų powerOf funkcija. 723 00:40:27,230 --> 00:40:31,700 Ir šiuo metu, mes grįžti exponentiator. 724 00:40:31,700 --> 00:40:33,345 Mes grąžinimo funkciją. 725 00:40:33,345 --> 00:40:36,300 726 00:40:36,300 --> 00:40:39,550 >> Tai lyg nedidele tai pučia. 727 00:40:39,550 --> 00:40:44,360 Tačiau įsivaizduokime, kas atsitinka, kai aš vadinu šią funkciją powerOf 728 00:40:44,360 --> 00:40:47,610 ir perduoti į jį šiek tiek vertę kaip 2. 729 00:40:47,610 --> 00:40:50,020 Tai reiškia, kad yra Aš dabar turi vertę 730 00:40:50,020 --> 00:40:55,130 2 už y, o tai reiškia, kad šios vertės Y šiame exponentiator funkcija 731 00:40:55,130 --> 00:40:56,410 bus ta vertė 2. 732 00:40:56,410 --> 00:41:01,290 Bet aš grąžinant exponentiator funkcija. 733 00:41:01,290 --> 00:41:05,900 >> Taigi pastebėsite ką Swift sako man sukūrė ir šiuo atveju. 734 00:41:05,900 --> 00:41:10,550 tegul kvadratas yra apibrėžimas, tai funkcija, kuri priima dvigubas 735 00:41:10,550 --> 00:41:12,610 ir grąžina dvigubai. 736 00:41:12,610 --> 00:41:16,590 Aš sukūriau funkciją kad kvadratų kažką 737 00:41:16,590 --> 00:41:19,782 naudojant šį mechanizmą čia. 738 00:41:19,782 --> 00:41:22,490 Ir tikrai, kas vyksta yra kad ji grįžta šią funkciją 739 00:41:22,490 --> 00:41:26,390 exponentiator, tačiau ši vertė Y yra suvynioti viduje ji. 740 00:41:26,390 --> 00:41:31,080 Ir todėl dabar kiekvieną kartą aš naudoju tai kintamoji, ar ši konstanta vadinama 741 00:41:31,080 --> 00:41:35,180 kvadratas, tai jis vyksta elgtis kaip funkcija. 742 00:41:35,180 --> 00:41:39,960 Ir taip aš galiu tada skambinti, kad kintamasis kaip aš vadinčiau funkciją, 743 00:41:39,960 --> 00:41:43,830 ir perduoti į jį numerį, kaip šiuo atveju 3. 744 00:41:43,830 --> 00:41:45,910 Ir aš tada kvadratinių šią vertę. 745 00:41:45,910 --> 00:41:53,340 Taigi 3 kvadrato tada tapo 9, kaip matome čia. 746 00:41:53,340 --> 00:41:56,530 >> Tikrai kvailai, bet tai dabar leidžia man galimybę 747 00:41:56,530 --> 00:41:59,040 sukurti kitą powerOf funkcijas. 748 00:41:59,040 --> 00:42:03,680 Kaip aš galiu pasakyti, gerai, gerai, dabar aš noriu sukurti naują funkciją, powerOf (3), 749 00:42:03,680 --> 00:42:06,290 ir laikyti, kad į "A pastovus vadinamas kubas. 750 00:42:06,290 --> 00:42:10,220 Ir dabar kubas ketina būti atskiras funkcija, kad bus tada 751 00:42:10,220 --> 00:42:14,800 šiek tiek kaip pirkimo ir kubo reikšmę, vertė kaip matome apatinėje eilutėje 752 00:42:14,800 --> 00:42:16,420 čia. 753 00:42:16,420 --> 00:42:18,590 kubas 2 ketina sukelti 8. 754 00:42:18,590 --> 00:42:21,330 755 00:42:21,330 --> 00:42:22,680 >> Tikimės, kad gana tvarkingas dalykų. 756 00:42:22,680 --> 00:42:25,920 Jūs niekada anksčiau. 757 00:42:25,920 --> 00:42:29,990 Raginu jus pažvelgti į uždarymo ir ištirti tai šiek tiek daugiau. 758 00:42:29,990 --> 00:42:33,570 Tai tikrai galingas dalykų matome daug JavaScript ir kai kurių kitų kalbų. 759 00:42:33,570 --> 00:42:37,160 Tai tikrai svarbu suprasti API, taip pat 760 00:42:37,160 --> 00:42:38,620 kad mes gauti vos per sekundę. 761 00:42:38,620 --> 00:42:39,456 Taip? 762 00:42:39,456 --> 00:42:43,740 >> Auditorija: Kai jūs powerOf (2), skliausteliuose, tada 763 00:42:43,740 --> 00:42:48,764 kitas skliausteliuose, kitas input-- jūs iš esmės pakeisti kvadratu. 764 00:42:48,764 --> 00:42:50,930 DAN AMRMENDARIZ: Taigi ieškoti per paskutinę eilutę čia. 765 00:42:50,930 --> 00:42:55,930 Jis iš tikrųjų yra visiškai įmanoma padaryti, kad susiejant kaip jums siūloma. 766 00:42:55,930 --> 00:43:00,990 Taigi powerOf (5) reiškia, kad mes ketiname turėti 5 exponentiator čia. 767 00:43:00,990 --> 00:43:04,160 Taigi, šis iš esmės vyksta būti tas pats, kaip 4 penktą galia, 768 00:43:04,160 --> 00:43:07,200 nes mes sukūrėme exponentiating veikti penktą galia, 769 00:43:07,200 --> 00:43:09,920 ir mes artimųjų į kad veiktų vertę 4. 770 00:43:09,920 --> 00:43:12,619 Ir mes gauname tą vertę kad mes tikimės, 1024. 771 00:43:12,619 --> 00:43:14,785 Auditorija: Ir tai ne vardas, todėl lengviau 772 00:43:14,785 --> 00:43:16,570 skaityti, kvadratas nesvarbu. 773 00:43:16,570 --> 00:43:17,903 >> DAN AMRMENDARIZ: Teisė, tiksliai. 774 00:43:17,903 --> 00:43:21,120 Taigi, kol aš tiesiog įdėti jį į konstanta čia, kad 775 00:43:21,120 --> 00:43:23,808 kad ji buvo lengva naudoti šį pavadinimą. 776 00:43:23,808 --> 00:43:24,308 Taip? 777 00:43:24,308 --> 00:43:26,942 >> Auditorija: Šiame kontekste powerOf, tai dalis 778 00:43:26,942 --> 00:43:30,774 programavimo kalba o ne taip, kaip jums 779 00:43:30,774 --> 00:43:33,952 galvoti apie powerOf į [nesigirdi]? 780 00:43:33,952 --> 00:43:35,660 DAN AMRMENDARIZ: Taigi šiuo atveju, powerOf 781 00:43:35,660 --> 00:43:39,280 yra tiesiog pavadinimas funkcija, kad aš apibrėžta čia. 782 00:43:39,280 --> 00:43:41,801 Taigi tai nėra būdinga į pačios kalbos, 783 00:43:41,801 --> 00:43:43,550 bet vietoj to, kad tai tik funkcija, kuri turi 784 00:43:43,550 --> 00:43:45,628 tas pavadinimas, nes aš suteikti jai tą vardą. 785 00:43:45,628 --> 00:43:48,770 786 00:43:48,770 --> 00:43:51,920 Visi kiti klausimai? 787 00:43:51,920 --> 00:43:52,800 Gerai. 788 00:43:52,800 --> 00:43:54,750 >> Dabar tai yra puiku. 789 00:43:54,750 --> 00:43:58,170 Bet jūs nesiruošia pamatyti daug uždarymo funkcijas, 790 00:43:58,170 --> 00:44:03,440 yra, kaip tai, kur jūs apibrėžti viduje vieno funkcija, kitos funkcijos. 791 00:44:03,440 --> 00:44:04,320 Ir jūs galite tai padaryti. 792 00:44:04,320 --> 00:44:06,430 Bet tai tipo ne tikrai reikia, tiesa? 793 00:44:06,430 --> 00:44:09,189 Kaip kodėl aš apibrėžti šią funkcija vadinama exponentiator 794 00:44:09,189 --> 00:44:10,480 ir tada iš karto grąžinti. 795 00:44:10,480 --> 00:44:15,220 Kodėl aš negaliu iš karto grįžti šią funkciją? 796 00:44:15,220 --> 00:44:18,890 >> Ir iš tiesų, tai yra būtent Už koncepcijos idėja vadinama 797 00:44:18,890 --> 00:44:22,410 anoniminiai funkcijos, kur anoniminiai funkcijos ne iš tikrųjų 798 00:44:22,410 --> 00:44:25,270 turėti, nes jie vardas nereikia turėti vieną. 799 00:44:25,270 --> 00:44:28,700 Ir taip, šiuo atveju, 7b, mes galime rasti būtent tai, kad. 800 00:44:28,700 --> 00:44:31,470 Tai viskas tas pats kodas, daro lygiai tą patį, 801 00:44:31,470 --> 00:44:35,570 bet dabar mes pakeitėme jį šiek tiek, kad tai powerOf funkcija karto 802 00:44:35,570 --> 00:44:37,750 grąžina funkciją. 803 00:44:37,750 --> 00:44:44,150 Atkreipkite dėmesį, kad po grįžimo, ten atvira garbanotas laikiklis. 804 00:44:44,150 --> 00:44:46,410 Jis tikisi šį indėlį dvigubai. 805 00:44:46,410 --> 00:44:48,560 Jis tikisi, kad produkcija dvigubai. 806 00:44:48,560 --> 00:44:52,175 Ir tada Raktažodis atskiria patį kodą. 807 00:44:52,175 --> 00:44:53,550 Taigi tai yra anoniminis funkcija. 808 00:44:53,550 --> 00:44:57,030 Tai nėra iš tikrųjų turėti pavadinimą, o prieš tai buvo vadinama exponentiator. 809 00:44:57,030 --> 00:45:00,229 Bet, kaip matėme, tiesiog tikrai nesirėmė exponentiator 810 00:45:00,229 --> 00:45:01,270 ne tą funkciją. 811 00:45:01,270 --> 00:45:02,470 Taigi ji neturėjo reikšmės. 812 00:45:02,470 --> 00:45:06,300 Taigi, tai funkcija yra anoniminė taip vadinamas todėl, kad yra bevardis, 813 00:45:06,300 --> 00:45:09,107 bet jis vis dar naudojamas šio kodo kontekste. 814 00:45:09,107 --> 00:45:13,690 815 00:45:13,690 --> 00:45:16,079 >> Artimiausius porą tie, aš ketina toliau tikiuosi 816 00:45:16,079 --> 00:45:17,370 pučia jūsų protas truputį. 817 00:45:17,370 --> 00:45:20,410 Mes galime supaprastinti šį dar daugiau. 818 00:45:20,410 --> 00:45:24,490 Kadangi, kaip buvo Astutely minėta anksčiau, 819 00:45:24,490 --> 00:45:29,100 Galbūt mes iš tikrųjų žinome, kurias išvadą iš šio kodekso, ką 820 00:45:29,100 --> 00:45:31,750 Šio kodekso produkcija bus. 821 00:45:31,750 --> 00:45:38,180 Ir iš tikrųjų, šiuo anoniminio funkciją, mes iš tikrųjų gali daryti išvadą, duomenų tipus. 822 00:45:38,180 --> 00:45:41,650 >> Taigi tai viena, mes jau nebeturi reikia aiškiai apibrėžti 823 00:45:41,650 --> 00:45:44,850 duomenų tipas, kuris manimi yra įvesties ir išvesties iš šios funkcijos 824 00:45:44,850 --> 00:45:45,890 dėl daugelio priežasčių pora. 825 00:45:45,890 --> 00:45:51,390 Vienas iš jų yra, kad mes apibrėžti, iki ne prototipas dengiančiosios funkciją, 826 00:45:51,390 --> 00:45:55,770 kokio tipo duomenų anoniminę funkcija turi įėjimo ir išėjimo. 827 00:45:55,770 --> 00:45:57,900 Ir iš kitos, mes galime numanyti iš kodo 828 00:45:57,900 --> 00:46:01,930 žemyn, kad čia mes priimame įvesties tai tipo Double 829 00:46:01,930 --> 00:46:03,670 ir grąžinti dvigubą. 830 00:46:03,670 --> 00:46:07,890 >> Atkreipkite dėmesį, kad čia mes turime nėra aiškiai apibrėžė argumentų vardai 831 00:46:07,890 --> 00:46:11,220 kad ši funkcija yra priimti. 832 00:46:11,220 --> 00:46:16,180 Ir taip mes matome mes galime kreiptis į šie parametrai naudojant $ 0, 1 $, 833 00:46:16,180 --> 00:46:20,140 tt ir taip toliau, priklausomai nuo to, tos parametro numeris, naudojamas 834 00:46:20,140 --> 00:46:20,850 Šiame funkcija. 835 00:46:20,850 --> 00:46:23,370 836 00:46:23,370 --> 00:46:29,740 >> Tai yra kažkas, kad jūs ketinate pamatyti daug tai atvira garbanotas laikiklis 837 00:46:29,740 --> 00:46:32,797 apibrėžimas, po kurio $ 0, ir tada kai operacija, 838 00:46:32,797 --> 00:46:34,130 ir tada uždara garbanotas laikiklis. 839 00:46:34,130 --> 00:46:38,630 Tai yra anoniminis funkcija , kuri atlieka šią operaciją. 840 00:46:38,630 --> 00:46:42,940 Jis turi šį parametrą kur tai tipo yra numanomas. 841 00:46:42,940 --> 00:46:44,860 Tai pirmasis parametras yra $ 0. 842 00:46:44,860 --> 00:46:49,010 Ir kai operacija yra vyksta, kad $ 0. 843 00:46:49,010 --> 00:46:52,100 >> Auditorija: Taigi doleris ženklas tai parametras, iš esmės, 844 00:46:52,100 --> 00:46:53,429 ir 0 reiškia pirmasis? 845 00:46:53,429 --> 00:46:54,720 DAN Armendariz: Tai teisinga. 846 00:46:54,720 --> 00:46:59,100 Taigi doleris ženklas iš esmės reiškia, parametras, ir 0 reiškia pirmasis. 847 00:46:59,100 --> 00:47:02,760 Bet tai veikia būtent Tai atvejis, kai aš ne pavadintas 848 00:47:02,760 --> 00:47:07,940 Į mano anonimine funkcija argumentai. 849 00:47:07,940 --> 00:47:11,119 >> Auditorija: Ar Perl ar kažkas turi tai dolerio ženklas, doleris 0 ten? 850 00:47:11,119 --> 00:47:12,702 DAN Armendariz: Ar kuri, aš atsiprašau? 851 00:47:12,702 --> 00:47:15,360 Auditorija: Ar Perlas turi Ši doleris 0, doleris 1-- 852 00:47:15,360 --> 00:47:17,318 DAN Armendariz: aš nesu per susipažinę su Perl, 853 00:47:17,318 --> 00:47:21,340 bet kas apibrėžia kintamuosius PHP remiantis JAV dolerio ženklus. 854 00:47:21,340 --> 00:47:26,120 Ir ten gali būti kai kurios kalbos kad turi funkcijas kaip šis. 855 00:47:26,120 --> 00:47:28,240 Tiesą sakant, "Swift skolinasi daug funkcijų, pavyzdžiui, tai 856 00:47:28,240 --> 00:47:29,489 iš kitų kalbų aikštelė. 857 00:47:29,489 --> 00:47:32,380 Matome užuominų apie Python į jį. 858 00:47:32,380 --> 00:47:35,800 Šis tipo apibrėžimas Atrodo, kad iš OCaml. 859 00:47:35,800 --> 00:47:38,932 Ir mes turime tik visa krūva Daiktai iš daug skirtingų kalbų. 860 00:47:38,932 --> 00:47:40,640 Štai vienas gražus dalykų apie Swift 861 00:47:40,640 --> 00:47:43,390 yra tai, kad jis užima geriausias daug idėjos iš kalbų krūva 862 00:47:43,390 --> 00:47:47,229 ir shoehorns juos visus kartu į vieną super kalbą. 863 00:47:47,229 --> 00:47:49,520 Iš tiesų, jei leisite man toliau pučia savo mintis, 864 00:47:49,520 --> 00:47:51,000 todėl mes darome visa tai. 865 00:47:51,000 --> 00:47:56,690 Mes galime galbūt supaprastinti šį šiek tiek tiek realizuojant, kad, žinoma, 866 00:47:56,690 --> 00:48:02,120 Swift turi exponentiating funkcija pastatytas. 867 00:48:02,120 --> 00:48:04,660 Jei aš importuoti Darvinas, kuris yra tik biblioteka, 868 00:48:04,660 --> 00:48:09,680 funkcijos Ši funkcija vadinama pow dabar Galiu supaprastinti savo galią funkcija 869 00:48:09,680 --> 00:48:11,830 būti tokia. 870 00:48:11,830 --> 00:48:15,860 Ji yra bus grįžta Tai anoniminė funkcija. 871 00:48:15,860 --> 00:48:17,950 >> Bet pažiūrėkite, kaip paprasta tai dabar. 872 00:48:17,950 --> 00:48:22,780 Tai yra anoniminis funkcija, yra priimti tam tikrą duomenų tipą, 873 00:48:22,780 --> 00:48:26,600 ir tai bus vienas argumentai, konkrečiai, 874 00:48:26,600 --> 00:48:29,320 nuoroda ne $ 0 tai tipo dvigubai. 875 00:48:29,320 --> 00:48:32,680 Ji ketina grįžti tipo dvigubai. 876 00:48:32,680 --> 00:48:35,760 Bet Grizimas dabar numanomi. 877 00:48:35,760 --> 00:48:39,990 >> Ir tai yra tai, kad tiksli stilius yra labai, labai paplitę Swift, 878 00:48:39,990 --> 00:48:40,790 visur. 879 00:48:40,790 --> 00:48:43,190 Mes ketiname pamatyti šį visi Swift laikas. 880 00:48:43,190 --> 00:48:46,150 Taigi rodau visa tai Jums dėl šio sintaksė. 881 00:48:46,150 --> 00:48:49,070 Tai labai dažna matyti, tai reiškia, kad 882 00:48:49,070 --> 00:48:51,420 yra anoniminis funkcija kad atlieka 883 00:48:51,420 --> 00:48:54,640 kai šiais argumentais operacija. 884 00:48:54,640 --> 00:48:56,940 Ir ten yra savaimingas grąža. 885 00:48:56,940 --> 00:49:01,850 Taigi tai yra absoliučiai tas pats dalykas mums tai sakau, čia. 886 00:49:01,850 --> 00:49:05,730 887 00:49:05,730 --> 00:49:08,150 >> Kadangi šio Curly laikiklis yra funkcija, 888 00:49:08,150 --> 00:49:10,480 mes atlikti šią operaciją pirmą argumentas. 889 00:49:10,480 --> 00:49:12,170 Mes ketiname grįžti, kad. 890 00:49:12,170 --> 00:49:14,815 Bet tai išorinis grąža yra grįžimas kad visą funkciją, 891 00:49:14,815 --> 00:49:19,855 kad visa anoniminė funkcija kad mes ką tik sukūrėte. 892 00:49:19,855 --> 00:49:21,689 Visi kiti klausimai? 893 00:49:21,689 --> 00:49:23,980 Gerai, aš nežinau, jei Jūs vaikinai yra pasirengę už tai, 894 00:49:23,980 --> 00:49:27,455 bet mes galime eiti net crazier su Swift. 895 00:49:27,455 --> 00:49:28,560 Jūs pasiruošę? 896 00:49:28,560 --> 00:49:29,930 Gerai, tai yra didelis. 897 00:49:29,930 --> 00:49:35,310 >> Dabar mes iš tikrųjų turime galimybę kad, Swift, nes, kaip modulinė 898 00:49:35,310 --> 00:49:39,650 ir kaip protokolas pagrindu, jis yra, apibrėžti mūsų pačių Freaking operatorius. 899 00:49:39,650 --> 00:49:44,060 Pavyzdžiui, šiuo atveju, mes neturėjo operatorius exponentiation-- gerai, 900 00:49:44,060 --> 00:49:47,990 atlikti įgaliojimus kažką. 901 00:49:47,990 --> 00:49:53,632 Bet aš galiu, Swift, apibrėžti naujas veiklos vykdytojas, kuris daro būtent tai, kad. 902 00:49:53,632 --> 00:49:55,590 Taigi šiuo atveju nėra iš sintaksės krūva čia. 903 00:49:55,590 --> 00:49:59,980 Ir aš leis jums pažvelgti į jį namuose, kai jums pažvelgti į tai. 904 00:49:59,980 --> 00:50:06,890 Bet mes Nustatant šį infix operatorius **, kuris bus leidžia mums, 905 00:50:06,890 --> 00:50:09,840 apibrėžiant, kas tai funkcija ** iš tikrųjų 906 00:50:09,840 --> 00:50:15,010 nėra, priimti kairę ranką pusėje ir dešinėje pusėje, 907 00:50:15,010 --> 00:50:21,190 ir tada grįžti į šią eksponentų kairėje pusėje, kad dešinėje pusėje. 908 00:50:21,190 --> 00:50:24,850 >> Ir todėl dabar visi staiga I sukūrė naują skaitiklį. 909 00:50:24,850 --> 00:50:29,490 Taigi, 2 ** 3 reiškia 2 į trečiąjį galia. 910 00:50:29,490 --> 00:50:34,420 [Tai pučia GARSO] Tai pagal pati turi padaryti jums bus kaip, 911 00:50:34,420 --> 00:50:37,960 Gerai, varžtas C. Aš ruošiuosi Swift visą kelią. 912 00:50:37,960 --> 00:50:38,740 Tai puiku. 913 00:50:38,740 --> 00:50:40,140 Tai yra gana fantastiška. 914 00:50:40,140 --> 00:50:42,240 >> Nors tai yra puikus pavyzdys. 915 00:50:42,240 --> 00:50:45,570 Bet aš niekada kartą už Šio Pavyzdžiui tikrųjų 916 00:50:45,570 --> 00:50:46,800 apibrėžta mano paties operatoriaus. 917 00:50:46,800 --> 00:50:49,710 Bet vis tiek, tai rodo daug SWIFT galios 918 00:50:49,710 --> 00:50:54,050 ir kodėl tai yra iš tikrųjų tikrai labai kietas. 919 00:50:54,050 --> 00:50:55,832 Gerai, taip? 920 00:50:55,832 --> 00:50:57,790 Auditorija: Jei esate apibrėžti savo operatorių, 921 00:50:57,790 --> 00:51:02,940 kaip jūs žinote, jūs neturite netyčia pabandyti ir sukurti operatorių, kad yra 922 00:51:02,940 --> 00:51:06,040 kažkur C, kaip paslėpta kažkur Swift, 923 00:51:06,040 --> 00:51:12,210 kaip neaiškių vienas, kad jūs negali būti matęs. 924 00:51:12,210 --> 00:51:15,050 >> DAN Armendariz: Taigi, jei jūs bandote apibrėžti savo veiklos vykdytojams, 925 00:51:15,050 --> 00:51:20,970 ten yra apibrėžti rizikos vienas virš esamo operatoriaus. 926 00:51:20,970 --> 00:51:24,870 Tai eina į detalumu, kuris Aš nemanau, kad mes turime laiko eiti per. 927 00:51:24,870 --> 00:51:27,620 Bet, kad yra rizikos. 928 00:51:27,620 --> 00:51:31,320 Ir tai yra iš tikrųjų labai priežastis, kodėl Aš ne naudoti Žymeklis simbolį, kuris 929 00:51:31,320 --> 00:51:36,210 kai mes rašyti iš galios, mes paprastai naudoti 4 mažas žymekl 5 ar kažką 930 00:51:36,210 --> 00:51:40,560 kaip kad, tik tada, kai mes Gchatting bičiuliai ar whatever. 931 00:51:40,560 --> 00:51:43,660 Bet šiuo atveju, kad iš tikrųjų sukeltų susidūrimo. 932 00:51:43,660 --> 00:51:46,450 Ir aš taip vengiama jį tik todėl, Teko žinoti šiuo atveju 933 00:51:46,450 --> 00:51:50,430 kad būtų sukelti tą susidūrimo. 934 00:51:50,430 --> 00:51:52,270 >> Gerai. 935 00:51:52,270 --> 00:51:55,080 Dabar, deja, už paskutiniai septynias minutes, 936 00:51:55,080 --> 00:51:57,410 Turiu išlaikyti pūtimo jūsų mintys truputį. 937 00:51:57,410 --> 00:52:00,230 Taigi leiskite man parodyti jums kai kurie kiti daiktai, taip pat. 938 00:52:00,230 --> 00:52:03,710 >> Mes parodė jums šią idėją turintys šių anoniminius funkcijas, 939 00:52:03,710 --> 00:52:07,040 Šie uždarymo, kurios leidžia rūšies perduoti funkcijas aplink. 940 00:52:07,040 --> 00:52:08,100 Galite grąžinti juos. 941 00:52:08,100 --> 00:52:09,490 Jūs galite manipuliuoti jų. 942 00:52:09,490 --> 00:52:11,790 Jūs galite tai padaryti visus crazy stuff rūšių. 943 00:52:11,790 --> 00:52:14,850 >> Tačiau vienas kitas dalykas, kad atsitinka būti naudinga 944 00:52:14,850 --> 00:52:19,740 yra gebėjimas, o ne grąžinant šias funkcijas 945 00:52:19,740 --> 00:52:25,146 funkcija,, perduoti funkciją kaip parametras į kitą funkciją. 946 00:52:25,146 --> 00:52:30,430 Jums gali būti mąstymas ir kodėl Žemėje aš noriu padaryti kažką panašaus? 947 00:52:30,430 --> 00:52:33,660 >> Na, tarkim, kad aš noriu imtis šiam operatoriui, kad aš 948 00:52:33,660 --> 00:52:40,260 dirbo taip sunku sukurti ir taikyti ji prie skirtingų numerių krūva 949 00:52:40,260 --> 00:52:41,770 masyve. 950 00:52:41,770 --> 00:52:46,700 Taigi, šiuo atveju aš turėti tai, masyvo integers-- 1, 4, 7, 2, 5, 10, 56. 951 00:52:46,700 --> 00:52:48,080 Ir aš noriu padvigubinti juos visus. 952 00:52:48,080 --> 00:52:50,430 Taip, kad mes būtume paprastai tai padaryti yra tiesiog parašykite 953 00:52:50,430 --> 00:52:53,440 už kilpa paprasta, kad kartojasi per visą jų 954 00:52:53,440 --> 00:52:57,140 ir atlikti kažkokia kvadratinių operacija virš jų, 955 00:52:57,140 --> 00:53:02,700 įvedusi tuos naujas vertybes į naujas kintamasis, arba, tiksliau, naujas masyvas čia. 956 00:53:02,700 --> 00:53:07,370 Ir produkcijos vertė rezultatas yra tada visi tie masyvai, 957 00:53:07,370 --> 00:53:10,200 ar veikiau visus tuos elementai dabar kvadrato. 958 00:53:10,200 --> 00:53:12,680 >> Ir mes galime padaryti tą patį dalykas cubing ją, 959 00:53:12,680 --> 00:53:15,360 bet šiek tiek pavojaus varpas turėtų būti nenukryptų 960 00:53:15,360 --> 00:53:17,360 sakydamas, kad gal ten tam tikru būdu, kad mes 961 00:53:17,360 --> 00:53:19,860 būtų galima supaprastinti tai šiek tiek. 962 00:53:19,860 --> 00:53:21,130 Ir iš tiesų yra. 963 00:53:21,130 --> 00:53:25,320 Ką daryti, jei mes galime sukurti funkcija, kuri leidžia mums 964 00:53:25,320 --> 00:53:28,350 priimti, kaip plėšrūnas, funkcijos? 965 00:53:28,350 --> 00:53:30,350 Taigi, šiuo atveju, imtis pažvelgti į šių argumentų. 966 00:53:30,350 --> 00:53:33,220 Mes ketiname priimti dviviečiai sąrašą. 967 00:53:33,220 --> 00:53:35,030 Ir tada mes ketiname priimti funkciją 968 00:53:35,030 --> 00:53:40,990 į kintamąjį vadinamas f, kad vyksta imtis DVIGUBAI ir grąžinti dvigubai. 969 00:53:40,990 --> 00:53:43,320 Ir visa produkcija nuo visos šios funkcijos 970 00:53:43,320 --> 00:53:47,310 vadinamas Mapper ketina grįžti masyvą vadinamas dvigubai. 971 00:53:47,310 --> 00:53:52,380 >> Kas tai tada leiskite man padaryti, tai pakartoti per tą sąrašą 972 00:53:52,380 --> 00:53:56,350 ir daryti tą patį, bet dabar taikyti šią funkciją kiekvienas 973 00:53:56,350 --> 00:53:58,970 atskirų verčių tą sąrašą. 974 00:53:58,970 --> 00:54:00,750 Taigi, aš tikrai nežino, ką f. 975 00:54:00,750 --> 00:54:02,010 Nesvarbu man. 976 00:54:02,010 --> 00:54:06,530 Tačiau tol, kol ji trunka dvigubai, atlieka tam tikrą operaciją apie tai, 977 00:54:06,530 --> 00:54:08,640 ir tada grąžina Dvivietis, aš tada būtų 978 00:54:08,640 --> 00:54:13,415 sugebėti map šią funkciją visoje kiekvienas elementas sąraše. 979 00:54:13,415 --> 00:54:16,270 980 00:54:16,270 --> 00:54:20,930 >> Ir tai programavimo tipas vadinami aukštesnės eilės funkcijos, 981 00:54:20,930 --> 00:54:24,440 kur mes artimųjų funkcijas aplink, parametrų 982 00:54:24,440 --> 00:54:26,430 ir daro dalykus funkcijas. 983 00:54:26,430 --> 00:54:29,640 Tai tarsi atsižvelgiant į visus jų idėjos, kad mes sužinojome iš CS50 984 00:54:29,640 --> 00:54:31,390 ir į juos rūšiuoti iš į kitą lygį. 985 00:54:31,390 --> 00:54:34,140 Ir visa tai CS51 stilius dalykų. 986 00:54:34,140 --> 00:54:37,080 Ir todėl mes eiti į gylį daugiau klasių, pavyzdžiui, kad. 987 00:54:37,080 --> 00:54:38,930 >> Bet tai taip pat yra svarbu, nes čia mes 988 00:54:38,930 --> 00:54:42,010 pamatyti daug funkcijų kad yra naudojami Swift 989 00:54:42,010 --> 00:54:45,590 kad iš esmės nėra tai, kur mes turime 990 00:54:45,590 --> 00:54:48,300 Kai kurie skaičiai, kai skaičių masyvo. 991 00:54:48,300 --> 00:54:50,850 Mes ketiname perduoti, kad masyvas į mūsų mapper. 992 00:54:50,850 --> 00:54:55,770 Ir mes taip pat ketiname praeiti šiek funkciją, kuri 993 00:54:55,770 --> 00:54:57,950 mes jau apibrėžta čia. 994 00:54:57,950 --> 00:54:59,690 Tai bus aikštėje. 995 00:54:59,690 --> 00:55:02,220 Ir mes ketiname tada kvadratinių visų šių skaičių 996 00:55:02,220 --> 00:55:04,710 ir laikyti, kad į šio rezultato čia. 997 00:55:04,710 --> 00:55:07,280 998 00:55:07,280 --> 00:55:11,000 >> Taigi šiuo atveju mes apibrėžti mūsų savo funkcija vadinama mapper. 999 00:55:11,000 --> 00:55:15,370 Bet tai tiksli dalykas yra, Tiesą sakant, pastatytas į Swift. 1000 00:55:15,370 --> 00:55:18,960 Yra įvairių funkcijos vadinamas žemėlapis. 1001 00:55:18,960 --> 00:55:21,520 Yra žemėlapis funkcija, ten sumažinti funkciją, 1002 00:55:21,520 --> 00:55:25,630 ir ten filtro funkcija, kuris iš esmės taikomi funkcijas 1003 00:55:25,630 --> 00:55:30,782 į kiekvieną elementą į sąrašą pakeisti juos tam tikru būdu. 1004 00:55:30,782 --> 00:55:34,510 >> Auditorija: Taigi kadangi jūs transformuojant duomenis į kitą formatą 1005 00:55:34,510 --> 00:55:36,134 per function-- 1006 00:55:36,134 --> 00:55:37,050 DAN Armendariz: Teisė. 1007 00:55:37,050 --> 00:55:39,420 Taip, taip, kad funkcija kad mes priimti 1008 00:55:39,420 --> 00:55:41,790 keičia tam tikru būdu duomenis. 1009 00:55:41,790 --> 00:55:44,700 Šiuo atveju, mes buvo arba suvedimas, arba mes cubing ją, 1010 00:55:44,700 --> 00:55:50,060 ar tikrai, mes galime atlikti ne apie tai operacija ne visiems. 1011 00:55:50,060 --> 00:55:54,150 >> Bet leiskite man parodyti jums, tada kaip tai ketina ieškoti praktikoje. 1012 00:55:54,150 --> 00:55:56,681 Ir vėl, Bėgu tiek laiko. todėl aš nesu 1013 00:55:56,681 --> 00:55:59,430 bus galima eiti per visus iš kodo čia išsamiai. 1014 00:55:59,430 --> 00:56:00,721 Tačiau raginu jus tai padaryti. 1015 00:56:00,721 --> 00:56:03,850 Mes post it kuo greičiau greičiau po šio pokalbio. 1016 00:56:03,850 --> 00:56:07,610 >> Bet jei pažvelgsime į tai, manyti, kad mes turime numerių sąrašą, 1017 00:56:07,610 --> 00:56:10,260 skaičių masyvą šiame kintamos vadinami numeriai. 1018 00:56:10,260 --> 00:56:16,670 Tada mes norime tai atlikti filtras operacija tų skaičių. 1019 00:56:16,670 --> 00:56:19,730 Taigi filtras yra didesnis Kad funkcija, 1020 00:56:19,730 --> 00:56:24,660 priima masyvą ir taip pat veiktų. 1021 00:56:24,660 --> 00:56:28,760 Ir kiekvienas, kad elementas masyvas, jis atlieka šią funkciją. 1022 00:56:28,760 --> 00:56:31,990 >> Jei ši funkcija grąžina tiesa, ji išlaiko tą elementą. 1023 00:56:31,990 --> 00:56:36,100 Jei ši funkcija grąžina false, tai išmeta tą elementą. 1024 00:56:36,100 --> 00:56:40,480 Ir tada jis grąžina sąrašą , kuri yra tada sudaro visi 1025 00:56:40,480 --> 00:56:44,360 tų objektų, kurie buvo filtruojamas. 1026 00:56:44,360 --> 00:56:47,150 >> Taigi, dar tariant, tai yra tą pačią idėją, The dienynams pildyti. 1027 00:56:47,150 --> 00:56:50,800 Mes gali turėti pažymių įvairovė į šią vertę vadinamas skaičių. 1028 00:56:50,800 --> 00:56:55,590 Gali būti 100, o 70, ir 40, taip toliau ir taip toliau. 1029 00:56:55,590 --> 00:56:59,110 Ką tai filtras daro, yra pranešimas , kad tai yra, kad Syntaktyczny cukraus 1030 00:56:59,110 --> 00:57:01,310 anoniminių funkcija. 1031 00:57:01,310 --> 00:57:05,980 Tai yra anoniminis funkcija sakydamas kad parametras, kad aš priimdamas 1032 00:57:05,980 --> 00:57:09,690 bus, jei ji yra didesnis nei 70, 1033 00:57:09,690 --> 00:57:15,837 tai grįš tiesa, tai reiškia, kad kad elementas bus laikomas šio filtru. 1034 00:57:15,837 --> 00:57:17,920 Taigi būkime šiek tiek konkretesni apie tai. 1035 00:57:17,920 --> 00:57:25,760 Jeigu aš turiu šį skaičių masyvą ir jis susideda iš 100, 70, 40, ir, 1036 00:57:25,760 --> 00:57:29,730 Aš atlikti šį filtrą operacija ant kiekvieno vienas iš tų. 1037 00:57:29,730 --> 00:57:33,270 Taigi, kad pirmasis tai 100 vertė. 1038 00:57:33,270 --> 00:57:36,770 100 didesnis negu arba lygus 70 Tiesa, kuri 1039 00:57:36,770 --> 00:57:41,950 tai reiškia, kad 100 yra laikomi Ši nauja kopija šiame masyve. 1040 00:57:41,950 --> 00:57:44,290 70 taip pat praeina. 1041 00:57:44,290 --> 00:57:46,020 Tačiau 40 nėra. 1042 00:57:46,020 --> 00:57:54,290 Taigi, kas yra grąžinami passingCount yra elementų 100 ir masyvo 70-- 1043 00:57:54,290 --> 00:57:57,410 100, kablelis, 70. 1044 00:57:57,410 --> 00:57:59,870 Tai buvo tik du elementus, kurie buvo laikomi. 1045 00:57:59,870 --> 00:58:03,740 Ir taip priežastis, kodėl aš greitai išgyveno Dėl šių aukštos tvarka rūšies daug 1046 00:58:03,740 --> 00:58:08,680 viskas yra, nes tai, kad bendra dalykas, kad jūs pamatysite Swift gana 1047 00:58:08,680 --> 00:58:16,810 dažnai atlieka tam tikrą veiklą Naudojant šią anoniminę funkcija sintaksė. 1048 00:58:16,810 --> 00:58:18,450 >> Yra keletas įdomių dalykų. 1049 00:58:18,450 --> 00:58:24,730 Jungikliai yra tikrai galinga Swift, Aš turiu galvoje tik kaip crazy, crazy galingas. 1050 00:58:24,730 --> 00:58:28,250 Jūs galite naudoti jungiklį ir jūs iš tikrųjų galite juos taikyti 1051 00:58:28,250 --> 00:58:33,160 į intervalus, kurie yra natūra kvailai, ir tai išgalvotas stuff like that. 1052 00:58:33,160 --> 00:58:37,540 >> Tačiau per pastaruosius keletą minučių, Noriu praleisti į priekį gana toli 1053 00:58:37,540 --> 00:58:46,940 ir parodyti jums konkretų pavyzdį, kaip mes galime sukurti iOS app naudojant SWIFT. 1054 00:58:46,940 --> 00:58:49,040 Taigi, kai jūs darote tai, jūs turite imtis 1055 00:58:49,040 --> 00:58:51,990 a look at-- Apple dokumentus, jie 1056 00:58:51,990 --> 00:58:56,084 turi tikrai gerų samouczków daug kurti savo pirmąją paraišką. 1057 00:58:56,084 --> 00:58:58,250 Ir raginu jus padaryti kad, nes jie jus 1058 00:58:58,250 --> 00:59:04,110 per visus Kokių žingsnių tiksliai spauskite ant sukurti iOS taikymą. 1059 00:59:04,110 --> 00:59:07,290 >> Bet čia mes turime šį iOS app. 1060 00:59:07,290 --> 00:59:10,960 Ir tai yra gana paprasta programa tikrai. 1061 00:59:10,960 --> 00:59:13,840 Jei aš paleisti tai, leiskite man parodyti Jums, kaip jis atrodo. 1062 00:59:13,840 --> 00:59:19,480 Visa tai iš esmės daro tai išsitraukia iš interneto JSON failų 1063 00:59:19,480 --> 00:59:22,300 kad aš saugomi serveryje. 1064 00:59:22,300 --> 00:59:26,310 Ir tai JSON failą apibrėžia vaizdus, ​​kurie leidžia 1065 00:59:26,310 --> 00:59:31,680 man tada ciklas per, ant mano App, vaizdus iš savo žiniatinklio serveryje. 1066 00:59:31,680 --> 00:59:32,880 >> Taigi turiu čia getNextImage. 1067 00:59:32,880 --> 00:59:37,100 Jis įkelia paveikslėlį iš interneto, ir tada rodo jį ekrane. 1068 00:59:37,100 --> 00:59:38,200 >> Taigi, tai gana paprasta. 1069 00:59:38,200 --> 00:59:41,550 Bet tikslas čia yra parodyti jums, kaip mes galime sujungti dalykų 1070 00:59:41,550 --> 00:59:47,820 nuo pastarųjų kelių savaičių CS50 į faktinį iOS taikymo. 1071 00:59:47,820 --> 00:59:53,140 Kitaip tariant, galbūt vienas iš dalykų, kad jūs norite daryti 1072 00:59:53,140 --> 00:59:56,340 yra turėti iOS programą, gali traukti duomenis iš interneto 1073 00:59:56,340 --> 00:59:59,070 ir parodyti vartotojui tam tikrą informaciją. 1074 00:59:59,070 --> 01:00:03,130 Tai yra visiškai taškas Šio kodo čia. 1075 01:00:03,130 --> 01:00:07,890 >> Taigi ten daug galima pasakyti apie kaip padaryti realią iOS plėtrą. 1076 01:00:07,890 --> 01:00:12,860 Yra crazy sintaksė daug kad mes nematėme gana dar 1077 01:00:12,860 --> 01:00:15,580 kaip klasės, ką klasė tikrųjų yra. 1078 01:00:15,580 --> 01:00:19,470 Mes daugiausia gali ignoruoti kad šiuo metu viduryje. 1079 01:00:19,470 --> 01:00:23,250 >> Tačiau pastebite, kad mes esančius per tai daug dalykų įvairovė 1080 01:00:23,250 --> 01:00:27,720 kad mes jau matėme, kaip funkcijos, kurios turi specialius pavadinimus. 1081 01:00:27,720 --> 01:00:32,650 Ir kai mes suteikiame tiems veikia teisingus pavadinimus 1082 01:00:32,650 --> 01:00:36,530 kad tikimasi, kad iki iOS, iš tikrųjų Tai jaučiasi šiek tiek magiška. 1083 01:00:36,530 --> 01:00:40,300 Bet kai jūs sukuriate "iOS programa, ten 1084 01:00:40,300 --> 01:00:47,590 yra specifinė funkcija pavadinimai, vadinami pats telefonas 1085 01:00:47,590 --> 01:00:52,440 Kadangi ieškinys yra pakrovimo pabandyti sukurti procesą, kad iš tikrųjų 1086 01:00:52,440 --> 01:00:54,787 veikia jūsų paraišką. 1087 01:00:54,787 --> 01:00:58,120 Taigi dar kartą, ten daug dalykų, kad aš turi Koloryzować čia tam, kad mus 1088 01:00:58,120 --> 01:01:00,570 apie tai kalbėti konkrečiau. 1089 01:01:00,570 --> 01:01:06,050 Tačiau raginu jus pažvelgti į galbūt kitas iOS seminaras, bet taip pat kai 1090 01:01:06,050 --> 01:01:09,290 samouczków internete, kuri padaryti daug geriau apibūdinti 1091 01:01:09,290 --> 01:01:11,030 konkrečią informaciją. 1092 01:01:11,030 --> 01:01:15,760 >> Bet mes galime pamatyti keletą dalykų, kad įdomūs kodas čia. 1093 01:01:15,760 --> 01:01:17,950 Atkreipkite dėmesį, kad mes turime, jei ataskaitose. 1094 01:01:17,950 --> 01:01:20,400 Beje, vienas svarbus dalykas, apie if 1095 01:01:20,400 --> 01:01:24,860 yra tai, kad aplink skliausteliuose Bulio logikos išraiška yra neprivalomas. 1096 01:01:24,860 --> 01:01:30,800 Bet garbanotas petnešos nėra privaloma, nesvarbu, kaip mažai, ar daug eilučių kodo 1097 01:01:30,800 --> 01:01:32,360 turite if. 1098 01:01:32,360 --> 01:01:38,670 Jūs negalite turėti, jei ataskaitose be klamrami Swift. 1099 01:01:38,670 --> 01:01:41,000 >> Ir tai yra gerai, tarsi kvailas. 1100 01:01:41,000 --> 01:01:43,910 Tačiau yra istorinių priežasčių, kad. 1101 01:01:43,910 --> 01:01:46,180 Tai turėtų išgelbėti jus nuo savęs. 1102 01:01:46,180 --> 01:01:49,899 Kaip tai Pavyzdžiui, jūs negalite pašalinti vingiuotus skliaustus aplink, kad 1103 01:01:49,899 --> 01:01:50,440 jei pareiškimas. 1104 01:01:50,440 --> 01:01:52,730 Tie, kurie iš tiesų reikia. 1105 01:01:52,730 --> 01:01:54,480 Taigi raginu jus Pažvelkite į šį išvaizdą. 1106 01:01:54,480 --> 01:01:56,230 Bet yra dar vienas statyti, kad aš noriu 1107 01:01:56,230 --> 01:02:02,640 parodyti jums apie Swift, kad yra nauja Swift 2.0 palyginti 1108 01:02:02,640 --> 01:02:08,460 kad senesnės versijos Swift, kuri yra tokia. 1109 01:02:08,460 --> 01:02:11,620 Pažiūrėkime, kur aš įdėti jį čia? 1110 01:02:11,620 --> 01:02:16,630 >> Taigi šią funkciją vadinama fetchJSON, ši funkcija 1111 01:02:16,630 --> 01:02:23,450 yra atsakingas už traukimo, kad JSON failą iš URL, kuris tiesiog taip atsitinka, 1112 01:02:23,450 --> 01:02:26,310 būti paleistas ant mano CS50 IDE. 1113 01:02:26,310 --> 01:02:28,580 Aš ką tik pradėjo Apache, įdėti mano JSON failą ten, 1114 01:02:28,580 --> 01:02:32,110 ir aš galėtų tada patraukite, kad duomenis iš interneto, naudojant 1115 01:02:32,110 --> 01:02:36,430 Ši funkcija ir tai URL , kuri pateikiama telefonu. 1116 01:02:36,430 --> 01:02:40,490 Tai, kurias teikia Biblioteka, kad jūs naudojate, kai 1117 01:02:40,490 --> 01:02:43,140 darote kai iOS app plėtra. 1118 01:02:43,140 --> 01:02:49,690 >> Atkreipkite dėmesį, kad čia yra šis neįprastas sintaksinis konstruktas vadinama apsauga. 1119 01:02:49,690 --> 01:02:53,530 Ir tikrai visa tai yra SWIFT yra patikrinti būdas 1120 01:02:53,530 --> 01:02:56,870 kad kai kurie dalykai turi buvo įvykdyti prieš jus 1121 01:02:56,870 --> 01:03:00,000 toliau su funkcija poilsio. 1122 01:03:00,000 --> 01:03:04,260 Taigi, aš gali turėti, naudojant Šis pasirenkamas tipas, 1123 01:03:04,260 --> 01:03:10,530 Galėčiau rasiu pagal URL naudojant šią funkciją NSURL 1124 01:03:10,530 --> 01:03:16,640 ir saugoti, kad į URL pastovus, ir, antra, patikrinant 1125 01:03:16,640 --> 01:03:20,820 pamatyti, jei adresas buvo nulinė, nes tai ketino grįžti neprivaloma tipą. 1126 01:03:20,820 --> 01:03:25,660 Ir jei ji buvo nulinė, tada aš spausdinti klaidą ir tada grįžti. 1127 01:03:25,660 --> 01:03:29,970 >> Bet vietoj to, ką Guard leidžia mums daryti tai, kad labai dalykas, 1128 01:03:29,970 --> 01:03:34,550 bet ir užtikrinti, kad jis yra iš tikrųjų tas atvejis, kad URL 1129 01:03:34,550 --> 01:03:38,020 buvo tinkamai nustatyti NSURL. 1130 01:03:38,020 --> 01:03:41,810 Ir, jei jis yra, jis praleidžia daugiau nei tai, ir tai 1131 01:03:41,810 --> 01:03:46,110 leis jums pradėti su URL buvo deramai apibrėžti. 1132 01:03:46,110 --> 01:03:48,830 Bet jei jis yra tas atvejis, kad URL nėra tinkamai apibrėžtos, 1133 01:03:48,830 --> 01:03:52,550 Jei ši funkcija grąžina klaidos arba kai kitas netikėtas dalykas 1134 01:03:52,550 --> 01:03:58,030 iš tikrųjų atsitinka, šį apsauginį konstruktą leidžia mums tada produkcija šią klaidą 1135 01:03:58,030 --> 01:04:00,390 ir grąžinti nedelsiant. 1136 01:04:00,390 --> 01:04:00,890 Taip? 1137 01:04:00,890 --> 01:04:04,839 >> Auditorija: Taigi tai tipo apie tarsi jei tada dar? 1138 01:04:04,839 --> 01:04:07,130 DAN Armendariz: Tai tipo kaip jei tada kitur, taip, 1139 01:04:07,130 --> 01:04:14,200 išskyrus tai, kad šis URL, tada apibrėžta už viską žemiau tai. 1140 01:04:14,200 --> 01:04:20,420 Jei jis eina šį apsauga, tada jį iš tikrųjų bus pripildytas duomenis 1141 01:04:20,420 --> 01:04:29,500 ir tinkami naudoti likusi kodo į savo funkciją. 1142 01:04:29,500 --> 01:04:33,790 Taigi, aš įtariu, kad jūs ketinate pradėti žiūrėt apsauga taip pat. 1143 01:04:33,790 --> 01:04:36,670 Ir nepamiršti, kad. 1144 01:04:36,670 --> 01:04:46,270 >> Taigi tiesiog žiūri į kitą porą dalykų, tai čia yra tai, ką, 1145 01:04:46,270 --> 01:04:53,377 manai, tiesiog remiasi tuo, ką mes kalbame apie anksčiau? 1146 01:04:53,377 --> 01:04:56,650 >> Auditorija: manau, kad tai bus paleisti į sąrašą? 1147 01:04:56,650 --> 01:04:59,100 >> DAN Armendariz: Taigi, kad yra arti. 1148 01:04:59,100 --> 01:05:02,360 Tai yra funkcija, kad mes apibrėžti. 1149 01:05:02,360 --> 01:05:07,240 Ir mes įvedusi šią funkciją kaip su šia funkcija čia argumentas. 1150 01:05:07,240 --> 01:05:09,120 >> Auditorija: [nesigirdi] jei ne nulinis. 1151 01:05:09,120 --> 01:05:11,470 Taigi, tai į sąrašą, tiesa? 1152 01:05:11,470 --> 01:05:15,450 >> DAN Armendariz: Jei klaida nėra lygus nuliui, kad is-- todėl turiu slinkti. 1153 01:05:15,450 --> 01:05:18,060 Na, pažiūrėkime, aš tikrai negali pereikite į dešinę čia. 1154 01:05:18,060 --> 01:05:23,161 klaidos yra argumentas, kad yra atliekamas išlaikė šią anoniminę funkcija. 1155 01:05:23,161 --> 01:05:24,410 Tai yra anoniminis funkcija. 1156 01:05:24,410 --> 01:05:25,480 Jis neturi vardo. 1157 01:05:25,480 --> 01:05:29,850 Bet mes priimame šias tris argumentai, duomenų, atsako, ir klaidų. 1158 01:05:29,850 --> 01:05:33,590 Ir ji ketina grįžti negaliojančiu, todėl jis nesiruošia grįžti nieko. 1159 01:05:33,590 --> 01:05:37,910 Ir tai yra turinys tos funkcija. 1160 01:05:37,910 --> 01:05:41,961 Ir tada mes turime prieigą viduje, kad funkcija kiekviena iš šių argumentų. 1161 01:05:41,961 --> 01:05:45,650 1162 01:05:45,650 --> 01:05:48,679 >> Taigi tai viesulas kelionė kalba. 1163 01:05:48,679 --> 01:05:50,470 Bet aš tikiuosi, kad su tuo, tikiuosi, kaip jums imtis 1164 01:05:50,470 --> 01:05:54,490 į kai vadovėliai žvilgsnis būdingi iOS plėtros su Swift, 1165 01:05:54,490 --> 01:05:57,481 ypač jei jūs einate į "Apple" kūrėjas Web page-- 1166 01:05:57,481 --> 01:05:59,980 jie turi tikrai daug gero samouczków padės jums pradėti. 1167 01:05:59,980 --> 01:06:05,010 Bet tikiuosi tik tai kalbėti valandų apie sintaksę pati davė 1168 01:06:05,010 --> 01:06:08,760 Jums užtenka pradėti su tuo. 1169 01:06:08,760 --> 01:06:12,950 >> Mes paskelbsime visus šio šaltinio kodas ant seminaro svetainėje 1170 01:06:12,950 --> 01:06:17,800 kaip galima greičiau, o taip pat skaidres todėl jūs turite už visus tuos nuorodą. 1171 01:06:17,800 --> 01:06:20,530 Bet Sėkmės jūsų projektus. 1172 01:06:20,530 --> 01:06:23,640 Ir ačiū visiems labai už atėjimą. 1173 01:06:23,640 --> 01:06:26,990 >> [Plojimai] 1174 01:06:26,990 --> 01:06:28,026