1 00:00:00,000 --> 00:00:03,332 >> [TÓNLIST spila] 2 00:00:03,332 --> 00:00:06,200 3 00:00:06,200 --> 00:00:09,590 >> DAN AMRMENDARIZ: Allir, velkomið að CS50 námskeið, 4 00:00:09,590 --> 00:00:11,690 iOS App Development með Swift. 5 00:00:11,690 --> 00:00:15,690 Ég er Dan Armendáriz, og ég er preceptor tölvunarfræði hér í Harvard. 6 00:00:15,690 --> 00:00:21,510 >> Og næsta sólarhringinn er að fara að vera vindbylur ferð eins mikið efni 7 00:00:21,510 --> 00:00:25,160 um þetta efni eins og við getum passa. 8 00:00:25,160 --> 00:00:29,170 Ég mun senda öllum kóða sem þú munt sjá í dag á netinu. 9 00:00:29,170 --> 00:00:31,990 Við gætum ekki verið fær um að í raun að fara yfir allt 10 00:00:31,990 --> 00:00:34,810 að ég er að ég er sýna þér í þessum tíma. 11 00:00:34,810 --> 00:00:37,580 En að minnsta kosti vonandi gegnum umsagnar kóða, 12 00:00:37,580 --> 00:00:40,830 þú munt vera fær um að reyna að reikna út hvað nákvæmlega er að gerast fyrir þá hluti 13 00:00:40,830 --> 00:00:42,950 sem við gerum ekki alveg komast að. 14 00:00:42,950 --> 00:00:46,970 >> Heild, uppbyggingu tala í dag mun vera sem hér segir. 15 00:00:46,970 --> 00:00:52,820 Við munum byrja á að gera sumir undirstöðu setningafræði með Swift tungumál, 16 00:00:52,820 --> 00:00:56,290 fara inn í sumir af the fleiri háþróaður setningafræði Swift tungumál. 17 00:00:56,290 --> 00:00:59,560 Vegna tungumáli er mjög nútímalegt og það 18 00:00:59,560 --> 00:01:02,110 hefur mikið af háu stigi lögun, hlutir sem við höfum ekki 19 00:01:02,110 --> 00:01:06,600 séð í C um CS50, eða jafnvel sumir öðrum tungumálum 20 00:01:06,600 --> 00:01:09,310 að við höfum byrjað nota í CS50 eins PHP, 21 00:01:09,310 --> 00:01:12,670 þannig að ég er að fara að þurfa að reyna að kynna einnig nokkur efni sem 22 00:01:12,670 --> 00:01:18,580 tengjast hærra stigi tungumálum að þú getur ekki séð í dýpt í CS50, 23 00:01:18,580 --> 00:01:21,380 en þú munt sjá í seinna tölvunarfræði bekkjum. 24 00:01:21,380 --> 00:01:25,290 Svo það er að fara til vera a þétt pakkað klukkustund. 25 00:01:25,290 --> 00:01:28,897 Og ekki hika við að láta mig vita ef þú hefur einhverjar spurningar. 26 00:01:28,897 --> 00:01:30,730 Svo ef þú hefur áhuga í að gera þróun 27 00:01:30,730 --> 00:01:34,442 með Swift, eða bara allir iOS app þróun, 28 00:01:34,442 --> 00:01:35,900 það eru nokkrar reglur. 29 00:01:35,900 --> 00:01:39,940 Fyrst af öllu, þú þarft að vera með Mac, keyra í dæmunum 30 00:01:39,940 --> 00:01:43,880 sem við erum að fara að vera með í dag, tiltölulega ný útgáfa af OS 31 00:01:43,880 --> 00:01:46,580 X. Í þessu tilfelli, ég er að keyra X 10.5. 32 00:01:46,580 --> 00:01:48,600 Þú getur verið í gangi 10.11 ef þú vilt. 33 00:01:48,600 --> 00:01:52,430 En allt sem þú ert að fara að sjá er þar Xcode 7 og síðar, 34 00:01:52,430 --> 00:01:56,271 sem hefur nýjustu útgáfu af Swift, sem er Swift 2,0. 35 00:01:56,271 --> 00:01:58,270 Þetta er í raun nokkuð Mikilvægur munur. 36 00:01:58,270 --> 00:02:01,510 A einhver fjöldi af the setningafræði hefur breytt nokkuð verulega 37 00:02:01,510 --> 00:02:05,890 í sumum tilfellum frá Swift 1.0, sem kom út á síðasta ári, 38 00:02:05,890 --> 00:02:08,514 til Swift 2.0, sem bara kom út í haust. 39 00:02:08,514 --> 00:02:09,889 Þannig að við erum að fara að sýna Swift 2.0. 40 00:02:09,889 --> 00:02:13,020 A einhver fjöldi af þeim hlutum sem þú leitar að á netinu 41 00:02:13,020 --> 00:02:18,040 þegar þú ert að reyna að fá fleiri Upplýsingar um ýmsum hlutum, 42 00:02:18,040 --> 00:02:20,710 þú mega vilja til skýr leita Swift 2 43 00:02:20,710 --> 00:02:24,950 frekar en bara venjulegur gamall Swift að gera viss um að þú færð setningafræði rétt. 44 00:02:24,950 --> 00:02:26,920 >> Í raun, þetta er yfirleitt satt. 45 00:02:26,920 --> 00:02:31,210 Það er hraður magn af þróun gerast í Swift tungumáli 46 00:02:31,210 --> 00:02:35,110 síðan Apple gefa út það, held ég hvað, það hefur verið rúmt ár 47 00:02:35,110 --> 00:02:36,370 núna. 48 00:02:36,370 --> 00:02:39,080 Og það hefur breyst verulega á þeim tíma. 49 00:02:39,080 --> 00:02:42,160 Og svo ekki vera svekktur ef, þegar þú ert að leita í kring 50 00:02:42,160 --> 00:02:48,310 fyrir efni á Swift eða hvernig á að ná eitthvað með einhverja kóða dæmi 51 00:02:48,310 --> 00:02:51,210 eða eitthvað sem það er ekki raunverulega vinna á Swift 2.0. 52 00:02:51,210 --> 00:02:53,790 Gakktu úr skugga um að þú ert að leita sérstaklega fyrir þessi útgáfa 53 00:02:53,790 --> 00:02:58,690 til að reyna að lágmarka áhrif af mismunandi útgáfur og þær tegundir af hlutum. 54 00:02:58,690 --> 00:03:02,470 >> Ég ætla að reyna að benda á bara sumt sem eru mismunandi að eldri útgáfur. 55 00:03:02,470 --> 00:03:03,970 En það er eitthvað að horfa út fyrir. 56 00:03:03,970 --> 00:03:06,770 Það er líklega að fara að vera einn af stærstu höfuðverkur 57 00:03:06,770 --> 00:03:11,010 sem þú verður að hafa með Swift er að finna dæmi kóða sem er eldri, jafnvel bara 58 00:03:11,010 --> 00:03:14,050 eftir nokkra mánuði, að reyna að nota það í nútímalegri verkefninu. 59 00:03:14,050 --> 00:03:15,430 Og það bara einfaldlega virkar ekki. 60 00:03:15,430 --> 00:03:18,530 Þú ert að fá þýðanda villur, setningafræði villur, alls konar brjálaður efni. 61 00:03:18,530 --> 00:03:21,580 Svo bara vera þolinmóð við það, og þú verður vonandi 62 00:03:21,580 --> 00:03:24,200 hafa nokkuð góðan reynslu með Swift heild. 63 00:03:24,200 --> 00:03:28,430 >> Nú getur þú í raun join-- og ég vona við í raun enn hafa þessa þessu year-- 64 00:03:28,430 --> 00:03:30,910 CS 50 s Apple app þróun lið, sem 65 00:03:30,910 --> 00:03:34,680 mun leyfa þér að setja einhverjar apps sem þú býrð á IOS tæki. 66 00:03:34,680 --> 00:03:39,190 Svo taka a líta á þessa slóð ef þú hefur áhuga á að gera það. 67 00:03:39,190 --> 00:03:41,450 >> Svo bara nokkrar atriði um Swift sig. 68 00:03:41,450 --> 00:03:43,580 Það er a safna saman tungumál. 69 00:03:43,580 --> 00:03:45,870 En þú munt sjá að sumir af þeim eiginleikum sem við notum 70 00:03:45,870 --> 00:03:50,650 leyfa því að nota einnig í smá eins og túlkað hátt auk. 71 00:03:50,650 --> 00:03:56,350 >> A einhver fjöldi af the setningafræði er fengið að láni frá C. Það er byggt og skrifað í C. 72 00:03:56,350 --> 00:04:00,400 Og svo munum við sjá að það eru fullt af Takeaways 73 00:04:00,400 --> 00:04:04,450 frá núverandi þekkingu þína frá C sem við getum höfn til Swift. 74 00:04:04,450 --> 00:04:07,290 >> En það eru hlutir sem gera það mjög frábrugðin C 75 00:04:07,290 --> 00:04:08,860 Það er mjög mjög tegund. 76 00:04:08,860 --> 00:04:10,380 Það er sjálfvirk minni stjórnun. 77 00:04:10,380 --> 00:04:13,170 Þú ert ekki að fara að þurfa að nota malloc eða frjáls hvar sem er. 78 00:04:13,170 --> 00:04:15,110 Það er hannað fyrir almenn. 79 00:04:15,110 --> 00:04:19,480 Svo í öðrum orðum, getur þú notað það í alls konar samhengi, frá Apple Watch 80 00:04:19,480 --> 00:04:26,290 að iPhone alla leið upp í OS X, og jafnvel sumir framreiðslumaður, jafnvel sumir forskriftarþarfir. 81 00:04:26,290 --> 00:04:28,400 En við munum sjá til þess að stuðningur forskriftarþarfir 82 00:04:28,400 --> 00:04:31,360 er ekki alveg það enn sem það er í öðrum tungumálum. 83 00:04:31,360 --> 00:04:34,930 Svo líklegast að þú munt vera að nota þetta eingöngu fyrir þróun 84 00:04:34,930 --> 00:04:37,060 á Mac eða iPhone. 85 00:04:37,060 --> 00:04:40,150 >> Og það hefur a einhver fjöldi af nútíma lögun. 86 00:04:40,150 --> 00:04:43,380 Og mikið af þessum hlutum eru efni sem við erum að fara að reyna að takast á dag, 87 00:04:43,380 --> 00:04:47,590 en einnig efni okkar sem hreinskilnislega, við getum verja allt námskeið. 88 00:04:47,590 --> 00:04:50,140 Í raun, CS 51, sem er boðið er næsta önn, 89 00:04:50,140 --> 00:04:53,990 fjallar mikið um þessi málefni og er þeim lýst hér á eftir. 90 00:04:53,990 --> 00:04:56,781 Svo þú getur eytt heilt misseri skilja þetta. 91 00:04:56,781 --> 00:04:58,530 En við erum að fara að reyna að komast í gegnum þá 92 00:04:58,530 --> 00:05:00,800 að minnsta kosti nóg að þú skilji hvað er 93 00:05:00,800 --> 00:05:03,700 gerast þegar þú horfir á Swift program 94 00:05:03,700 --> 00:05:07,310 og vera fær um að hakk leið í gegnum það fyrir lokaverkefni. 95 00:05:07,310 --> 00:05:10,780 >> Nú einn af the bestur lifnaðarhættir sem þú getur fá frekari upplýsingar um þetta 96 00:05:10,780 --> 00:05:14,700 er satt bara í gegnum Apple veitt skjöl fyrir Swift. 97 00:05:14,700 --> 00:05:16,930 There er a einhver fjöldi af API sem eru í boði. 98 00:05:16,930 --> 00:05:21,170 Og þetta er gott heimili undirstaða fyrir þig að leita að, tiltekin atriði sem þú 99 00:05:21,170 --> 00:05:23,020 langar að gera með API felur IOS. 100 00:05:23,020 --> 00:05:26,350 Ef þú vilt nota myndavélina til dæmi, getur þú byrjað að leita hér, 101 00:05:26,350 --> 00:05:32,540 og einnig nota Google og stafla Yfirfall eins og venjulega. 102 00:05:32,540 --> 00:05:36,670 >> Einhverjar spurningar um þetta áður en við stökkva rétt í? 103 00:05:36,670 --> 00:05:37,880 Allt í lagi. 104 00:05:37,880 --> 00:05:38,700 Skulum fara. 105 00:05:38,700 --> 00:05:42,620 >> Svo fyrst, ég er með Fjöldi dæmis eru skrár. 106 00:05:42,620 --> 00:05:46,040 Og ég ætla að reyna að stíga í gegnum þá tiltölulega fljótt. 107 00:05:46,040 --> 00:05:49,190 Þetta er Hello World skrá fyrir Swift. 108 00:05:49,190 --> 00:05:51,050 Það er mjög einfalt. 109 00:05:51,050 --> 00:05:54,360 Það er leið fleiri athugasemdir en það eru raunveruleg númer. 110 00:05:54,360 --> 00:05:57,100 Tilkynning raunverulegt númer er mjög botn á línu 14. 111 00:05:57,100 --> 00:05:57,980 Það segir prenta. 112 00:05:57,980 --> 00:05:59,820 Og þá er það fall hringja. 113 00:05:59,820 --> 00:06:03,010 Við erum liggur inn í það í band heitir Hello CS50. 114 00:06:03,010 --> 00:06:04,750 Takið eftir að það er engin semikommum. 115 00:06:04,750 --> 00:06:07,010 Takið eftir að það er ekkert int helstu. 116 00:06:07,010 --> 00:06:10,392 Það er ekkert af cruft sem við höfðum með C 117 00:06:10,392 --> 00:06:15,020 Þegar við erum að nota Swift á þennan hátt, sem er bara skrifað í textaskrá 118 00:06:15,020 --> 00:06:18,340 og geymdar á tölvunni minni, þá Ég get þýða það og keyra það. 119 00:06:18,340 --> 00:06:20,920 >> Takið eftir að hér er ég ekki nota CS50 IDE. 120 00:06:20,920 --> 00:06:24,460 Gert er ráð fyrir að ég er gangi og að ég er á OS X, 121 00:06:24,460 --> 00:06:27,870 og að ég hef Xcode þegar sett á þessari vél til þess að þetta 122 00:06:27,870 --> 00:06:29,080 að raunverulega virka. 123 00:06:29,080 --> 00:06:33,349 En þetta er bara eðlilegt textaskrá að við getum þá saman og breyta. 124 00:06:33,349 --> 00:06:34,890 Svo skulum sjá hvernig þetta í raun virkar. 125 00:06:34,890 --> 00:06:37,430 Hvað ef ég vil þýða það? 126 00:06:37,430 --> 00:06:40,450 swiftc 1.swift. 127 00:06:40,450 --> 00:06:42,960 Eftir smá stund eða tvær, það munt sjá að við höfum nú 128 00:06:42,960 --> 00:06:45,360 saman þetta í skrá sem kallast 1. 129 00:06:45,360 --> 00:06:51,090 Og nú höfum við prentað CS50 okkar, okkar Hello World forrit frekar. 130 00:06:51,090 --> 00:06:54,690 >> Tilkynning einn annar hlutur sem vel er að sjálfgefið, 131 00:06:54,690 --> 00:07:00,090 höfum við ekki að inntak a / n að prenta nýja línu. 132 00:07:00,090 --> 00:07:05,315 Sjálfgefið, prenta virka í Swift mun prenta nýja línu fyrir þig. 133 00:07:05,315 --> 00:07:09,284 Þú geta fara framhjá valfrjáls viðbótar breytu til að segja það að gera það ekki. 134 00:07:09,284 --> 00:07:10,950 En Google til að fá meiri upplýsingar um það. 135 00:07:10,950 --> 00:07:13,450 Sjálfgefið, mun það gera að prenta línu. 136 00:07:13,450 --> 00:07:16,420 >> Allt í lagi, þannig að við skulum fara þá að einhverjum öðrum hlutum. 137 00:07:16,420 --> 00:07:18,620 Og hvernig getum við skilgreina raunverulega breytur? 138 00:07:18,620 --> 00:07:21,960 Við getum gert það er að nota eitt af tveimur aðferðum. 139 00:07:21,960 --> 00:07:26,122 Og eitt sem ég vil segja þér um fyrsta er þetta skulum skilgreining. 140 00:07:26,122 --> 00:07:27,830 Og þetta er mikilvægt því í raun 141 00:07:27,830 --> 00:07:30,240 hvað við erum að gera er að skilgreina stöðug. 142 00:07:30,240 --> 00:07:34,010 Við erum að fara að búa til breytu, eða öllu heldur stöðug nefndi, 143 00:07:34,010 --> 00:07:38,200 veita það sumir data-- í þetta mál, band Dan. 144 00:07:38,200 --> 00:07:40,630 En með því að nota þetta skulum leitarorð, við erum að segja 145 00:07:40,630 --> 00:07:43,860 að þetta variable-- eða aftur constant-- heitir 146 00:07:43,860 --> 00:07:46,220 Nafnið er aldrei að fara að breyta. 147 00:07:46,220 --> 00:07:50,120 Það er að fara að vera immutable um lengd þessarar áætlunar 148 00:07:50,120 --> 00:07:53,100 eða um allan lengd samhengi 149 00:07:53,100 --> 00:07:55,390 að það breyta er í boði. 150 00:07:55,390 --> 00:08:00,096 >> Þetta er mjög mikilvægt að þegar þið hafið einhverjar upplýsingar sem er ekki 151 00:08:00,096 --> 00:08:02,970 að fara að breyta í forritinu, og þú munt sjá úrval af dæmum 152 00:08:02,970 --> 00:08:06,790 um þegar við viljum nota láta á móti hinum setningafræði, 153 00:08:06,790 --> 00:08:11,040 það er mikilvægt að þú notir láta þar sem hægt er vegna þess að þetta lætur 154 00:08:11,040 --> 00:08:13,740 tungumálið sem það er ekki að fara að breyta, 155 00:08:13,740 --> 00:08:16,590 og það getur í raun gert a einhver fjöldi af hagræðingar 156 00:08:16,590 --> 00:08:19,560 til að bæta hraða og öryggi program. 157 00:08:19,560 --> 00:08:24,480 Og með því að öryggi, meina ég ekki láta það hrun með brjálaður villur 158 00:08:24,480 --> 00:08:27,910 að við gætum verið vanir því að sjá í C. 159 00:08:27,910 --> 00:08:32,460 >> Þá getum við notað band innskot að þjappa saman þetta innan streng. 160 00:08:32,460 --> 00:08:35,200 Svo við getum séð í þessu prenta lína, prenta halló, 161 00:08:35,200 --> 00:08:38,950 og þá nota sviga opna parens, og þá nafn breytu mínu, 162 00:08:38,950 --> 00:08:41,809 í þessu tilfelli fasti, loka sviga. 163 00:08:41,809 --> 00:08:46,400 Ég er í raun þá að setja Innihald þessa breytu sem heitir nafni 164 00:08:46,400 --> 00:08:50,240 inni í band og þá prentun niðurstöðu þar. 165 00:08:50,240 --> 00:08:54,070 >> Það er eitt annað breyting í þessa skrá sem er að ég hef, á the mjög toppur, 166 00:08:54,070 --> 00:08:57,340 setja í klabbið línu, sem í rauninni bara skilgreinir 167 00:08:57,340 --> 00:09:00,180 að ég vil nota Swift túlkur, sem 168 00:09:00,180 --> 00:09:04,190 þýðir að ég hef ekki lengur að saman þetta tiltekna forrit. 169 00:09:04,190 --> 00:09:06,567 Ég get bara keyrt það eins og eigin handriti hans. 170 00:09:06,567 --> 00:09:09,400 En þetta er, í þessu tilfelli, á bak tjöldin að vera saman og þá 171 00:09:09,400 --> 00:09:10,030 að hlaupa. 172 00:09:10,030 --> 00:09:13,540 Það er bara ósýnilegt okkur. 173 00:09:13,540 --> 00:09:15,880 >> Allt í lagi, þannig að við skulum fara. 174 00:09:15,880 --> 00:09:19,650 Svo er það hluti af brögðum sem bara gerst áður. 175 00:09:19,650 --> 00:09:23,230 Ég sýndi þér að ég gætum skilgreint fasti. 176 00:09:23,230 --> 00:09:25,490 Og ég gæti veitt einhverjum gögnum til að gera það. 177 00:09:25,490 --> 00:09:29,240 En í þessu tilfelli, eftir að ég gerði ekki reyndar tilgreina tegund gagna 178 00:09:29,240 --> 00:09:29,820 að það sé. 179 00:09:29,820 --> 00:09:32,780 Og það er vegna þess að þýðanda, Swift getur 180 00:09:32,780 --> 00:09:36,910 álykta tegund gagna bara byggt á gögnum sem ég setti inn í það. 181 00:09:36,910 --> 00:09:41,760 Því það veit að með því að meta þetta breyta hérna, þessi gögn réttur 182 00:09:41,760 --> 00:09:43,370 hér, veit það að það er band. 183 00:09:43,370 --> 00:09:48,690 Og svo er þetta fasti nafn því fara til vera a band eins og heilbrigður. 184 00:09:48,690 --> 00:09:52,730 >> En við getum líka verið skýr um þá gerð sem er 185 00:09:52,730 --> 00:09:55,790 við erum að fara að nota fyrir fastar eða breytur 186 00:09:55,790 --> 00:10:01,590 með því að nota þessa setningafræði instead-- láta nafn ristill String jafngildir 187 00:10:01,590 --> 00:10:05,530 Dan, sem í þessu tilfelli þýðir að við erum að fara að skilgreina fastann nafn. 188 00:10:05,530 --> 00:10:07,150 Það er að fara að vera af taginu String. 189 00:10:07,150 --> 00:10:10,550 Og verðmæti er að fara að vera Dan. 190 00:10:10,550 --> 00:10:12,550 Nú önnur leið sem getum við búið variables-- 191 00:10:12,550 --> 00:10:15,549 og þetta eru breytanlegur breytur, sem þýðir að við erum í raun, að fara 192 00:10:15,549 --> 00:10:19,670 til að breyta efni þeirra einhvern í þann tíma sem samhengi 193 00:10:19,670 --> 00:10:23,890 sem að breyta er defined-- vér nota VAR leitarorð stað láta. 194 00:10:23,890 --> 00:10:27,400 En aftur, við vanræksla, nema þú vitir sem þú þarft að vinna þessi gögn, 195 00:10:27,400 --> 00:10:30,510 reyna að nota láta fyrir flutningur framför. 196 00:10:30,510 --> 00:10:33,740 >> Í þessu tilviki er ég þá tilgreina tegund gagna 197 00:10:33,740 --> 00:10:37,650 að við reiknum með að vera inni þetta nýja breytu sem heitir merki. 198 00:10:37,650 --> 00:10:38,800 Það er að fara til vera a band. 199 00:10:38,800 --> 00:10:43,030 Og við erum að fara að þá concatenate tveir strengir saman, band halló, 200 00:10:43,030 --> 00:10:48,070 og um streng táknað með breyta, eða öllu heldur stöðug nafn. 201 00:10:48,070 --> 00:10:50,660 >> Svo er þetta ágætur vegna þess að þetta er nokkuð PHP eins og í að við 202 00:10:50,660 --> 00:10:52,250 hafa mjög greiðan band samtenging. 203 00:10:52,250 --> 00:10:56,350 Við höfum ekki sjálfkrafa nota hvers konar minni stjórnun 204 00:10:56,350 --> 00:11:00,580 til að auka stærð og gera hvers konar fyndið hlutir þar. 205 00:11:00,580 --> 00:11:05,040 Þetta virkar eins og við hefðum í raun búast. 206 00:11:05,040 --> 00:11:09,370 >> Allt í lagi, einhverjar spurningar um þetta? 207 00:11:09,370 --> 00:11:12,520 >> Nú önnur ástæða sem við þurfum að hafa getu 208 00:11:12,520 --> 00:11:15,490 að vera fær um að skilgreina hvað tegund gagna breytur eru 209 00:11:15,490 --> 00:11:18,170 er vegna þess að stundum við gerum ekki langar að frumstilla breytur 210 00:11:18,170 --> 00:11:21,080 með nokkrum gögnum á benda á skilgreiningu. 211 00:11:21,080 --> 00:11:23,500 Þannig að í þessu tilfelli, við skulum segja að ég vil byrja inputting 212 00:11:23,500 --> 00:11:25,040 sumir einkunna inn í a bekk bók. 213 00:11:25,040 --> 00:11:27,530 Jæja ég veit að einn af breytur sem mig langar til að vera 214 00:11:27,530 --> 00:11:30,280 er að fara til vera a breytanlegur einkunn. 215 00:11:30,280 --> 00:11:33,010 Og við vitum líka að við vil það að vera heiltala. 216 00:11:33,010 --> 00:11:36,030 En kannski við gerum ekki enn hafa að grade í boði. 217 00:11:36,030 --> 00:11:39,570 >> Í Swift, þú þarft að skilgreina hvaða gögn 218 00:11:39,570 --> 00:11:44,000 sem er tengd við breyta eða láta stöðug 219 00:11:44,000 --> 00:11:47,840 áður en þú getur raunverulega nota þá breytu. 220 00:11:47,840 --> 00:11:51,170 Vegna þess að það er mjög tegund, þú þarft að tengja gerð 221 00:11:51,170 --> 00:11:52,890 með þessum breytum. 222 00:11:52,890 --> 00:11:56,120 >> Þannig að í þessu tilfelli, ef ég hef ekki almennilega forsniðin fyrsta með nokkur gildi, 223 00:11:56,120 --> 00:12:00,520 þá þarf ég að segja Swift hvað Ég býst við gögn gerð til að vera. 224 00:12:00,520 --> 00:12:02,650 Og það er að fara að vera að sömu gögn gerð 225 00:12:02,650 --> 00:12:05,780 um sögu þessarar áætlunar. 226 00:12:05,780 --> 00:12:10,050 >> Nú þú gætir freistast eins fljótt og Ég hef búið til þessa einkunn breytu 227 00:12:10,050 --> 00:12:13,530 og veitt það upp heiltala af 100, nú ef ég 228 00:12:13,530 --> 00:12:18,540 vilja til að reyna að concatenate band með því heiltala, 229 00:12:18,540 --> 00:12:21,610 Sumir gætu freistast til enn nota að strengur samtenging rekstraraðila 230 00:12:21,610 --> 00:12:24,500 eins og við gerðum bara nokkrar línur áður. 231 00:12:24,500 --> 00:12:26,460 En því miður, Þetta mun í raun ekki 232 00:12:26,460 --> 00:12:29,270 vinna, vegna þess að þú ert í raun að framkvæma 233 00:12:29,270 --> 00:12:32,380 aðgerð á tveimur mismunandi gerðum. 234 00:12:32,380 --> 00:12:36,856 >> Nú er þetta mjög frábrugðin öðrum tungumál eins og PHP, sem eru í raun 235 00:12:36,856 --> 00:12:38,480 loosey goosey með einhverskonar þeirra gerðum. 236 00:12:38,480 --> 00:12:40,030 Þeir eru bara eins og, já, hvað, ég hugsa ekki. 237 00:12:40,030 --> 00:12:42,710 Bara gefa mér eina tegund, og kannski ég gera hlutina rétt. 238 00:12:42,710 --> 00:12:46,060 >> Í þessu tilfelli, Swift er mjög strangar um tegundir 239 00:12:46,060 --> 00:12:47,350 sem þú ert að fást við. 240 00:12:47,350 --> 00:12:50,700 Þetta samantekt rekstraraðila eða samtenging rekstraraðila 241 00:12:50,700 --> 00:12:54,400 hefur í raun nokkra mismunandi möguleikum. 242 00:12:54,400 --> 00:12:56,970 Þú getur gert samlagningin með heiltölur, eða þú 243 00:12:56,970 --> 00:13:00,870 getur gert band samtenging, og kannski nokkrum öðrum hlutum eins og heilbrigður. 244 00:13:00,870 --> 00:13:05,550 En ef sá rekstraraðili ekki viðurkenna hvað er hvorum megin við það, 245 00:13:05,550 --> 00:13:10,452 eða öllu heldur samsetning þeirra tvær tegundir, er ekki það sem það er von, 246 00:13:10,452 --> 00:13:11,910 þá er að fara að valda bilun. 247 00:13:11,910 --> 00:13:16,690 >> Þannig að í þessu tilfelli, hvað þýðir það að hafa band auk heiltala? 248 00:13:16,690 --> 00:13:18,880 Vel í tengslum við þetta, viljum við sennilega 249 00:13:18,880 --> 00:13:21,990 að gera band samtenging aðgerð. 250 00:13:21,990 --> 00:13:26,420 En auðvitað tölva er ekki þessi tegund af samhengi. 251 00:13:26,420 --> 00:13:29,950 Og svo þurfum við að veita að frekari upplýsingar 252 00:13:29,950 --> 00:13:32,390 að láta það vita hvað það er að við viljum gera. 253 00:13:32,390 --> 00:13:36,860 >> Svo í öðrum orðum, því sem Swift er mjög tegund 254 00:13:36,860 --> 00:13:39,520 þýðir að þú þarft að gera a smá aukaverk 255 00:13:39,520 --> 00:13:42,100 að fá það til að reka leiðin sem þú vilt. 256 00:13:42,100 --> 00:13:43,710 En vegna, það er öruggara. 257 00:13:43,710 --> 00:13:46,290 Og þegar þú hefur tekið mið af þeim tegundum, 258 00:13:46,290 --> 00:13:49,300 það bara hreinskilnislega byrja að vinna nokkuð vel. 259 00:13:49,300 --> 00:13:52,520 >> Þannig að í þessu tilfelli, myndi við þá framkvæma band samtenging 260 00:13:52,520 --> 00:13:56,040 með sérstaklega steypu heiltölu í streng 261 00:13:56,040 --> 00:13:58,490 setja hann í þetta höfuðborg S String virka, 262 00:13:58,490 --> 00:14:03,510 og þá með band samtenging rekstraraðila til að breyta merki breytu okkar, 263 00:14:03,510 --> 00:14:06,280 og þá prenta það út. 264 00:14:06,280 --> 00:14:08,420 >> Svo langt, svo góður? 265 00:14:08,420 --> 00:14:12,020 Allt í lagi, við skulum fara. 266 00:14:12,020 --> 00:14:16,300 >> Nú eru ýmis gögn tegundir sem við getum notað í Swift. 267 00:14:16,300 --> 00:14:21,620 Eins og þú hefur orðið vön að, við getum búið til breytanlegur fylki. 268 00:14:21,620 --> 00:14:26,140 Og það array getur aðeins innihalda eina tegund. 269 00:14:26,140 --> 00:14:30,360 >> Þannig að í þessu tilfelli erum við að fara að búa til a breytanlegur fylki heiltalna, sem 270 00:14:30,360 --> 00:14:34,800 við skulum kalla bekk, og við munum vera fær um að geyma að í þessu veldi krappi 271 00:14:34,800 --> 00:14:38,650 snið eins og þú hafir vaxið vön að í ýmsum öðrum tungumálum. 272 00:14:38,650 --> 00:14:41,150 En eftir því að hér erum við skilgreina nokkra hluti. 273 00:14:41,150 --> 00:14:45,350 einkunna er breytanlegur variable-- við ekki nota let leitarorð. 274 00:14:45,350 --> 00:14:49,620 Svo það þýðir að við getum þá breyta Innihald þessu fylki. 275 00:14:49,620 --> 00:14:53,420 Það er af gerðinni Array Int, og við getum sagt að 276 00:14:53,420 --> 00:14:56,260 byggt á þessum hornklofum hér. 277 00:14:56,260 --> 00:14:58,930 >> Nú einn af the ágætur hluti um þetta er að við 278 00:14:58,930 --> 00:15:02,310 hafa aðgang að fullt af Viðbótarupplýsingar 279 00:15:02,310 --> 00:15:07,110 um fylkisins bara með nokkrar einfaldar punktur tákn. 280 00:15:07,110 --> 00:15:10,500 Svo til dæmis, grades.count veitir okkur 281 00:15:10,500 --> 00:15:14,820 fjöldi atriða sem eru í því array, sem við getum þá nálgast nokkuð 282 00:15:14,820 --> 00:15:19,090 auðveldlega einfaldlega að nota þessi punktur tákn. 283 00:15:19,090 --> 00:15:21,830 >> Ef þú vilt bæta við fleiri atriði til þessa array, 284 00:15:21,830 --> 00:15:27,220 þú getur ekki gert PHP stíl þar sem þú bara skýrt skilgreina, 285 00:15:27,220 --> 00:15:30,910 á tilteknu vísitölu, eitthvert gildi sem þú vilt setja inn. 286 00:15:30,910 --> 00:15:37,210 Þess í stað skal nota auka aðferð í array tegund 287 00:15:37,210 --> 00:15:40,920 til að bæta þessi atriði, 95, á þennan lista. 288 00:15:40,920 --> 00:15:45,990 >> Svo nú hefur þetta array eftirfarandi contents-- 100, 0, 90, 85. 289 00:15:45,990 --> 00:15:49,270 Og nú höfum við bætt 95 til að það sem vel. 290 00:15:49,270 --> 00:15:51,830 >> Það eru aðrar leiðir við getum bæta hlutina. 291 00:15:51,830 --> 00:15:55,030 Þú getur í raun notað a samantekt rekstraraðila, 292 00:15:55,030 --> 00:15:59,200 sem verður að túlka sem fylki viðskeytingarfyrirspurn aðgerð. 293 00:15:59,200 --> 00:16:04,680 Og þú getur þá bæta öðru array, með innihaldi sem er 70 og 80, 294 00:16:04,680 --> 00:16:05,560 að þessi fylking. 295 00:16:05,560 --> 00:16:08,250 Svo nú höfum við innihald í þessari breytu 296 00:16:08,250 --> 00:16:17,220 grades-- 100, 0, 90, 85, 95, 70, og 80. 297 00:16:17,220 --> 00:16:21,850 Þetta er bara ágætur lítill nokkur dæmi um setningarleg sykur sem Swift veitir okkur. 298 00:16:21,850 --> 00:16:23,850 >> Svo ef við viljum að summa það bekk, við erum kannski 299 00:16:23,850 --> 00:16:27,340 fara til að vilja árétta yfir hverjum lið í þessa lykkju. 300 00:16:27,340 --> 00:16:32,150 Og við höfum, í Swift, hugmyndin af fyrir lykkju eins og þú vildi búast við. 301 00:16:32,150 --> 00:16:35,350 En hvernig sem við kynna svið er aðeins öðruvísi. 302 00:16:35,350 --> 00:16:37,790 Þannig að í þessu tilfelli, til að summa allt, við munum 303 00:16:37,790 --> 00:16:40,650 fara að búa tímabundið breytu sem heitir summan í röð fyrir okkur 304 00:16:40,650 --> 00:16:42,580 að viðhalda þessum telja. 305 00:16:42,580 --> 00:16:44,430 >> Og taka fyrir okkar lykkja byggingu hér. 306 00:16:44,430 --> 00:16:46,820 Fyrir vísitölu í 0 .. 00:16:51,480 308 00:16:51,480 --> 00:16:57,390 Þannig að þetta smíði, 0 .. 00:17:01,860 segja að við erum að fara að búa til a svið af heiltölur frá 0 upp 310 00:17:01,860 --> 00:17:05,750 að þó ekki grades.count. 311 00:17:05,750 --> 00:17:09,577 Þannig að þetta verður 0, 1, 2, 3, 4, 5, allt þar þó margir One 312 00:17:09,577 --> 00:17:10,410 áður grades.count. 313 00:17:10,410 --> 00:17:14,160 >> Svo er þetta öðruvísi en hvernig við myndi venjulega notað fyrir lykkjur 314 00:17:14,160 --> 00:17:18,569 þar sem þú þyrftir einhverja vísitölu breyta, setja það jafnt 0 í fyrstu, 315 00:17:18,569 --> 00:17:25,480 og þá fella það fyrr en nokkru gildi minna en telja atriði 316 00:17:25,480 --> 00:17:27,140 í því fylki. 317 00:17:27,140 --> 00:17:29,820 >> Svo er það breyting að þetta, í raun, 318 00:17:29,820 --> 00:17:35,010 sem gerir okkur kleift að mjög auðveldlega setja mismunandi tegundir af svið. 319 00:17:35,010 --> 00:17:40,570 Ef þú breytir þessu svið til þrír punktar, 0 ... grade.count, 320 00:17:40,570 --> 00:17:45,120 þetta táknar svið 0 að grades.count innifalið, 321 00:17:45,120 --> 00:17:49,260 sem þýðir að þessi tala er einnig þá innifalinn í því bili. 322 00:17:49,260 --> 00:17:52,110 >> En þetta er mjög vel fyrir þessum nákvæmlega það, 323 00:17:52,110 --> 00:17:54,590 þegar við þurfum að framkvæma endurtekningar á lykkju 324 00:17:54,590 --> 00:17:59,630 vegna þess að þau Vísitölur eru núll verðtryggð, eins og við höfum séð á öðrum tungumálum 325 00:17:59,630 --> 00:18:02,360 einnig. 326 00:18:02,360 --> 00:18:05,210 Einhverjar spurningar um þetta fyrir lykkju? 327 00:18:05,210 --> 00:18:10,660 >> Svo er það óbeina skilgreining þessarar vísitölu breytu, 328 00:18:10,660 --> 00:18:14,350 Hvers virði hefst á 0, og áfram á hverju lykkja endurtekning 329 00:18:14,350 --> 00:18:17,950 aukist um 1 upp til að benda sem er jöfn grades.count, 330 00:18:17,950 --> 00:18:20,380 á hvaða tímapunkti lykkja fer úr hamnum. 331 00:18:20,380 --> 00:18:23,730 >> Takið eftir að í band okkar innskot hér, 332 00:18:23,730 --> 00:18:26,910 við getum í raun gert nokkrar einfaldar misnotkun til þessara gildum. 333 00:18:26,910 --> 00:18:31,230 Svo Vísitala auk 1 mun í raun framkvæma samlagningu þess virði 334 00:18:31,230 --> 00:18:34,780 vegna vísitalan er, í þetta mál, heiltala. 335 00:18:34,780 --> 00:18:37,810 Og á þeim tímapunkti, það mun sfðan hægt að breyta í band 336 00:18:37,810 --> 00:18:42,230 og brúað í þessum streng hér, og prenta út eins og við hefðum átt von á. . 337 00:18:42,230 --> 00:18:44,520 >> Og ágætur hlutur um fylki hér er 338 00:18:44,520 --> 00:18:50,730 að við erum einnig fær um að hafa Sækir gildi og setja gildi 339 00:18:50,730 --> 00:18:54,080 með veldi krappi tákn sem við höfum séð í öðrum tungumálum eins og heilbrigður. 340 00:18:54,080 --> 00:18:57,130 341 00:18:57,130 --> 00:19:01,030 >> Allt í lagi, svo héðan, við nú reikna summu okkar á öllum einkunnum okkar. 342 00:19:01,030 --> 00:19:02,780 Nú konar næsta rökrétt skref væri 343 00:19:02,780 --> 00:19:07,580 að gera skiptingar aðgerð að finna út meðaltal þeirra einkunna. 344 00:19:07,580 --> 00:19:10,150 En eitthvað mikilvægt hér er að gerast, sem 345 00:19:10,150 --> 00:19:15,020 er að þessi upphæð er kannski heiltala. 346 00:19:15,020 --> 00:19:18,020 En við þurfum að framkvæma sumir konar manna deild. 347 00:19:18,020 --> 00:19:20,600 Og þetta er að fara að vera afar mikilvægt þegar 348 00:19:20,600 --> 00:19:24,140 við viljum að framkvæma þessa aðgerð, vegna þess hvað við erum að segja 349 00:19:24,140 --> 00:19:28,430 er að við þurfum í raun framkvæma skiptingu á tveimur tvíliðaleik. 350 00:19:28,430 --> 00:19:31,370 Og aftur, því Swift er mjög mjög tegund, 351 00:19:31,370 --> 00:19:36,760 við verðum sérstaklega sett allt í atriði til tvíliðaleik áður en við í raun og veru 352 00:19:36,760 --> 00:19:38,300 framkvæma þessa aðgerð. 353 00:19:38,300 --> 00:19:40,550 >> Svo í röð fyrir okkur til framkvæma tvöfalda skiptingu, 354 00:19:40,550 --> 00:19:43,730 það er ekki nóg fyrir bara einn af þeim atriðum að vera tvöfaldur. 355 00:19:43,730 --> 00:19:46,400 Báðir hafa þeir að vera tvöfaldur í röð fyrir snögg 356 00:19:46,400 --> 00:19:50,860 til að vera viss um að þetta er það sem við viljum gera. 357 00:19:50,860 --> 00:19:54,360 Þannig að við munum þá sérstaklega Typecast summan sem við höfum reiknað ofan 358 00:19:54,360 --> 00:19:58,970 og telja einkunnum til tveggja manna, og þá framkvæma þessa aðgerð og geyma 359 00:19:58,970 --> 00:20:02,390 að í þessu nýja breytu, eða öllu heldur þetta nýja fastann meðaltali 360 00:20:02,390 --> 00:20:06,810 sem mun hafa hvaða tegund þú ímynda sér? 361 00:20:06,810 --> 00:20:07,587 Double, já. 362 00:20:07,587 --> 00:20:09,420 Þannig að í þessu tilfelli, við þarft ekki að tilgreina það 363 00:20:09,420 --> 00:20:13,450 vegna þess að það er hægt að álykta frá Rekstur hvaða tegund af gögnum meðaltali 364 00:20:13,450 --> 00:20:14,730 mun vera. 365 00:20:14,730 --> 00:20:19,025 Og Swift er almennt nokkuð gott um að vera fær um að álykta tegundir. 366 00:20:19,025 --> 00:20:22,116 367 00:20:22,116 --> 00:20:24,200 >> Viltu sjá þetta hlaupa, eða get ég halda áfram? 368 00:20:24,200 --> 00:20:25,640 Ég vil halda áfram. 369 00:20:25,640 --> 00:20:28,130 Einhverjar spurningar um eitthvað af þessu? 370 00:20:28,130 --> 00:20:28,630 Great. 371 00:20:28,630 --> 00:20:31,160 372 00:20:31,160 --> 00:20:35,010 >> Nú erum við að fara að byrja að fá að ódýr stuff-- Skilgreina aðgerðir, 373 00:20:35,010 --> 00:20:39,090 og a par af öðrum tegundum sem eru einstakt að Swift sem þú hefur ekki 374 00:20:39,090 --> 00:20:41,620 séð á öðrum tungumálum Fram til þessa, 375 00:20:41,620 --> 00:20:46,290 en þeir eru til staðar í öðrum tungumál sem þú gætir fundið síðar. 376 00:20:46,290 --> 00:20:48,210 Svo fyrst ef þú vilt að skilgreina fall, 377 00:20:48,210 --> 00:20:52,170 að skilgreina það með angurvær orðinu virka, og þá virka nafn, 378 00:20:52,170 --> 00:20:56,710 og þá í sviga, rökin sem þú vilt að virka til að samþykkja. 379 00:20:56,710 --> 00:21:00,280 Rökin verða einnig specify-- generally-- 380 00:21:00,280 --> 00:21:05,010 verður einnig að tilgreina tegund af gögnum sem þeir eru, nema þeir er hægt að álykta. 381 00:21:05,010 --> 00:21:07,500 Og við munum sjá að lítið hellir í réttlátur a lítill hluti. 382 00:21:07,500 --> 00:21:09,920 >> Þannig að í þessu tilfelli höfum við virka kallast printGradeCount. 383 00:21:09,920 --> 00:21:12,840 Við erum að fara að taka a variable-- eða öllu heldur í þessu tilfelli, 384 00:21:12,840 --> 00:21:14,450 a constant-- heitir gradebook. 385 00:21:14,450 --> 00:21:18,517 Og það er að fara að vera slá fjölbreytta heiltölur. 386 00:21:18,517 --> 00:21:20,600 Nú er það eitthvað það er mjög mikilvægt hér 387 00:21:20,600 --> 00:21:21,849 að ég vil að þú skiljir. 388 00:21:21,849 --> 00:21:27,560 Það er að sjálfgefið, þessi rök sem eru inntak í þessa aðgerð er 389 00:21:27,560 --> 00:21:34,380 skilgreint með óbeinum láta leitarorð, sem þýðir að ég get ekki breytt þessu 390 00:21:34,380 --> 00:21:39,850 gradebook breyta hér. 391 00:21:39,850 --> 00:21:43,360 Og þessi tegund af vit, vegna þess að þú ert liggur gögn í. 392 00:21:43,360 --> 00:21:45,860 Og þú kannski vilt það ekki að breyta undan þér. 393 00:21:45,860 --> 00:21:50,800 Það er hægt að beinlínis nefna að þetta er breytilegt með því að setja 394 00:21:50,800 --> 00:21:52,070 sem Var leitarorð hér. 395 00:21:52,070 --> 00:21:56,832 En það er Gotcha sem við höfum tekið eftir að fólk hefur gert í fortíðinni 396 00:21:56,832 --> 00:21:59,790 er að þeir gera ráð fyrir að það er að fara að vera breyta þegar í raun, það 397 00:21:59,790 --> 00:22:02,640 er fasti. 398 00:22:02,640 --> 00:22:07,340 >> Allt í lagi, svo hér þá, í ​​þessu tilfelli, við erum ekki að tilgreina hvaða afturhvarfstag. 399 00:22:07,340 --> 00:22:09,460 Við munum sýna þér hvernig á að gera sem í bara smá stund. 400 00:22:09,460 --> 00:22:12,340 En eftir því að hér höfum við bara einfalt ef ástand. 401 00:22:12,340 --> 00:22:14,560 Ef gradebook er tómur, sem í þessu tilfelli 402 00:22:14,560 --> 00:22:19,310 er bara eign þessa tölu array, þá erum við að prenta út eitthvað. 403 00:22:19,310 --> 00:22:23,100 Annars við gerum eitthvað annað. 404 00:22:23,100 --> 00:22:25,000 >> Pretty einfalt svo langt að ég held. 405 00:22:25,000 --> 00:22:27,960 En stoppa mig ef þú hefur einhverjar spurningar. 406 00:22:27,960 --> 00:22:33,350 >> Nú, að meðaltali, einnig tekur þessi aðgerð sumir rök, eða öllu heldur einn rök, 407 00:22:33,350 --> 00:22:37,507 sem er gradebook, og að þessu sinni er að fara að skila tvöfalt tegund. 408 00:22:37,507 --> 00:22:39,340 Vegna þess að það er computing að meðaltali og það er 409 00:22:39,340 --> 00:22:45,010 fara til raunverulega skila sem reiknaður meðaltal til að kalla línu. 410 00:22:45,010 --> 00:22:50,070 >> Í þessu tilfelli, tilgreina við við aftur ferðar eftir ör. 411 00:22:50,070 --> 00:22:53,260 Og þetta gæti finnst skrýtin tilfinning í fyrstu. 412 00:22:53,260 --> 00:22:55,610 Þú hefur vaxið vön að setja aftur 413 00:22:55,610 --> 00:22:57,720 tegund fyrir nafni fallsins. 414 00:22:57,720 --> 00:23:00,310 En ef þú heldur að þetta hvað varðar stærðfræði, 415 00:23:00,310 --> 00:23:03,320 eins og þegar þú ert stærðfræði sem skilgreint fall, 416 00:23:03,320 --> 00:23:06,807 þú ert með virka með sumir inntak, og það framleiðir framleiðsla. 417 00:23:06,807 --> 00:23:08,890 Og það er einmitt það þetta er ætlað að líkja eftir. 418 00:23:08,890 --> 00:23:12,460 Og það er a par af öðrum tungumálum sem hafa svipaða setningafræði eins vel, 419 00:23:12,460 --> 00:23:15,674 en sennilega enginn þú hefur séð í CS50. 420 00:23:15,674 --> 00:23:17,090 En samt ekki að rugla með það. 421 00:23:17,090 --> 00:23:21,650 Örin þýðir hvað er að gerast að skila í þessu tilfelli. 422 00:23:21,650 --> 00:23:23,650 OK, svo hvernig við erum að fara að reikna þessa meðaltali? 423 00:23:23,650 --> 00:23:25,649 Jæja, ef gradebook er tóm, og þá erum við 424 00:23:25,649 --> 00:23:30,731 að fara að skila 0, sem kannski sanngjarnt leiðin til að meðhöndla þetta. 425 00:23:30,731 --> 00:23:32,980 Ég veit ekki, við skulum koma aftur til að í smá. 426 00:23:32,980 --> 00:23:34,688 Þetta getur í raun ekki vera sanngjarn vegur 427 00:23:34,688 --> 00:23:38,310 að reikna að meðaltali ef við höfum tómt gradebook. 428 00:23:38,310 --> 00:23:41,260 >> Þá munum við bara framkvæma samlagningin okkar. 429 00:23:41,260 --> 00:23:43,900 Takið eftir að hér við í raun með annað útgáfa af a 430 00:23:43,900 --> 00:23:49,190 fyrir lykkju, sem gerir okkur kleift að árétta yfir hvert einasta atriði í fjölda 431 00:23:49,190 --> 00:23:53,630 og setja hvert frumefni í eigin breytu sína. 432 00:23:53,630 --> 00:23:56,200 Með því að tilgreina fyrir bekk í gradebook, hvað við erum að segja 433 00:23:56,200 --> 00:24:00,560 er að við erum að fara að óbeint búa til nýja fastann 434 00:24:00,560 --> 00:24:05,180 bekk sem er að fara til að tákna hvert einstakt atriði í gradebook 435 00:24:05,180 --> 00:24:06,769 í hvert sinn sem er til hliðar iterates. 436 00:24:06,769 --> 00:24:08,560 Svo í fyrsta skipti sem það er keyrt, einkunn mun 437 00:24:08,560 --> 00:24:09,800 vera fyrsta atriðið í gradebook. 438 00:24:09,800 --> 00:24:12,300 Í annað sinn það mun vera Annað atriði, svo framvegis og svo framvegis 439 00:24:12,300 --> 00:24:15,970 þar gradebook hefur búinn sig staka. 440 00:24:15,970 --> 00:24:20,390 Þá munum við vera fær um að summa það bekk í samantekt breytu okkar 441 00:24:20,390 --> 00:24:22,570 og aftur meðaltali okkar eins og við höfum séð áður. 442 00:24:22,570 --> 00:24:25,670 443 00:24:25,670 --> 00:24:26,950 OK, einhverjar spurningar? 444 00:24:26,950 --> 00:24:27,699 Já? 445 00:24:27,699 --> 00:24:28,990 Áhorfendur: Ég hef tvær spurningar. 446 00:24:28,990 --> 00:24:33,586 Númer eitt, hypothetically, getur þú keyrir heiltölu á þessu? 447 00:24:33,586 --> 00:24:35,604 Þarf ekki að vera tvöfaldur, er það rétt? 448 00:24:35,604 --> 00:24:37,520 DAN AMRMENDARIZ: Getur þú endurtaka þessi spurning? 449 00:24:37,520 --> 00:24:39,587 Áhorfendur: Get ég gert heiltölu eins og við meðaltalið? 450 00:24:39,587 --> 00:24:41,670 DAN AMRMENDARIZ: Getur þú do heiltölu sem meðaltal? 451 00:24:41,670 --> 00:24:45,015 Svo aftur heiltölu meðaltali í stað þess að tvöfalda? 452 00:24:45,015 --> 00:24:48,204 >> Áhorfendur: Return-- þig hafa það núna hér að neðan. 453 00:24:48,204 --> 00:24:49,870 DAN AMRMENDARIZ: Hérna, aftur 0,0? 454 00:24:49,870 --> 00:24:51,790 Áhorfendur: Já, bara aftur 0. 455 00:24:51,790 --> 00:24:56,590 Svo það verður annaðhvort 80 eða 85, en ekki 85,2. 456 00:24:56,590 --> 00:24:59,465 >> DAN AMRMENDARIZ: Svo í því tilfelli, þannig að það er nokkra mismunandi vegu 457 00:24:59,465 --> 00:25:00,090 til að svara því. 458 00:25:00,090 --> 00:25:02,760 Leyfðu mér að svara þeim í röð. 459 00:25:02,760 --> 00:25:06,740 Svo ef ég geri bara þetta aftur 0, sem er 0 er heiltala gildi. 460 00:25:06,740 --> 00:25:09,730 Og svo sem mun valda gerð villa fyrir þessu tilviki 461 00:25:09,730 --> 00:25:13,210 vegna þess að það er von að tvöfalda en er þá aftur heiltölu. 462 00:25:13,210 --> 00:25:16,770 Ef ég vil að skila heiltölu, ég get. 463 00:25:16,770 --> 00:25:20,450 Ég get sett aftur gerð að int, aftur 0 hér, 464 00:25:20,450 --> 00:25:22,047 og ekki framkvæma tvöfalda skiptingu. 465 00:25:22,047 --> 00:25:23,880 En þá myndum við vera gera heiltala deild. 466 00:25:23,880 --> 00:25:27,080 Og svo við myndum þá ekki fá meðaltal sem við myndum hugsanlega búast. 467 00:25:27,080 --> 00:25:29,210 En já við getum breytt gerðir á þann hátt. 468 00:25:29,210 --> 00:25:32,598 >> Áhorfendur: Og í öðru lagi, þér hafa einn tvöfaldur á toppinn. 469 00:25:32,598 --> 00:25:35,502 En niðri, þegar þér gera aftur Double Double, 470 00:25:35,502 --> 00:25:38,280 það er nú þegar sjálfvirkt aftur Double sniði. 471 00:25:38,280 --> 00:25:42,278 Hvers vegna gera þú þarft samt að skilgreina það með ör á toppur með tvöfalt? 472 00:25:42,278 --> 00:25:45,010 >> DAN AMRMENDARIZ: So í tilfelli, þetta er hluti 473 00:25:45,010 --> 00:25:50,580 af the-- svo að endurtaka spurninguna, því það er fólgið frá aftur 474 00:25:50,580 --> 00:25:56,030 tegundir hér, hvaða tegund þetta í raun er, við þurfum að vera skýr með Swift 475 00:25:56,030 --> 00:25:59,970 um það sem við viljum komist út úr þessari aðgerð 476 00:25:59,970 --> 00:26:02,690 þannig að þegar það virkar slá stöðva, það er hægt að ganga úr skugga um 477 00:26:02,690 --> 00:26:05,850 að það sem við höfum í raun skrifað niðri í raun í samræmi við það. 478 00:26:05,850 --> 00:26:10,225 Svo það er tegund af eins og ávísun með sjálfum konar aðstæðum. 479 00:26:10,225 --> 00:26:11,050 En það are-- 480 00:26:11,050 --> 00:26:12,560 >> Áhorfendur: [inaudible] arrow? 481 00:26:12,560 --> 00:26:19,490 >> DAN AMRMENDARIZ: Það eru tilfelli þegar við getum tilgreina að við getum óbeint 482 00:26:19,490 --> 00:26:21,550 stilla aftur gerð. 483 00:26:21,550 --> 00:26:23,940 En í þessu tilfelli, ég er ekki held að myndi vinna. 484 00:26:23,940 --> 00:26:26,190 Það er einhver annar setningafræði að við munum sjá síðar. 485 00:26:26,190 --> 00:26:30,320 486 00:26:30,320 --> 00:26:35,280 >> Allt í lagi, þannig að þetta uppspretta númerið er svolítið öðruvísi 487 00:26:35,280 --> 00:26:41,839 vegna þess að þetta flokka málatilbúnað fallið sem við köllum. 488 00:26:41,839 --> 00:26:44,130 Leyfðu mér að sýna þér hvernig það virkar áður en við fara í raun á 489 00:26:44,130 --> 00:26:48,050 að nokkrar áhugaverðar hlutum sem er að gerast í Swift. 490 00:26:48,050 --> 00:26:51,870 >> Þannig að í þessu tilfelli, ef ég að keyra bara þetta númer, eftir því hvað það er að gera 491 00:26:51,870 --> 00:26:54,900 is-- meðan, það er eins konar gefur mér undarlegt villa. 492 00:26:54,900 --> 00:26:59,730 Ég þarf að fara það nokkrum heiltölur sem stjórn lína rifrildi. 493 00:26:59,730 --> 00:27:06,220 Svo skulum sjá, 150 og 80, og ýta á Enter til að finna út hvað það er í raun að gera. 494 00:27:06,220 --> 00:27:09,890 Það er að samþykkja hvert þessi gildi sem heiltölur. 495 00:27:09,890 --> 00:27:12,040 Það er inputting þeim í gradebook. 496 00:27:12,040 --> 00:27:14,470 Og þá er það að skila að meðaltali reikna 497 00:27:14,470 --> 00:27:16,650 og outputting það sem við myndum búast. 498 00:27:16,650 --> 00:27:19,950 >> En vitanlega er það eitthvað að fara á þessari höfnun eitthvað 499 00:27:19,950 --> 00:27:23,300 eitthvað sem heiltala. 500 00:27:23,300 --> 00:27:27,300 Eins og þú might muna frá þegar við vorum að takast á við stjórn lína rifrildi 501 00:27:27,300 --> 00:27:32,640 í C og öðrum tungumálum, það fyrsta 0-ta lið í þeirri stjórn lína rifrildi 502 00:27:32,640 --> 00:27:35,774 Listinn er nafn á stjórn að við framkvæmd í raun. 503 00:27:35,774 --> 00:27:38,690 Þannig að í þessu tilfelli, ég ætla bara að lykkja yfir öllum stjórn lína rifrildi. 504 00:27:38,690 --> 00:27:41,650 En ég ætla ekki að gera hvers konar fínum athuga að sleppa yfir að fyrsta. 505 00:27:41,650 --> 00:27:45,920 Ég er bara beint eða ég óbeint stöðva sem af þessum tegundum 506 00:27:45,920 --> 00:27:49,900 eru heiltölur áður en ég raunverulega framkvæma þessa útreikningur. 507 00:27:49,900 --> 00:27:52,420 >> Og það er í raun hvað er að gerast hér. 508 00:27:52,420 --> 00:27:55,860 Fyrir hvert rifrildi í Rök Ferlið er, 509 00:27:55,860 --> 00:27:59,210 Ég ætla að framkvæma sumir stöðva. 510 00:27:59,210 --> 00:28:01,970 Og í þessu tilfelli, ég ætla til að reyna að breyta fyrst 511 00:28:01,970 --> 00:28:07,620 að rök í heiltala af framkvæma skýr Typecast, 512 00:28:07,620 --> 00:28:12,310 vegna þess að það er, á inntak, a band og ekki í raun heiltala. 513 00:28:12,310 --> 00:28:18,140 >> En þetta er góður af a furðulegur setningafræði, ef láta bekk jafngildir Int (rök). 514 00:28:18,140 --> 00:28:21,120 Hvað er raunverulega að gerast hér er mjög 515 00:28:21,120 --> 00:28:24,390 mikilvægt að nota þinn Swift. 516 00:28:24,390 --> 00:28:27,610 Þetta er með því að nota það sem er kallað valfrjáls tegund. 517 00:28:27,610 --> 00:28:34,790 >> Þannig að þetta virka, Int (rök), skilar ekki bara heiltölu, en skilar 518 00:28:34,790 --> 00:28:37,470 það sem er kallað valfrjáls heiltala. 519 00:28:37,470 --> 00:28:41,200 Og svo er þetta tegund af ein gerð ofan á gerð. 520 00:28:41,200 --> 00:28:45,900 Þú getur konar ímyndað sér eins það er aftur eins pakka. 521 00:28:45,900 --> 00:28:47,750 Og þegar þú opnar það pakki, það annaðhvort 522 00:28:47,750 --> 00:28:53,930 hefur heiltölu, sem er afleiðing eða það hefur nákvæmlega ekkert í það á öllum. 523 00:28:53,930 --> 00:28:58,140 Og þetta er gagnlegt sem stöðva villa vélbúnaður, vegna þess að í þessu tilfelli 524 00:28:58,140 --> 00:29:02,080 við getum fundið út, var þetta Gerð umreiknings vel? 525 00:29:02,080 --> 00:29:05,810 Ef það var, þá er það í raun að fara í heiltölu inni. 526 00:29:05,810 --> 00:29:08,750 Annað það er að fara að hafa einhver gildi sem við munum kalla enginn, sem 527 00:29:08,750 --> 00:29:10,920 er fulltrúi engin heiltala yfirleitt. 528 00:29:10,920 --> 00:29:13,270 Það er í raun fulltrúi ekkert. 529 00:29:13,270 --> 00:29:18,130 >> Og svo þetta ef framkvæmdir gerir okkur kleift að unwrap þessi pakki, 530 00:29:18,130 --> 00:29:19,850 sem valfrjálst bindandi. 531 00:29:19,850 --> 00:29:25,560 Og ef við erum fær um að unwrap að pakka og finna heiltala inni, 532 00:29:25,560 --> 00:29:27,720 þá hvað við erum að segja hér er að við munum þá 533 00:29:27,720 --> 00:29:33,090 leyfa sem gildi til að setja inn í Þessi fasti kallað einkunn. 534 00:29:33,090 --> 00:29:36,590 Og þetta hluti af ef yfirlýsingu, í topp hluta af ef yfirlýsingu 535 00:29:36,590 --> 00:29:40,390 mun hlaupa, því að Takið tókst. 536 00:29:40,390 --> 00:29:43,290 >> Ef það gerist bara svo að það var villa kannski 537 00:29:43,290 --> 00:29:47,040 í þessu skýr Gerð umreiknings frá streng að heiltala, kannski 538 00:29:47,040 --> 00:29:49,160 það er gildi ABC til dæmis. 539 00:29:49,160 --> 00:29:52,120 Og það er í raun ekki að fara að breyta til heiltala. 540 00:29:52,120 --> 00:29:55,520 Þá mun það skila enginn, sem er ekki heil tala. 541 00:29:55,520 --> 00:29:57,570 Og þetta ef yfirlýsingu og þá ekki. 542 00:29:57,570 --> 00:30:01,930 Einkunn verður ekki til vegna það hefur engin heiltala efni. 543 00:30:01,930 --> 00:30:06,391 Og það mun keyra þessa annað blokk í staðinn. 544 00:30:06,391 --> 00:30:06,890 Já? 545 00:30:06,890 --> 00:30:09,652 >> Áhorfendur: Nil er N-I-L? 546 00:30:09,652 --> 00:30:11,110 DAN AMRMENDARIZ: enginn er N-I-L, já. 547 00:30:11,110 --> 00:30:14,970 548 00:30:14,970 --> 00:30:20,310 >> Svo er þetta kannski ein af herða hluti um Swift, 549 00:30:20,310 --> 00:30:23,690 sérstaklega þegar þú ert í illgresið á IOS app 550 00:30:23,690 --> 00:30:27,442 og þú ert í raun að reyna að gera sumir þróun þar. 551 00:30:27,442 --> 00:30:29,400 Það er að fara að æpa á þig um valfrjáls. 552 00:30:29,400 --> 00:30:33,050 Það er að fara að vera að biðja þig um spurningarmerki og upphrópunarmerki. 553 00:30:33,050 --> 00:30:37,100 En þegar þú reikna out-- ef þú verja tíma til að vangaveltur út 554 00:30:37,100 --> 00:30:41,990 hvað er að gerast með valfrjáls gerðum, þú munt spara þér mikið um höfuðverk 555 00:30:41,990 --> 00:30:46,040 eins og þú ert að reyna að skrifa app í Swift. 556 00:30:46,040 --> 00:30:47,660 >> Það er reyndar mjög öflugur lögun. 557 00:30:47,660 --> 00:30:49,826 Og þú verður bara að taka minn orð fyrir það núna. 558 00:30:49,826 --> 00:30:52,620 En við munum sjá þessa byggingu og sumir aðrir eins og það 559 00:30:52,620 --> 00:30:56,740 í sumum af hinum kóða sem munum við sýna þér í réttlátur a lítill hluti. 560 00:30:56,740 --> 00:31:00,440 >> Eru einhverjar fyrstu spurningar hér? 561 00:31:00,440 --> 00:31:03,790 562 00:31:03,790 --> 00:31:08,690 Svo er mikilvægt takeaway um að valfrjáls tegund er tegund af metatype. 563 00:31:08,690 --> 00:31:12,500 Það annað hvort hefur gildi, og ef það gerist, þá er það 564 00:31:12,500 --> 00:31:18,110 verður kannski hafa þessi gildi í tengslum með það, eða það hefur ekkert gildi alls, 565 00:31:18,110 --> 00:31:19,620 og það er táknað með núlli. 566 00:31:19,620 --> 00:31:24,210 567 00:31:24,210 --> 00:31:28,870 Restin af þessu er kannski eins og þú vildi búast við. 568 00:31:28,870 --> 00:31:32,900 >> Svo skulum pallinum upp erfiðleikar enn og aftur. 569 00:31:32,900 --> 00:31:37,070 Og að þessu sinni, við skulum taka a líta á sumir aðrar tegundir gagna sem í raun eru. 570 00:31:37,070 --> 00:31:41,290 Einn af þeim er orðabækur, sem er mjög svipað Python orðabækur. 571 00:31:41,290 --> 00:31:48,270 Það er nokkuð svipað kjötkássa borð í C. Það er í raun kortlagning lykla 572 00:31:48,270 --> 00:31:49,820 þar lyklar geta verið strengir. 573 00:31:49,820 --> 00:31:52,670 Og þegar þú lítur upp þá lykla, þessir lyklar munu hafa gildi. 574 00:31:52,670 --> 00:31:56,020 Svo það er ekki alveg array, en staðinn, nánar tengd 575 00:31:56,020 --> 00:31:58,810 til kjötkássa kort eða kjötkássa töflunni. 576 00:31:58,810 --> 00:32:02,420 >> Við skulum sjá hvernig þetta er ætlað að vinna áður en við í raun 577 00:32:02,420 --> 00:32:05,210 fara inn í frumkóða sig. 578 00:32:05,210 --> 00:32:07,680 Ef ég keyra bara þetta, ekkert gerist í raun. 579 00:32:07,680 --> 00:32:12,430 Það er að segja mér að ég er að búast nokkrar breytur af eftirfarandi tegund. 580 00:32:12,430 --> 00:32:16,050 Þannig að ég ætla að leggja til það nokkur vandamál setja nöfn, 581 00:32:16,050 --> 00:32:18,490 svo pset0, kannski ég fékk 100. 582 00:32:18,490 --> 00:32:20,790 Og pset1 fékk ég 5. 583 00:32:20,790 --> 00:32:24,630 Og þá á prófinu, ég Vel gert og fékk 30. 584 00:32:24,630 --> 00:32:27,180 Og oops, ég lenti á pláss hér. 585 00:32:27,180 --> 00:32:30,940 >> Þegar ég lenti inn, þú getur séð það virkar smá útreikningur. 586 00:32:30,940 --> 00:32:33,740 Það segir gradebook er þrír bekk, pset1, pset0, exam. 587 00:32:33,740 --> 00:32:36,120 Og gradebook hefur þetta tiltekna meðaltali. 588 00:32:36,120 --> 00:32:38,370 Svo aftur, við erum að vinna með þessum gradebook hugmynd, 589 00:32:38,370 --> 00:32:44,650 en við erum að fara að halda áfram iterating við flókin starfsemi okkar. 590 00:32:44,650 --> 00:32:47,650 >> Svo í upphafi, við erum bara fara að búa til fall sem 591 00:32:47,650 --> 00:32:49,390 er ábyrgur fyrir prentun notkun. 592 00:32:49,390 --> 00:32:51,920 Og það er þetta hætta virka sem mun bara 593 00:32:51,920 --> 00:32:53,710 valdi hætta umsókn. 594 00:32:53,710 --> 00:32:56,530 Þetta er ekki eitthvað sem þú munt nota í IOS app. 595 00:32:56,530 --> 00:32:59,750 Þetta er aðeins, í þessu tilfelli, með stjórn lína rifrildi. 596 00:32:59,750 --> 00:33:01,990 Næst munum við byrja að flytja í átt Xcode. 597 00:33:01,990 --> 00:33:07,760 En þetta er sérstaklega við stjórn lína stíl program í Swift. 598 00:33:07,760 --> 00:33:11,490 >> Við skulum taka a líta á sumir af the áhugaverður hlutur hér. 599 00:33:11,490 --> 00:33:15,150 Við skulum sjá, eini a par af áhugavert að nefna kannski 600 00:33:15,150 --> 00:33:19,930 er að í aðgerð mínu prentun fjölda einkunna, 601 00:33:19,930 --> 00:33:26,090 þú might muna að ég hefði þessi listi af items-- pset1, pset0 og próf. 602 00:33:26,090 --> 00:33:29,130 Þú getur í raun fljótt og auðveldlega gert þetta 603 00:33:29,130 --> 00:33:34,490 með því að taka gradebook, sem er orðabók sem hefur lykla og gildi. 604 00:33:34,490 --> 00:33:38,730 Finna öll lykill er í gegnum Punkturinn lyklar aðferð hér, 605 00:33:38,730 --> 00:33:43,180 og þá nota þennan joinWithSeparator, sem mun þá taka alla lykla 606 00:33:43,180 --> 00:33:48,590 sem við höfðum slegið inn, pset1-- eða Afsakið, pset0, pset1 og exam-- 607 00:33:48,590 --> 00:33:53,030 og concatenate þeim saman með kommu og pláss 608 00:33:53,030 --> 00:33:55,400 til að búa til einn langan streng. 609 00:33:55,400 --> 00:34:00,190 Þetta ganga aðgerð er bara gríðarlega gagnlegt í margvíslegu samhengi. 610 00:34:00,190 --> 00:34:03,450 Og svo er það þetta joinWithSeparator. 611 00:34:03,450 --> 00:34:06,939 >> Og þetta er eitt sem er breytt úr Swift 1 til Swift 2. 612 00:34:06,939 --> 00:34:08,730 Það er notað til að vera Python style-- ef þú ert 613 00:34:08,730 --> 00:34:13,219 þekki Python-- a Python stíl tengingaraðferðina á strengi. 614 00:34:13,219 --> 00:34:15,699 En það er ekki lengur raunin í Swift 2. 615 00:34:15,699 --> 00:34:19,400 Þú vilt nota þetta ef þú vilt til concatenate fjölda efni 616 00:34:19,400 --> 00:34:23,380 saman með streng. 617 00:34:23,380 --> 00:34:27,889 >> Svo kannski þá í okkar umfjöllun um meðaltal áður, 618 00:34:27,889 --> 00:34:32,659 það gerir svolítið meira vit fyrir okkur að setja að meðaltali virka 619 00:34:32,659 --> 00:34:36,610 til að vera mögulegt tvöfalt frekar en bara skýr tvöfalt. 620 00:34:36,610 --> 00:34:39,239 Því við vorum að óvenjulegt ástand þar, 621 00:34:39,239 --> 00:34:41,550 hvað ef gradebook raun hefur engin gildi innan þess? 622 00:34:41,550 --> 00:34:44,280 Hvað ætti meðalávöxtun? 623 00:34:44,280 --> 00:34:46,350 >> Jæja kannski í C þú hefði gert eitthvað 624 00:34:46,350 --> 00:34:50,040 eins veitt varðstaki gildi, eins og 0,0, eða kannski neikvæð tala, 625 00:34:50,040 --> 00:34:53,690 eða eitthvað bara fyrir hönd þess að það var einhver villa ástand 626 00:34:53,690 --> 00:34:57,910 og þú kannski ekki í raun hafa getu til að reikna að meðaltali. 627 00:34:57,910 --> 00:35:05,590 Jæja fegurð að tilgreina valfrjáls tegund væri að gera það. 628 00:35:05,590 --> 00:35:09,540 Og ég er nú að segja öll þessi orð, en þetta í raun ekki nota optionals. 629 00:35:09,540 --> 00:35:12,970 En við munum sjá að í bara mínútur þar sem við getum sett meðaltali 630 00:35:12,970 --> 00:35:17,230 til að vera valfrjáls gögn tegund, svo að ef það skilar í raun einhverjum gögnum, þá 631 00:35:17,230 --> 00:35:18,470 munum við koma aftur þessi gögn. 632 00:35:18,470 --> 00:35:20,570 Annars munum við aftur enginn, að segja að þetta 633 00:35:20,570 --> 00:35:22,200 hefur ekki þroskandi útreikningur. 634 00:35:22,200 --> 00:35:25,650 635 00:35:25,650 --> 00:35:28,570 >> Við skulum fara í eitthvað annað. 636 00:35:28,570 --> 00:35:35,910 Svo héðan, við höfum verið að horfa á Öll þessi dæmi í skipanalínu. 637 00:35:35,910 --> 00:35:39,470 En í raun hvað þú ert að fara að takast á við er Xcode. 638 00:35:39,470 --> 00:35:43,720 Og einn af the ágætur hluti um Xcode er, og sérstaklega í Swift, 639 00:35:43,720 --> 00:35:47,450 er að við höfum þetta hlutur sem kallast leiksvæði. 640 00:35:47,450 --> 00:35:51,470 Og leiksvæði er alls ekki IOS app. 641 00:35:51,470 --> 00:35:54,751 En það gerir þér kleift að gera tilraunir með Swift á mjög auðveldan hátt. 642 00:35:54,751 --> 00:35:56,000 Þú getur slegið öll kóðann þinn. 643 00:35:56,000 --> 00:35:58,140 Það er fallega setningafræði hápunktur hér. 644 00:35:58,140 --> 00:36:01,600 Þegar þú býrð til nýtt skjal, það vilja spyrja þú ef þú vilt búa til leiksvæði. 645 00:36:01,600 --> 00:36:08,720 En ágætur hlutur óður róló er að á hægri gluggann, 646 00:36:08,720 --> 00:36:12,020 er það að sýna í raun þér framleiðsla úr kóðanum þínum. 647 00:36:12,020 --> 00:36:16,110 Svo ef ég skruna niður, getum við séð hvað framleiðsla á ýmsum línum af kóða 648 00:36:16,110 --> 00:36:17,200 raunverulega gerist að vera. 649 00:36:17,200 --> 00:36:19,850 650 00:36:19,850 --> 00:36:26,790 >> Þannig að í þessu tilfelli erum við að fara að breyta áttir bara smá 651 00:36:26,790 --> 00:36:30,960 og tala um eitthvað sem er í raun mikilvægt að þetta hár stigi hátt 652 00:36:30,960 --> 00:36:34,020 sem Swift rekur og það er þessi hugmynd um lokun. 653 00:36:34,020 --> 00:36:36,960 Og þú hefur sennilega séð þetta svolítið í JavaScript. 654 00:36:36,960 --> 00:36:40,770 Fyrir þá sem eru í CS50, lokun 655 00:36:40,770 --> 00:36:47,240 eru mjög vinsæll, mjög góð leið til að gera háu stigi hlutir í nútíma tungumálum. 656 00:36:47,240 --> 00:36:50,270 En það er einnig eins konar erfitt að sett höfuðið í kring í fyrsta skipti. 657 00:36:50,270 --> 00:36:52,269 Þannig að ef þú horfir á þetta fyrsta sinn, sem er allt í lagi. 658 00:36:52,269 --> 00:36:56,740 Bara líta á the uppspretta merkjamál og sjá ef þú getur fundið það út heima. 659 00:36:56,740 --> 00:37:01,050 >> Þannig að í þessu tilfelli, við skulum segja að við langar að búa til mikið af forsprökkum 660 00:37:01,050 --> 00:37:04,134 með nokkrum föstu gildi. 661 00:37:04,134 --> 00:37:05,800 Þannig að í þessu tilfelli ég er að búa til virka. 662 00:37:05,800 --> 00:37:09,270 Ég ætla að kalla það vald 2 sem tilgangurinn í lífinu 663 00:37:09,270 --> 00:37:15,770 er að taka smá inntak og tvöfaldur það, og aftur það gildi. 664 00:37:15,770 --> 00:37:21,210 Takið eftir að hér er ég samþykkja eina tegund af gögnum. 665 00:37:21,210 --> 00:37:23,137 Það er að fara til vera a breyta heitir x. 666 00:37:23,137 --> 00:37:23,970 Það er af gerðinni Double. 667 00:37:23,970 --> 00:37:26,190 Og ég ætla að fara aftur tvöfalda hér. 668 00:37:26,190 --> 00:37:29,100 Og ég ætla bara að fara að gera mjög hreinskilnislega, nokkuð 669 00:37:29,100 --> 00:37:32,650 barnaleg leið tvöföldun þetta gildi. 670 00:37:32,650 --> 00:37:35,600 Og ég skal sýna þér hvers vegna þetta er gagnlegt í bara annað. 671 00:37:35,600 --> 00:37:40,418 >> Takið eftir að hér höfum við þetta svið aftur. að einhverju í 1, punktur 672 00:37:40,418 --> 00:37:44,130 punktur punktur, 2, sem þýðir að Þessi lykkja mun keyra tvisvar. 673 00:37:44,130 --> 00:37:46,480 En þetta táknar gervibreytunnar. 674 00:37:46,480 --> 00:37:49,650 Það þýðir að ég er í raun ekki að fara að að nota þá breytu hvar 675 00:37:49,650 --> 00:37:51,070 inni þessa lykkju. 676 00:37:51,070 --> 00:37:55,380 Ég vil bara þessa línu af kóða til að keyra tvisvar, 677 00:37:55,380 --> 00:37:58,980 án þess að þurfa að vita gildi þeirra marka. 678 00:37:58,980 --> 00:38:02,570 >> Þannig að í þessu tilfelli er ég að keyra niðurstöðu sinnum x tvisvar, sem í raun 679 00:38:02,570 --> 00:38:06,560 þýðir að ég er að ferninga þetta gildi. 680 00:38:06,560 --> 00:38:10,230 Og þetta gerist vinna eins og við búast. 681 00:38:10,230 --> 00:38:16,410 Power 2, brottför gildi 2,0 gefur okkur framleiðsla af 4. 682 00:38:16,410 --> 00:38:18,810 3.2 virkar fyrir 10,24. 683 00:38:18,810 --> 00:38:22,660 >> Nú getum við gert svipað hlutur fyrir kraft 3. 684 00:38:22,660 --> 00:38:25,330 En nú að breyta aðeins svið. 685 00:38:25,330 --> 00:38:28,840 Fyrir gervibreytunnar í 1 í gegnum 3, margfalda 3 sinnum, 686 00:38:28,840 --> 00:38:29,830 og gera það sama. 687 00:38:29,830 --> 00:38:32,240 >> Þannig að þetta gæti feel a lítill háttuð. 688 00:38:32,240 --> 00:38:34,270 En það er mikilvægt hérna sem 689 00:38:34,270 --> 00:38:37,770 er að horfa á þetta tvær aðgerðir, það er 690 00:38:37,770 --> 00:38:43,600 aðeins eitt sem er öðruvísi, sem er þessi gildi á bilinu. 691 00:38:43,600 --> 00:38:46,910 Allt annað um þessi tvö aðgerðir, máttur af 3 og kraftur 2, 692 00:38:46,910 --> 00:38:50,440 eru, í raun, eins vegna þeir vinna á sama hátt. 693 00:38:50,440 --> 00:38:53,460 >> Svo á þessum tímapunkti, smá viðvörun bjalla skal fara burt. 694 00:38:53,460 --> 00:38:56,200 Vonandi það sem þú ert að segja, þú veist, þetta finnst svolítið 695 00:38:56,200 --> 00:38:59,250 eins tvíverknað. 696 00:38:59,250 --> 00:39:02,950 Kannski er einhver leið að ég myndi vera fær um að þjappa saman þetta allt 697 00:39:02,950 --> 00:39:06,630 og veita virka eða búa til fall sem 698 00:39:06,630 --> 00:39:11,550 er einmitt það sem ég vil án þess að þurfa að slá það út sérstaklega. 699 00:39:11,550 --> 00:39:15,732 Og þetta er það vald af lokun gerir okkur kleift að gera. 700 00:39:15,732 --> 00:39:16,940 Svo skulum taka a líta á þetta. 701 00:39:16,940 --> 00:39:18,700 Og ég ætla að eyða nokkrum mínútur á þetta, því þetta 702 00:39:18,700 --> 00:39:20,310 er nokkuð mikilvægt fyrir Swift. 703 00:39:20,310 --> 00:39:22,900 Við sjáum þetta allan tímann. 704 00:39:22,900 --> 00:39:24,550 Við erum að fara að skilgreina fall. 705 00:39:24,550 --> 00:39:26,380 Það er að fara að vera kölluð powerOf. 706 00:39:26,380 --> 00:39:29,470 Það er að fara að taka a breytu sem heitir Y int. 707 00:39:29,470 --> 00:39:32,220 En taka a líta á aftur gerð. 708 00:39:32,220 --> 00:39:38,730 Aftur gerð er í sviga, Double arrow tvöfaldur. 709 00:39:38,730 --> 00:39:43,370 Sem þýðir að þetta virka, þessi aðgerð powerOf, 710 00:39:43,370 --> 00:39:46,550 er aftur í aðgerð. 711 00:39:46,550 --> 00:39:50,845 Það er að samþykkja að tvöfalda og skila tvöfalt. 712 00:39:50,845 --> 00:39:53,720 Svo það gæti hljómað eins konar brjálaður, en við skulum fletta niður smá 713 00:39:53,720 --> 00:39:55,060 og hlakka til að sjá hvað gerist. 714 00:39:55,060 --> 00:39:57,910 Við erum inni þessa virka powerOf. 715 00:39:57,910 --> 00:40:00,760 Við erum að búa til nýtt hlutverk heitir exponentiator, 716 00:40:00,760 --> 00:40:02,900 en það skiptir ekki máli hvað það er. 717 00:40:02,900 --> 00:40:06,410 >> Takið eftir að þetta hefur inntak gildi x. 718 00:40:06,410 --> 00:40:09,910 Og það er að taka í tvöföldum og skila tvöfalt. 719 00:40:09,910 --> 00:40:16,320 Og þetta er sama númer sem við var hér að ofan, nema að því leyti gildi 2 720 00:40:16,320 --> 00:40:20,060 eða verðmæti 3, sem efri bundið í því bili, 721 00:40:20,060 --> 00:40:23,210 hefur verið skipt út með þetta gildi upp á y, sem 722 00:40:23,210 --> 00:40:27,230 var upphaflega breytu af powerOf virka okkar. 723 00:40:27,230 --> 00:40:31,700 Og á þessum tímapunkti, við aftur exponentiator. 724 00:40:31,700 --> 00:40:33,345 Við erum aftur aðgerðina. 725 00:40:33,345 --> 00:40:36,300 726 00:40:36,300 --> 00:40:39,550 >> Það er góður af eins og a lítill hugur blása. 727 00:40:39,550 --> 00:40:44,360 En við skulum ímynda sér hvað gerist þegar ég kalla þessa aðgerð powerOf 728 00:40:44,360 --> 00:40:47,610 og fara inn í það nokkur gildi eins 2. 729 00:40:47,610 --> 00:40:50,020 Hvað þýðir þetta er að Ég hef nú gildi 730 00:40:50,020 --> 00:40:55,130 2 fyrir y, sem þýðir að þetta gildi Y í þessu exponentiator aðgerð 731 00:40:55,130 --> 00:40:56,410 verður að verðmæti 2. 732 00:40:56,410 --> 00:41:01,290 En ég ætla að skila þessu exponentiator virka. 733 00:41:01,290 --> 00:41:05,900 >> Svo eftir það Swift segir að ég hefur búið í þessu tilfelli. 734 00:41:05,900 --> 00:41:10,550 láta ferningur er skilgreining, það er fall sem tekur að tvöfalda 735 00:41:10,550 --> 00:41:12,610 og skilar tvöfalt. 736 00:41:12,610 --> 00:41:16,590 Ég hef búið til fall sem ferninga eitthvað 737 00:41:16,590 --> 00:41:19,782 nota þetta kerfi hérna. 738 00:41:19,782 --> 00:41:22,490 Og í raun hvað er að gerast er að það er að skila þessu hlutverki 739 00:41:22,490 --> 00:41:26,390 exponentiator, en þetta gildi y er pakkað inni af því. 740 00:41:26,390 --> 00:41:31,080 Og svo nú í hvert skipti sem ég nota þetta breyta eða þetta fastann 741 00:41:31,080 --> 00:41:35,180 veldi, það það er að fara að haga sér sem fall. 742 00:41:35,180 --> 00:41:39,960 Og svo ég geti þá hringt þá breytu eins og ég myndi hringja í aðgerð, 743 00:41:39,960 --> 00:41:43,830 og fara inn í það númer, eins og í þessu tilfelli 3. 744 00:41:43,830 --> 00:41:45,910 Og ég mun þá veldi þetta gildi. 745 00:41:45,910 --> 00:41:53,340 Svo 3 veldi verður þá verða 9, eins og sjá má hér. 746 00:41:53,340 --> 00:41:56,530 >> Virkilega brjálaður, en þetta nú gefur mér tækifæri 747 00:41:56,530 --> 00:41:59,040 til að búa til aðrar aðgerðir powerOf. 748 00:41:59,040 --> 00:42:03,680 Eins og ég get sagt, OK, vel núna ég vil til að búa til nýtt hlutverk, powerOf (3), 749 00:42:03,680 --> 00:42:06,290 og geyma það í a fastann teningur. 750 00:42:06,290 --> 00:42:10,220 Og nú teningur er að fara til vera a sérstakt fall sem mun þá 751 00:42:10,220 --> 00:42:14,800 taka nokkur gildi sem inntak og teningur sem gildi eins og við getum séð á botn lína 752 00:42:14,800 --> 00:42:16,420 hér. 753 00:42:16,420 --> 00:42:18,590 teningur 2 er að fara að leiða í 8. 754 00:42:18,590 --> 00:42:21,330 755 00:42:21,330 --> 00:42:22,680 >> Vonandi sniðugt dót. 756 00:42:22,680 --> 00:42:25,920 Þú hefur aldrei séð þetta áður. 757 00:42:25,920 --> 00:42:29,990 Ég hvet þig til að líta inn í lokun og rannsaka þetta svolítið meira. 758 00:42:29,990 --> 00:42:33,570 Það er mjög öflug efni sem við sjáum mikið JavaScript og nokkrum öðrum tungumálum. 759 00:42:33,570 --> 00:42:37,160 Það er í raun mikilvægt að skilja API auk 760 00:42:37,160 --> 00:42:38,620 að við munum fá til í bara annað. 761 00:42:38,620 --> 00:42:39,456 Já? 762 00:42:39,456 --> 00:42:43,740 >> Áhorfendur: Þegar þú gerir powerOf (2), sviga, og þá 763 00:42:43,740 --> 00:42:48,764 annar svigi, annar input-- þú ert í rauninni skipta veldi. 764 00:42:48,764 --> 00:42:50,930 DAN AMRMENDARIZ: Svo líta á allra síðustu línu hér. 765 00:42:50,930 --> 00:42:55,930 Það er í raun algerlega hægt að gera það læsa eins og þú leiðbeinandi. 766 00:42:55,930 --> 00:43:00,990 Svo powerOf (5) þýðir það að við erum að fara að hafa exponentiator af 5 hér. 767 00:43:00,990 --> 00:43:04,160 Þannig að þetta er í raun að fara að vera sama og 4 til fimmta vald, 768 00:43:04,160 --> 00:43:07,200 vegna þess að við höfum búið til exponentiating virka til fimmta vald, 769 00:43:07,200 --> 00:43:09,920 og við erum liggur í sem virka gildi 4. 770 00:43:09,920 --> 00:43:12,619 Og við fáum að gildi að við gerum ráð fyrir, 1024. 771 00:43:12,619 --> 00:43:14,785 Áhorfendur: Og það er ekki nafn, svo það gerir það auðveldara 772 00:43:14,785 --> 00:43:16,570 að lesa, veldi hvað sem er. 773 00:43:16,570 --> 00:43:17,903 >> DAN AMRMENDARIZ: Hægri, nákvæmlega. 774 00:43:17,903 --> 00:43:21,120 Svo áður en ég setti bara það í föstu hér svo 775 00:43:21,120 --> 00:43:23,808 að það gerði það auðvelt að nota það nafn. 776 00:43:23,808 --> 00:43:24,308 Já? 777 00:43:24,308 --> 00:43:26,942 >> Áhorfendur: Í þessu samhengi powerOf, er það hluti 778 00:43:26,942 --> 00:43:30,774 af forritunarmálinu öfugt við því hvernig þú 779 00:43:30,774 --> 00:43:33,952 hugsa um powerOf í [inaudible]? 780 00:43:33,952 --> 00:43:35,660 DAN AMRMENDARIZ: So í þessu tilfelli, powerOf 781 00:43:35,660 --> 00:43:39,280 er einfaldlega nafnið á því fall sem ég skilgreint hér. 782 00:43:39,280 --> 00:43:41,801 Svo það er ekki sjálfsagt að tungumálinu sjálfu, 783 00:43:41,801 --> 00:43:43,550 en í staðinn, það er bara fall sem hefur 784 00:43:43,550 --> 00:43:45,628 að nafn vegna þess að ég að gefa það því nafni. 785 00:43:45,628 --> 00:43:48,770 786 00:43:48,770 --> 00:43:51,920 Aðrar spurningar? 787 00:43:51,920 --> 00:43:52,800 Allt í lagi. 788 00:43:52,800 --> 00:43:54,750 >> Nú er þetta mikill. 789 00:43:54,750 --> 00:43:58,170 En þú ert ekki að fara að sjá mikið af lokun aðgerðum sem 790 00:43:58,170 --> 00:44:03,440 eru svona þar sem þú skilgreinir, inni einn virka, annan valkost. 791 00:44:03,440 --> 00:44:04,320 Og þú getur gert það. 792 00:44:04,320 --> 00:44:06,430 En það er góður af ekki raun nauðsynlegt, ekki satt? 793 00:44:06,430 --> 00:44:09,189 Eins hvers vegna ég skilgreina þetta virka kallast exponentiator 794 00:44:09,189 --> 00:44:10,480 og þá strax aftur það. 795 00:44:10,480 --> 00:44:15,220 Hvers vegna get ég ekki strax bara aftur þessa aðgerð? 796 00:44:15,220 --> 00:44:18,890 >> Og í raun er þetta einmitt hugmyndin á bak við hugmyndina sem heitir 797 00:44:18,890 --> 00:44:22,410 nafnlaus virka, þar nafnlaus virka ekki í raun 798 00:44:22,410 --> 00:44:25,270 hafa nafn af því að þeir þarft ekki að hafa einn. 799 00:44:25,270 --> 00:44:28,700 Og svo í þessu tilviki, í 7B, getum við fundið nákvæmlega það. 800 00:44:28,700 --> 00:44:31,470 Það er öllum sama kóða, gerir nákvæmlega það sama, 801 00:44:31,470 --> 00:44:35,570 en nú höfum við breytt því lítillega þannig að þetta powerOf virka strax 802 00:44:35,570 --> 00:44:37,750 skilar virka. 803 00:44:37,750 --> 00:44:44,150 Takið eftir að eftir endurkomu, það er opið hrokkið krappi. 804 00:44:44,150 --> 00:44:46,410 Það er von á þessu inntak Double. 805 00:44:46,410 --> 00:44:48,560 Það er von að framleiðsla Double. 806 00:44:48,560 --> 00:44:52,175 Og þá í leitarorð skilur númerið sjálft. 807 00:44:52,175 --> 00:44:53,550 Svo er þetta nafnlaus aðgerð. 808 00:44:53,550 --> 00:44:57,030 Það skiptir í raun ekki hafa nafn, en áður en það var kallað exponentiator. 809 00:44:57,030 --> 00:45:00,229 En eins og við sáum, bara virkilega ekki vísa til exponentiator 810 00:45:00,229 --> 00:45:01,270 utan að virka. 811 00:45:01,270 --> 00:45:02,470 Svo það skipti ekki máli. 812 00:45:02,470 --> 00:45:06,300 Svo er þetta nafnlaus aðgerð svokallaða vegna þess að það er nafnlaus, 813 00:45:06,300 --> 00:45:09,107 en það er enn verið að nota í tengslum við þessa kóða. 814 00:45:09,107 --> 00:45:13,690 815 00:45:13,690 --> 00:45:16,079 >> Næstu sjálfur Ég er fara að halda áfram vonandi 816 00:45:16,079 --> 00:45:17,370 blása hugur þinn svolítið. 817 00:45:17,370 --> 00:45:20,410 Við getum einfalda þetta enn meira. 818 00:45:20,410 --> 00:45:24,490 Því eins og var astutely og fyrr segir, 819 00:45:24,490 --> 00:45:29,100 kannski við vitum í raun, með því að inferring frá þessum kóða, það 820 00:45:29,100 --> 00:45:31,750 framleiðsla á þessum reglum er að fara til vera. 821 00:45:31,750 --> 00:45:38,180 Og í raun, í þessu nafnlaus aðgerð, við getum í raun álykta tegundir af gögnum. 822 00:45:38,180 --> 00:45:41,650 >> Svo í þessu einn, ekki lengur við þarf að sérstaklega skilgreina 823 00:45:41,650 --> 00:45:44,850 tegund af gögnum sem er að vera inntak og úttak frá þessari aðgerð 824 00:45:44,850 --> 00:45:45,890 fyrir a par af ástæða. 825 00:45:45,890 --> 00:45:51,390 Eitt er að við höfum skilgreint, upp á Frumgerð af enclosing virka, 826 00:45:51,390 --> 00:45:55,770 hvaða tegund gagna þetta nafnlaus Eftirlit skal inntak og úttak. 827 00:45:55,770 --> 00:45:57,900 Og fyrir aðra, við getum ætlað frá kóðann 828 00:45:57,900 --> 00:46:01,930 hérna sem við erum að samþykkja inntak sem er af gerðinni Double 829 00:46:01,930 --> 00:46:03,670 og skila tvöfalt. 830 00:46:03,670 --> 00:46:07,890 >> Takið eftir að hér höfum við ekki beinlínis skilgreint nöfn rök 831 00:46:07,890 --> 00:46:11,220 að þessi aðgerð er að samþykkja. 832 00:46:11,220 --> 00:46:16,180 Og svo sjáum við getum vísað þessir þættir með $ 0, $ 1, 833 00:46:16,180 --> 00:46:20,140 svo framvegis og svo framvegis, allt eftir fjöldi þess Breytan sem notuð er 834 00:46:20,140 --> 00:46:20,850 í þessa aðgerð. 835 00:46:20,850 --> 00:46:23,370 836 00:46:23,370 --> 00:46:29,740 >> Þetta er eitthvað sem þú ert að fara að sjá mikið er þetta opinn hrokkið krappi 837 00:46:29,740 --> 00:46:32,797 skilgreiningu fylgt eftir með $ 0, og þá sumir aðgerð, 838 00:46:32,797 --> 00:46:34,130 og þá lokað krullað krappi. 839 00:46:34,130 --> 00:46:38,630 Það er nafnlaus aðgerð sem sinnir þessa aðgerð. 840 00:46:38,630 --> 00:46:42,940 Það hefur þessa breytu hvar það er tegund er álykta. 841 00:46:42,940 --> 00:46:44,860 Sem fyrst breytu er $ 0. 842 00:46:44,860 --> 00:46:49,010 Og sumir gangur er gerast á sem $ 0. 843 00:46:49,010 --> 00:46:52,100 >> Áhorfendur: Svo dollaramerki þýðir breytu grundvallaratriðum, 844 00:46:52,100 --> 00:46:53,429 og 0 þýðir því fyrra? 845 00:46:53,429 --> 00:46:54,720 DAN Armendáriz: Það er rétt. 846 00:46:54,720 --> 00:46:59,100 Svo dollaramerki þýðir í rauninni breytu og 0 þýðir fyrsta. 847 00:46:59,100 --> 00:47:02,760 En það virkar sérstaklega í þetta mál þar sem ég hef ekki nefnt 848 00:47:02,760 --> 00:47:07,940 rök í nafnlaus aðgerð mína. 849 00:47:07,940 --> 00:47:11,119 >> Áhorfendur: Er Perl eða eitthvað með þetta dollaramerki, dollara 0 þarna? 850 00:47:11,119 --> 00:47:12,702 DAN Armendáriz: Er sem, ég er hryggur? 851 00:47:12,702 --> 00:47:15,360 Áhorfendur: Er Perl hafa þetta dollara 0, dollara 1-- 852 00:47:15,360 --> 00:47:17,318 DAN Armendáriz: Ég er ekki of kunnugur Perl, 853 00:47:17,318 --> 00:47:21,340 en PHP hvað skilgreinir breytur miðað dollara merki. 854 00:47:21,340 --> 00:47:26,120 Og það getur verið sumum tungumálum sem hafa aðgerðir eins og þetta. 855 00:47:26,120 --> 00:47:28,240 Í raun, Swift lán a fullt af lögun eins og þetta 856 00:47:28,240 --> 00:47:29,489 frá fullt af öðrum tungumálum. 857 00:47:29,489 --> 00:47:32,380 Við sjáum vísbendingar um Python í það. 858 00:47:32,380 --> 00:47:35,800 Þessi skilgreining á tegund virðist koma frá OCaml. 859 00:47:35,800 --> 00:47:38,932 Og við höfum bara a heild búnt af efni frá fullt af mismunandi tungumálum. 860 00:47:38,932 --> 00:47:40,640 Það er einn af the ágætur atriði um Swift 861 00:47:40,640 --> 00:47:43,390 er að það tekur a einhver fjöldi af the bestur hugmyndir frá fullt af tungumálum 862 00:47:43,390 --> 00:47:47,229 og shoehorns þá alla saman í einn frábær tungumál. 863 00:47:47,229 --> 00:47:49,520 Í staðreynd, ef þú leyfir mér að áfram blása þinn hugur, 864 00:47:49,520 --> 00:47:51,000 þannig að við höfum verið að gera þetta allt. 865 00:47:51,000 --> 00:47:56,690 Við getum kannski einfalda þetta svolítið smátt að átta sig á því, að sjálfsögðu, 866 00:47:56,690 --> 00:48:02,120 Swift hefur exponentiating virka innbyggður í. 867 00:48:02,120 --> 00:48:04,660 Ef ég flytja Darwin, sem er bara safn sem 868 00:48:04,660 --> 00:48:09,680 lögun þessa aðgerð kallast pow, nú Ég get einfalda mátt minn á virkni 869 00:48:09,680 --> 00:48:11,830 að vera eftirfarandi. 870 00:48:11,830 --> 00:48:15,860 Það er að fara að vera aftur þetta nafnlaus aðgerð. 871 00:48:15,860 --> 00:48:17,950 >> En líta á hvernig einföld þetta er nú. 872 00:48:17,950 --> 00:48:22,780 Þetta er nafnlaus aðgerð sem er að samþykkja einhvers konar gögn, 873 00:48:22,780 --> 00:48:26,600 og það er að fara að vera einn rök sérstaklega, 874 00:48:26,600 --> 00:48:29,320 vísað á $ 0 sem er af gerðinni Double. 875 00:48:29,320 --> 00:48:32,680 Það er að fara að skila tegund Double. 876 00:48:32,680 --> 00:48:35,760 En aftur staðhæfing er nú fólgið. 877 00:48:35,760 --> 00:48:39,990 >> Og það er þetta nákvæmlega stíl sem er mjög, mjög ríkjandi í Swift, 878 00:48:39,990 --> 00:48:40,790 um allt. 879 00:48:40,790 --> 00:48:43,190 Við erum að fara að sjá þetta allan tímann í Swift. 880 00:48:43,190 --> 00:48:46,150 Þannig að ég ætla að sýna þetta allt til þú vegna þessa setningafræði. 881 00:48:46,150 --> 00:48:49,070 Þetta er mjög algengt að sjá, sem þýðir það 882 00:48:49,070 --> 00:48:51,420 er nafnlaus aðgerð sem er að skila 883 00:48:51,420 --> 00:48:54,640 sumir aðgerð á þessum rökum. 884 00:48:54,640 --> 00:48:56,940 Og það er fólgið aftur. 885 00:48:56,940 --> 00:49:01,850 Svo það er alveg það sama fyrir okkur að segja þetta hérna. 886 00:49:01,850 --> 00:49:05,730 887 00:49:05,730 --> 00:49:08,150 >> Því þetta hrokkið krappi er fall, 888 00:49:08,150 --> 00:49:10,480 við erum að framkvæma þessa aðgerð á fyrsta rifrildi. 889 00:49:10,480 --> 00:49:12,170 Við erum að fara að fara aftur að. 890 00:49:12,170 --> 00:49:14,815 En þessi ytri aftur er aftur að allt virka, 891 00:49:14,815 --> 00:49:19,855 sem heild nafnlaus aðgerð sem við höfum bara búið. 892 00:49:19,855 --> 00:49:21,689 Aðrar spurningar? 893 00:49:21,689 --> 00:49:23,980 Allt í lagi, ég veit ekki hvort þú krakkar eru tilbúin fyrir þetta, 894 00:49:23,980 --> 00:49:27,455 en við getum farið jafnvel geggjaðri með Swift. 895 00:49:27,455 --> 00:49:28,560 Þú tilbúinn? 896 00:49:28,560 --> 00:49:29,930 OK, þetta er frábært. 897 00:49:29,930 --> 00:49:35,310 >> Nú höfum við í raun getu að, í Swift, vegna þess hve mát 898 00:49:35,310 --> 00:49:39,650 og hvernig siðareglur byggist það er, að skilgreint eigin stórfurðulegur okkar rekstraraðila. 899 00:49:39,650 --> 00:49:44,060 Eins og í þessu tilfelli, við höfðum ekki rekstraraðila fyrir exponentiation-- vel, 900 00:49:44,060 --> 00:49:47,990 til að framkvæma vald eitthvað. 901 00:49:47,990 --> 00:49:53,632 En ég get, í Swift, skilgreina ný rekstraraðili sem gerir einmitt það. 902 00:49:53,632 --> 00:49:55,590 Þannig að í þessu tilfelli er fullt af setningafræði hér. 903 00:49:55,590 --> 00:49:59,980 Og ég ætla að leyfa þér að líta á það heima þegar þú horfir á þetta. 904 00:49:59,980 --> 00:50:06,890 En við erum að skilgreina þessa infix rekstraraðila, **, sem verður þá að leyfa okkur, 905 00:50:06,890 --> 00:50:09,840 með því að skilgreina hvað það virka ** raun 906 00:50:09,840 --> 00:50:15,010 er, að sætta sig við vinstri hönd hlið og hægri hönd hlið, 907 00:50:15,010 --> 00:50:21,190 og þá til að skila eksponent af því vinstri hönd hlið við hægri hönd. 908 00:50:21,190 --> 00:50:24,850 >> Og svo nú er allt í einu var ég hafa búið til nýja teljara. 909 00:50:24,850 --> 00:50:29,490 Svo 2 ** 3 merkir 2 til þriðja völd. 910 00:50:29,490 --> 00:50:34,420 [Hugur blása SOUND] Þetta með sjálft ætti að gera þú vera eins, 911 00:50:34,420 --> 00:50:37,960 OK, skrúfa C. ég ætla Swift alla leið. 912 00:50:37,960 --> 00:50:38,740 Þetta er frábært. 913 00:50:38,740 --> 00:50:40,140 Þetta er nokkuð frábær. 914 00:50:40,140 --> 00:50:42,240 >> Þó að þetta er frábært dæmi. 915 00:50:42,240 --> 00:50:45,570 En ég hef aldrei einu sinni utan þess dæmis í raun og veru 916 00:50:45,570 --> 00:50:46,800 skilgreint eigin símafyrirtækið mitt. 917 00:50:46,800 --> 00:50:49,710 En samt, sýnir það fullt af krafti Swift 918 00:50:49,710 --> 00:50:54,050 og hvers vegna þetta er í raun í raun mjög flott. 919 00:50:54,050 --> 00:50:55,832 OK, já? 920 00:50:55,832 --> 00:50:57,790 Áhorfendur: Ef þú ert skilgreina eigin símafyrirtækið þitt, 921 00:50:57,790 --> 00:51:02,940 hvernig veistu að þú ert ekki óvart reyna að búa rekstraraðili sem er 922 00:51:02,940 --> 00:51:06,040 í somewhere in C, eins og falinn einhvers staðar í Swift, 923 00:51:06,040 --> 00:51:12,210 eins hylja eitt sem þú getur ekki hafa séð áður. 924 00:51:12,210 --> 00:51:15,050 >> DAN Armendáriz: Svo ef þú ert að reyna að skilgreina eigin rekstraraðila þína, 925 00:51:15,050 --> 00:51:20,970 það er hætta á að skilgreina einn yfir núverandi rekstraraðila. 926 00:51:20,970 --> 00:51:24,870 Sem fer í að stigi smáatriðum þess Ég held ekki að við höfum tíma til að fara yfir. 927 00:51:24,870 --> 00:51:27,620 En það er hætta á. 928 00:51:27,620 --> 00:51:31,320 Og það er í raun mjög ástæðan Ég vissi ekki að nota Caret tákn, sem 929 00:51:31,320 --> 00:51:36,210 þegar við erum að slá út vald, venjulega við nota 4 litla Caret 5 eða eitthvað 930 00:51:36,210 --> 00:51:40,560 svona, bara þegar við erum Gchatting verðandi eða hvað sem er. 931 00:51:40,560 --> 00:51:43,660 En í því tilviki, sem í raun hefði valdið árekstri. 932 00:51:43,660 --> 00:51:46,450 Og svo ég forðast það bara vegna þess að Ég varð að vita í þessu tilfelli 933 00:51:46,450 --> 00:51:50,430 að það myndi valda þessum árekstri. 934 00:51:50,430 --> 00:51:52,270 >> Allt í lagi. 935 00:51:52,270 --> 00:51:55,080 Nú því miður, fyrir síðustu sjö mínútur, 936 00:51:55,080 --> 00:51:57,410 Ég verð að halda blása hugur þinn svolítið. 937 00:51:57,410 --> 00:52:00,230 Svo langar mig til að sýna þér nokkrum öðrum hlutum eins og heilbrigður. 938 00:52:00,230 --> 00:52:03,710 >> Við höfum sýnt þér þessa hugmynd hafa þessar nafnlaus aðgerðir, 939 00:52:03,710 --> 00:52:07,040 þessi lokun sem leyfa þér að konar framhjá aðgerðir í kring. 940 00:52:07,040 --> 00:52:08,100 Þú getur skila þeim. 941 00:52:08,100 --> 00:52:09,490 Þú getur vinna þá. 942 00:52:09,490 --> 00:52:11,790 Þú getur gert alls konar brjálaður efni. 943 00:52:11,790 --> 00:52:14,850 >> En einn annar hlutur sem gerist til að vera gagnlegt 944 00:52:14,850 --> 00:52:19,740 er hæfni til að, í stað þess til að koma aftur þær aðgerðir 945 00:52:19,740 --> 00:52:25,146 í aðgerð, að fara í aðgerð sem viðfang í annan valkost. 946 00:52:25,146 --> 00:52:30,430 Þú gætir verið að hugsa vel hvers vegna á jörðinni ætti ég að vilja gera eitthvað svona? 947 00:52:30,430 --> 00:52:33,660 >> Jæja, við skulum segja að ég vil að taka þetta rekstraraðila sem ég 948 00:52:33,660 --> 00:52:40,260 unnið svo hart að búa til og sækja um það að fullt af mismunandi númer 949 00:52:40,260 --> 00:52:41,770 í fylki. 950 00:52:41,770 --> 00:52:46,700 Þannig að í þessu tilfelli ég hef fjölbreytta integers-- 1, 4, 7, 2, 5, 10, 56. 951 00:52:46,700 --> 00:52:48,080 Og ég vil að tvöfalda þá alla. 952 00:52:48,080 --> 00:52:50,430 Leiðin sem við myndi venjulega gera það er bara að skrifa 953 00:52:50,430 --> 00:52:53,440 einfalt fyrir lykkju sem iterates yfir öllum þeim 954 00:52:53,440 --> 00:52:57,140 og framkvæma einhverskonar ferningur aðgerð yfir þeim, 955 00:52:57,140 --> 00:53:02,700 inputting þeim ný gildi í nýja breyta, eða öllu heldur, nýtt array hér. 956 00:53:02,700 --> 00:53:07,370 Og verðmæti framleiðslu Niðurstaðan er þá allar þessar fylki, 957 00:53:07,370 --> 00:53:10,200 eða öllu heldur allar þessar þættir veldi núna. 958 00:53:10,200 --> 00:53:12,680 >> Og við gætum gert það sama hlutur fyrir cubing það, 959 00:53:12,680 --> 00:53:15,360 en lítið viðvörun bjalla Ætti að vera að fara burt 960 00:53:15,360 --> 00:53:17,360 segja að kannski er það einhvern hátt að við myndum 961 00:53:17,360 --> 00:53:19,860 vera fær um að einfalda þetta svolítið. 962 00:53:19,860 --> 00:53:21,130 Og í raun er. 963 00:53:21,130 --> 00:53:25,320 Hvað ef við gætum búið til fall sem gerir okkur 964 00:53:25,320 --> 00:53:28,350 að samþykkja, sem rándýr, fall? 965 00:53:28,350 --> 00:53:30,350 Þannig að í þessu tilfelli, að taka líta á þessum rökum. 966 00:53:30,350 --> 00:53:33,220 Við erum að fara að taka lista yfir tvöfaldast. 967 00:53:33,220 --> 00:53:35,030 Og þá erum við að fara að sætta sig við fall 968 00:53:35,030 --> 00:53:40,990 í breytu sem heitir F sem er að fara að taka tvöfaldan og skila tvöfalt. 969 00:53:40,990 --> 00:53:43,320 Og allt framleiðsla af þessu öllu virka 970 00:53:43,320 --> 00:53:47,310 kallað Mapper er að fara að aftur á fjölbreytta heitir tvöfaldur. 971 00:53:47,310 --> 00:53:52,380 >> Hvað þetta myndi þá leyfa mér að gera er að árétta yfir þeim lista 972 00:53:52,380 --> 00:53:56,350 og gera það sama, en nú gilda að virka á hverjum 973 00:53:56,350 --> 00:53:58,970 af eigin gildum í þeim lista. 974 00:53:58,970 --> 00:54:00,750 Svo ég í raun ekki vita hvað f. 975 00:54:00,750 --> 00:54:02,010 Það skiptir ekki máli við mig. 976 00:54:02,010 --> 00:54:06,530 En svo lengi sem það tekur í tvöföldum, framkvæma sumir aðgerð á það, 977 00:54:06,530 --> 00:54:08,640 og þá skilar Double, myndi ég þá vera 978 00:54:08,640 --> 00:54:13,415 fær til landakort að virka yfir hvert einasta þáttur í listanum. 979 00:54:13,415 --> 00:54:16,270 980 00:54:16,270 --> 00:54:20,930 >> Og þessa tegund af forritun er kallast hærri röð aðgerðir, 981 00:54:20,930 --> 00:54:24,440 þar sem við erum að farið aðgerðir um viðfanga 982 00:54:24,440 --> 00:54:26,430 og gera hlutina með aðgerðum. 983 00:54:26,430 --> 00:54:29,640 Það er tegund af eins og að allar þessar hugmyndir sem við höfum lært í CS50 984 00:54:29,640 --> 00:54:31,390 og taka þá tegund af á næsta stig. 985 00:54:31,390 --> 00:54:34,140 Og þetta er allt CS51 stíl efni. 986 00:54:34,140 --> 00:54:37,080 Og svo við munum fara ofan í kjölinn meira í flokkum eins og þessi. 987 00:54:37,080 --> 00:54:38,930 >> En þetta er líka mikilvægt hér vegna þess að við 988 00:54:38,930 --> 00:54:42,010 sjá a einhver fjöldi af aðgerðum sem eru notuð í Swift 989 00:54:42,010 --> 00:54:45,590 sem í raun gerir þetta, þar sem við höfum 990 00:54:45,590 --> 00:54:48,300 nokkrar tölur, sumir array af tölum. 991 00:54:48,300 --> 00:54:50,850 Við erum að fara að fara að array í mapper okkar. 992 00:54:50,850 --> 00:54:55,770 Og við erum líka að fara að fara nokkrum virka, sem 993 00:54:55,770 --> 00:54:57,950 við höfum nú þegar skilgreint hér. 994 00:54:57,950 --> 00:54:59,690 Það er að fara að vera ferningur. 995 00:54:59,690 --> 00:55:02,220 Og við erum að fara að þá ferningur allar þessar tölur 996 00:55:02,220 --> 00:55:04,710 og geyma það í þessari niðurstöðu hér. 997 00:55:04,710 --> 00:55:07,280 998 00:55:07,280 --> 00:55:11,000 >> Þannig að þetta mál sem við höfum skilgreint okkar eigin virkni heitir mapper. 999 00:55:11,000 --> 00:55:15,370 En þetta nákvæmlega hlutur er, í raun byggt inn Swift. 1000 00:55:15,370 --> 00:55:18,960 Það eru margs af aðgerðir kallast kort. 1001 00:55:18,960 --> 00:55:21,520 Það er kort virka, það er að draga úr virkni, 1002 00:55:21,520 --> 00:55:25,630 og það er sía virka, sem í raun eiga aðgerðir 1003 00:55:25,630 --> 00:55:30,782 að hvert einasta þáttur í lista til að breyta þeim á einhvern hátt. 1004 00:55:30,782 --> 00:55:34,510 >> Áhorfendur: Svo þar sem þú ert að umbreyta gögn inn öðru formi 1005 00:55:34,510 --> 00:55:36,134 gegnum function-- 1006 00:55:36,134 --> 00:55:37,050 DAN Armendáriz: Hægri. 1007 00:55:37,050 --> 00:55:39,420 Já, þannig að virka sem við erum að samþykkja 1008 00:55:39,420 --> 00:55:41,790 er að umbreyta gögn á einhvern hátt. 1009 00:55:41,790 --> 00:55:44,700 Í þessu tilfelli, við voru annað hvort sendi til, eða við vorum cubing það, 1010 00:55:44,700 --> 00:55:50,060 eða í raun gætum við gert engin aðgerð á það yfirleitt. 1011 00:55:50,060 --> 00:55:54,150 >> En láttu mig sýna þér þá hvernig þetta er að fara að líta í reynd. 1012 00:55:54,150 --> 00:55:56,681 Og aftur, ég er að keyra smá tíma. þannig að ég er ekki 1013 00:55:56,681 --> 00:55:59,430 að fara að vera fær um að fara yfir allt af the uppspretta merkjamál hér í smáatriðum. 1014 00:55:59,430 --> 00:56:00,721 En ég hvet þig til að gera það. 1015 00:56:00,721 --> 00:56:03,850 Við munum senda það eins fljótt og auðið er eftir þessu tali. 1016 00:56:03,850 --> 00:56:07,610 >> En ef þú taka a líta á þetta, ráð fyrir að við hafa a listi af tölum, 1017 00:56:07,610 --> 00:56:10,260 fylki af tölum í þessu breytu sem heitir númer. 1018 00:56:10,260 --> 00:56:16,670 Þá viljum við að framkvæma þetta sía samstarf um þær tölur. 1019 00:56:16,670 --> 00:56:19,730 Svo sía er hærri Til fall sem 1020 00:56:19,730 --> 00:56:24,660 tekur á fjölbreytta og einnig virka. 1021 00:56:24,660 --> 00:56:28,760 Og á hverjum þáttur í að array, það virkar að virka. 1022 00:56:28,760 --> 00:56:31,990 >> Ef það skilar satt, það heldur þessi atriði. 1023 00:56:31,990 --> 00:56:36,100 Ef það skilar rangar, það kastar burtu þessi atriði. 1024 00:56:36,100 --> 00:56:40,480 Og þá skilar það lista sem er þá gert upp alla 1025 00:56:40,480 --> 00:56:44,360 af þeim atriðum sem hafa verið síuð. 1026 00:56:44,360 --> 00:56:47,150 >> Svo í öðru orðum, þetta er sama hugmynd, gradebook. 1027 00:56:47,150 --> 00:56:50,800 Við gætum hafa a fjölbreytni af einkunnum í þessu gildi kallað númer. 1028 00:56:50,800 --> 00:56:55,590 Gæti verið 100, og 70, og 40, svo á og svo framvegis. 1029 00:56:55,590 --> 00:56:59,110 Hvað þetta sía gerir er tilkynning að þetta er að nokkur dæmi um setningarleg sykur 1030 00:56:59,110 --> 00:57:01,310 fyrir óþekktan virka. 1031 00:57:01,310 --> 00:57:05,980 Þetta er nafnlaus aðgerð segja að breytu sem ég þiggja 1032 00:57:05,980 --> 00:57:09,690 er að fara að vera, ef það er meiri en 70, 1033 00:57:09,690 --> 00:57:15,837 þá mun þetta aftur satt, sem þýðir að þessi atriði verður haldið í þessari síu. 1034 00:57:15,837 --> 00:57:17,920 Svo skulum vera svolítið áþreifanlegri um þetta. 1035 00:57:17,920 --> 00:57:25,760 Ef ég hef þetta fylki af tölum og það samanstendur af 100, 70, og 40, 1036 00:57:25,760 --> 00:57:29,730 Ég framkvæma þessa síu Rekstur á hvert og eitt þeirra. 1037 00:57:29,730 --> 00:57:33,270 Svo er að fyrsti þetta gildið 100. 1038 00:57:33,270 --> 00:57:36,770 100 hærra en eða jafnt og 70 er satt, sem 1039 00:57:36,770 --> 00:57:41,950 þýðir að 100 er haldið í þetta nýja eintak af þessu fylki. 1040 00:57:41,950 --> 00:57:44,290 70 fer einnig. 1041 00:57:44,290 --> 00:57:46,020 En 40 ekki. 1042 00:57:46,020 --> 00:57:54,290 Svo hvað er skilað í passingCount er fylki af þætti 100 og 70-- 1043 00:57:54,290 --> 00:57:57,410 100, komma, 70. 1044 00:57:57,410 --> 00:57:59,870 Þeir voru aðeins tveir atriði sem var haldið. 1045 00:57:59,870 --> 00:58:03,740 Og svo ástæðan ég fór hratt í gegnum a einhver fjöldi af svona hár til 1046 00:58:03,740 --> 00:58:08,680 hlutirnir eru því þetta er að sameiginleg hlutur sem þú munt sjá í Swift nokkuð 1047 00:58:08,680 --> 00:58:16,810 oft, er að framkvæma sumir aðgerð nota þessa nafnlaus virka setningafræði. 1048 00:58:16,810 --> 00:58:18,450 >> Það er einhver flott efni. 1049 00:58:18,450 --> 00:58:24,730 Rofar eru mjög öflug í Swift, Ég meina bara eins og brjálæðingur, brjálaður öflugur. 1050 00:58:24,730 --> 00:58:28,250 Þú getur notað skipta, og þú getur beitt þeim 1051 00:58:28,250 --> 00:58:33,160 að svið, sem er eins konar brjálaður, og gera ímynda svoleiðis. 1052 00:58:33,160 --> 00:58:37,540 >> En í síðustu mínútum, Ég vil til að sleppa undan alveg langt 1053 00:58:37,540 --> 00:58:46,940 og sýna þér ákveðna dæmi um hvernig við getum búið í IOS app nota Swift. 1054 00:58:46,940 --> 00:58:49,040 Svo þegar þú ert að gera þetta, þú þarft að taka 1055 00:58:49,040 --> 00:58:51,990 a líta at-- á Apple skjöl, þeir 1056 00:58:51,990 --> 00:58:56,084 hafa a einhver fjöldi af mjög góðum námskeið til að búa til fyrsta umsókn þína. 1057 00:58:56,084 --> 00:58:58,250 Og ég hvet þig til að gera að vegna þess að þeir taka þig 1058 00:58:58,250 --> 00:59:04,110 í gegnum öll skrefin hvað nákvæmlega að Smelltu á til að búa til IOS forrit. 1059 00:59:04,110 --> 00:59:07,290 >> En hér höfum við þetta IOS app. 1060 00:59:07,290 --> 00:59:10,960 Og það er nokkuð einfalt app í raun. 1061 00:59:10,960 --> 00:59:13,840 Ef ég hlaupa þetta, láttu mig sýna þú það lítur út. 1062 00:59:13,840 --> 00:59:19,480 Allt það gerir í raun er það togar af internetinu a JSON skrá 1063 00:59:19,480 --> 00:59:22,300 sem ég hef geymt á netþjóni. 1064 00:59:22,300 --> 00:59:26,310 Og það JSON skrá skilgreinir myndir sem leyfa 1065 00:59:26,310 --> 00:59:31,680 mér að þá hringrás í gegnum, á minn app, myndir frá vefþjóni mínum. 1066 00:59:31,680 --> 00:59:32,880 >> Þannig að ég hef hér getNextImage. 1067 00:59:32,880 --> 00:59:37,100 Það sækir mynd af internetinu, og þá sýna það á skjánum. 1068 00:59:37,100 --> 00:59:38,200 >> Svo það er frekar einfalt. 1069 00:59:38,200 --> 00:59:41,550 En markmiðið hér er að sýna þú hvernig við getum sameinað hluti 1070 00:59:41,550 --> 00:59:47,820 frá síðari vikum CS50 í raunveruleg IOS umsókn. 1071 00:59:47,820 --> 00:59:53,140 Með öðrum orðum, ef til vill einn af the hlutir sem þú vilja vilja til að gera 1072 00:59:53,140 --> 00:59:56,340 er að hafa IOS forrit sem geta draga gögn frá internetinu 1073 00:59:56,340 --> 00:59:59,070 og sýna notandanum einhverjar upplýsingar. 1074 00:59:59,070 --> 01:00:03,130 Það er alveg málið þessarar kóða hér. 1075 01:00:03,130 --> 01:00:07,890 >> Svo er það mikið að segja um hvernig á að gera raunverulegt IOS þróun. 1076 01:00:07,890 --> 01:00:12,860 Það er a einhver fjöldi af brjálaður setningafræði sem við höfum ekki séð alveg enn 1077 01:00:12,860 --> 01:00:15,580 eins og a tegund, hvað flokki í raun er. 1078 01:00:15,580 --> 01:00:19,470 Við getum að miklu leyti hunsað að um sinn. 1079 01:00:19,470 --> 01:00:23,250 >> En eftir að við höfum sem innan þessa margs af hlutum 1080 01:00:23,250 --> 01:00:27,720 sem við höfum þegar séð eins aðgerðir sem hafa ákveðin nöfn. 1081 01:00:27,720 --> 01:00:32,650 Og þegar við gefum þeim virka rétt nöfn 1082 01:00:32,650 --> 01:00:36,530 sem er gert ráð fyrir því að IOS, í raun þetta finnst svolítið töfrandi. 1083 01:00:36,530 --> 01:00:40,300 En þegar þú búa til iOS forrit, það 1084 01:00:40,300 --> 01:00:47,590 eru ákveðin nöfn virka sem eru kallaðir af the sími sig 1085 01:00:47,590 --> 01:00:52,440 og umsóknin er hleðsla að reyna til að búa til ferli sem raunverulega 1086 01:00:52,440 --> 01:00:54,787 rekur umsókn þína. 1087 01:00:54,787 --> 01:00:58,120 Svo aftur, það er fullt af hlutum sem ég að gljái yfir hér í því skyni fyrir okkur 1088 01:00:58,120 --> 01:01:00,570 að tala um þetta sérstaklega. 1089 01:01:00,570 --> 01:01:06,050 En ég hvet þig til að líta á kannski hinn IOS Málþingið, en einnig nokkur 1090 01:01:06,050 --> 01:01:09,290 af kennsluefni á netinu sem gera miklu betra starf við að lýsa 1091 01:01:09,290 --> 01:01:11,030 sérstökum upplýsingum. 1092 01:01:11,030 --> 01:01:15,760 >> En við getum séð nokkra hluti sem eru áhugaverðar frá kóðann hér. 1093 01:01:15,760 --> 01:01:17,950 Takið eftir að við höfum ef yfirlýsingar. 1094 01:01:17,950 --> 01:01:20,400 Við the vegur, einn mikilvægur hlutur óður ef yfirlýsingar 1095 01:01:20,400 --> 01:01:24,860 er að svigar kringum Boolean tjáningu eru valfrjáls. 1096 01:01:24,860 --> 01:01:30,800 En hrokkið axlabönd eru ekki valfrjáls, sama hversu fáar eða margar línur af kóða 1097 01:01:30,800 --> 01:01:32,360 þú þarft í if yfirlýsingu. 1098 01:01:32,360 --> 01:01:38,670 Þú getur ekki hafa if yfirlýsingar án hrokkið axlabönd í Swift. 1099 01:01:38,670 --> 01:01:41,000 >> Og þetta er vel, svona kjánalegt. 1100 01:01:41,000 --> 01:01:43,910 En það er af sögulegum ástæðum fyrir því. 1101 01:01:43,910 --> 01:01:46,180 Það er ætlast til að spara þér frá þér. 1102 01:01:46,180 --> 01:01:49,899 Svona til dæmis, þú getur ekki útrýma hrokkið axlabönd um að 1103 01:01:49,899 --> 01:01:50,440 ef staðhæfing. 1104 01:01:50,440 --> 01:01:52,730 Þeir eru í raun nauðsynleg. 1105 01:01:52,730 --> 01:01:54,480 Svo ég hvet þig til að taka a líta á þetta. 1106 01:01:54,480 --> 01:01:56,230 En það er einn reisa sem ég vil 1107 01:01:56,230 --> 01:02:02,640 til að sýna ykkur Swift sem er nýtt til Swift 2,0 samanborið 1108 01:02:02,640 --> 01:02:08,460 að eldri útgáfur af Swift, sem er eftirfarandi. 1109 01:02:08,460 --> 01:02:11,620 Við skulum sjá hvar setti ég það hér? 1110 01:02:11,620 --> 01:02:16,630 >> Svo í þessari aðgerð sem kallast fetchJSON, þessi aðgerð 1111 01:02:16,630 --> 01:02:23,450 er ábyrgur fyrir því að toga þá JSON skrá frá vefslóð, sem bara gerist 1112 01:02:23,450 --> 01:02:26,310 að vera að keyra á CS50 IDE minn. 1113 01:02:26,310 --> 01:02:28,580 Ég byrjaði bara Apache, setja JSON skrá mitt þar, 1114 01:02:28,580 --> 01:02:32,110 og ég er fær um að þá draga það gögn frá internetinu með 1115 01:02:32,110 --> 01:02:36,430 þessi aðgerð og þetta URL, sem er veitt af símanum. 1116 01:02:36,430 --> 01:02:40,490 Það er veitt með bókasafn sem þú notar þegar 1117 01:02:40,490 --> 01:02:43,140 þú ert að gera sumir IOS app þróun. 1118 01:02:43,140 --> 01:02:49,690 >> Eftir hér að það er þetta óvenjulegt syntactical reisa heitir vörður. 1119 01:02:49,690 --> 01:02:53,530 Og í raun allt er þetta í Swift er leið staðfesta 1120 01:02:53,530 --> 01:02:56,870 að sumt hafa verið uppfyllt áður en þú 1121 01:02:56,870 --> 01:03:00,000 halda áfram með the hvíla af the virka. 1122 01:03:00,000 --> 01:03:04,260 Svo ég gæti hafa með þetta valfrjálst tegund, 1123 01:03:04,260 --> 01:03:10,530 Ég hefði getað fundið slóðina með keyra þetta NSURL aðgerð 1124 01:03:10,530 --> 01:03:16,640 og geyma það í vefslóð stöðug, og þá stöðva 1125 01:03:16,640 --> 01:03:20,820 til að sjá hvort slóðin var enginn, vegna þess að það var að fara að fara aftur valfrjáls tegund. 1126 01:03:20,820 --> 01:03:25,660 Og ef það var enginn, svo ég myndi prenta út villu og síðan heim aftur. 1127 01:03:25,660 --> 01:03:29,970 >> En í staðinn, hvað vörður leyfir okkur að gera er að mjög hlutur, 1128 01:03:29,970 --> 01:03:34,550 en tryggja að það sé reyndar raunin að url 1129 01:03:34,550 --> 01:03:38,020 hafi verið rétt sett NSURL. 1130 01:03:38,020 --> 01:03:41,810 Og ef það er, þá er það skauti yfir þetta, og það 1131 01:03:41,810 --> 01:03:46,110 mun leyfa þér að halda áfram með url hafa verið rétt skilgreind. 1132 01:03:46,110 --> 01:03:48,830 En ef það er raunin að url er ekki rétt skilgreint 1133 01:03:48,830 --> 01:03:52,550 ef þetta skilar villu eða einhver önnur óvænt hlutur 1134 01:03:52,550 --> 01:03:58,030 raun á sér stað, þetta vörður reisa gerir okkur kleift að þá framleiðsla þess villa 1135 01:03:58,030 --> 01:04:00,390 og aftur strax. 1136 01:04:00,390 --> 01:04:00,890 Já? 1137 01:04:00,890 --> 01:04:04,839 >> Áhorfendur: Svo það er góður af eins og ef þá annar? 1138 01:04:04,839 --> 01:04:07,130 DAN Armendáriz: Það er góður af eins if þá annað, já, 1139 01:04:07,130 --> 01:04:14,200 nema að þessi url er þá skilgreint fyrir allt hér á þessu. 1140 01:04:14,200 --> 01:04:20,420 Ef það fer þetta vörður, þá er það verður í raun að vera fyllt með gögn 1141 01:04:20,420 --> 01:04:29,500 og nothæf í hinum Kóðinn í virka. 1142 01:04:29,500 --> 01:04:33,790 Svo grunar mig að þú ert að fara að byrja að sjá þessa vörður eins og heilbrigður. 1143 01:04:33,790 --> 01:04:36,670 Og að hafa í huga að. 1144 01:04:36,670 --> 01:04:46,270 >> Svo bara horfa á nokkra aðra hlutir, þetta hérna er hvað, 1145 01:04:46,270 --> 01:04:53,377 finnst þér, bara miðað við það við vorum að tala um áður? 1146 01:04:53,377 --> 01:04:56,650 >> Áhorfendur: Held að það mun keyra á listanum? 1147 01:04:56,650 --> 01:04:59,100 >> DAN Armendáriz: Svo er það nálægt. 1148 01:04:59,100 --> 01:05:02,360 Þetta er fall sem við erum að skilgreina. 1149 01:05:02,360 --> 01:05:07,240 Og við erum inputting að virka sem rök við þessa aðgerð hér. 1150 01:05:07,240 --> 01:05:09,120 >> Áhorfendur: [inaudible] ef ekki núll. 1151 01:05:09,120 --> 01:05:11,470 Svo það er á listanum, ekki satt? 1152 01:05:11,470 --> 01:05:15,450 >> DAN Armendáriz: Ef villa er ekki núll, svo að is-- svo ég verð að fletta. 1153 01:05:15,450 --> 01:05:18,060 Jæja, við skulum sjá, ég get í raun ekki skruna til hægri hér. 1154 01:05:18,060 --> 01:05:23,161 villa er rök sem verið er að samþykkt þessari nafnlaus aðgerð. 1155 01:05:23,161 --> 01:05:24,410 Þetta er nafnlaus aðgerð. 1156 01:05:24,410 --> 01:05:25,480 Það hefur ekkert nafn. 1157 01:05:25,480 --> 01:05:29,850 En við erum að samþykkja þessar þrjár rök, gögn, svar, og villa. 1158 01:05:29,850 --> 01:05:33,590 Og það er að fara að skila ógilt, svo það er ekki að fara að fara aftur eitthvað. 1159 01:05:33,590 --> 01:05:37,910 Og þetta er innihald þeirrar starfsemi. 1160 01:05:37,910 --> 01:05:41,961 Og þá höfum við aðgang inni sem virka til hvers þessum rökum. 1161 01:05:41,961 --> 01:05:45,650 1162 01:05:45,650 --> 01:05:48,679 >> Svo það er vindbylur skoðunarferð um tungumál. 1163 01:05:48,679 --> 01:05:50,470 En ég vona að með þetta, vonandi sem þú tekur 1164 01:05:50,470 --> 01:05:54,490 a líta á sumir af the námskeið sérstaklega við iOS þróun með skjótum, 1165 01:05:54,490 --> 01:05:57,481 sérstaklega ef þú ferð að Apple verktaki vefur page-- 1166 01:05:57,481 --> 01:05:59,980 þeir hafa a einhver fjöldi af mjög gott námskeið til að koma þér af stað. 1167 01:05:59,980 --> 01:06:05,010 En vonandi bara þessi stund að tala um setningafræði sjálft hefur gefið 1168 01:06:05,010 --> 01:06:08,760 þú nóg til að byrja með það. 1169 01:06:08,760 --> 01:06:12,950 >> Við munum senda allan uppspretta kóðann á málþingi vefsíðu 1170 01:06:12,950 --> 01:06:17,800 eins fljótt og auðið er, og einnig glærur þannig að þú hefur tilvísun fyrir alla þá. 1171 01:06:17,800 --> 01:06:20,530 En gangi þér vel með verkefnum. 1172 01:06:20,530 --> 01:06:23,640 Og þakka ykkur öllum kærlega fyrir komuna. 1173 01:06:23,640 --> 01:06:26,990 >> [Applause] 1174 01:06:26,990 --> 01:06:28,026