1 00:00:00,000 --> 00:00:03,332 >> [Muusika mängib] 2 00:00:03,332 --> 00:00:06,200 3 00:00:06,200 --> 00:00:09,590 >> DAN AMRMENDARIZ: Igaüks, tere tulemast CS50 seminar, 4 00:00:09,590 --> 00:00:11,690 iOS App arengule kiire. 5 00:00:11,690 --> 00:00:15,690 Ma olen Dan Armendariz, ja ma olen kirikuõpetaja infotehnoloogia siin Harvardi. 6 00:00:15,690 --> 00:00:21,510 >> Ja järgmine tund läheb keeristorm Tour nii palju kraami 7 00:00:21,510 --> 00:00:25,160 Selle teema nagu me mahub. 8 00:00:25,160 --> 00:00:29,170 Ma pärast kõik lähtekoodi et sa näed täna online. 9 00:00:29,170 --> 00:00:31,990 Me ei pruugi olla võimelised tegelikult minna üle kõik 10 00:00:31,990 --> 00:00:34,810 et ma olen, et ma olen näitab sulle sel tunnil. 11 00:00:34,810 --> 00:00:37,580 Aga vähemalt loodetavasti läbi kommentaarid lähtekoodi, 12 00:00:37,580 --> 00:00:40,830 Teil on võimalik proovida aru saada, mis täpselt juhtub neid asju 13 00:00:40,830 --> 00:00:42,950 et meil ei ole päris saada. 14 00:00:42,950 --> 00:00:46,970 >> Üldine struktuur Tänapäeva rääkida on järgmine. 15 00:00:46,970 --> 00:00:52,820 Hakkame läbi teinud mõned põhilised süntaks koos Swift keeles 16 00:00:52,820 --> 00:00:56,290 laskumist mõned rohkem arenenud süntaks Swift keeles. 17 00:00:56,290 --> 00:00:59,560 Kuna keel on tõesti kaasaegne ja 18 00:00:59,560 --> 00:01:02,110 on palju kõrgel tasemel funktsioone, asju, mida me ei ole 19 00:01:02,110 --> 00:01:06,600 näinud C kogu CS50 või isegi mõned teised keeled 20 00:01:06,600 --> 00:01:09,310 et oleme alustanud kasutades CS50 nagu PHP, 21 00:01:09,310 --> 00:01:12,670 nii ma pean püüdma tutvustada ka mõned teemad, mis 22 00:01:12,670 --> 00:01:18,580 on seotud kõrgema taseme keelte et te ei näe põhjalikult CS50, 23 00:01:18,580 --> 00:01:21,380 aga näete hiljem infotehnoloogia klassid. 24 00:01:21,380 --> 00:01:25,290 Nii see saab olema tihedalt pakitud tunnis. 25 00:01:25,290 --> 00:01:28,897 Ja palun andke mulle kui teil on mingeid küsimusi. 26 00:01:28,897 --> 00:01:30,730 Nii et kui olete huvitatud tehes areng 27 00:01:30,730 --> 00:01:34,442 koos Swift, või tõesti igal iOS app arengut, 28 00:01:34,442 --> 00:01:35,900 seal on paar nõudeid. 29 00:01:35,900 --> 00:01:39,940 Esiteks, sa pead kasutama Mac, töötab näited 30 00:01:39,940 --> 00:01:43,880 et me ei kavatse olla kasutades täna suhteliselt uus versioon OS 31 00:01:43,880 --> 00:01:46,580 X. Sel juhul ma töötab X 10.5. 32 00:01:46,580 --> 00:01:48,600 Võite töötavat 10.11, kui soovite. 33 00:01:48,600 --> 00:01:52,430 Aga kõik, mis sa lähed vaata on kaasatud Xcode 7 ja hiljem, 34 00:01:52,430 --> 00:01:56,271 mis on viimane versioon Swift, mis on Swift 2.0. 35 00:01:56,271 --> 00:01:58,270 See on tegelikult päris oluline erinevus. 36 00:01:58,270 --> 00:02:01,510 Palju süntaks on muutunud päris märgatavalt 37 00:02:01,510 --> 00:02:05,890 Mõnel juhul on Swift 1.0, mis ilmus eelmisel aastal, 38 00:02:05,890 --> 00:02:08,514 Swift 2.0, mis just tuli välja sel sügisel. 39 00:02:08,514 --> 00:02:09,889 Nii et me kavatseme näidata Swift 2.0. 40 00:02:09,889 --> 00:02:13,020 Paljud asjad, mis otsida online 41 00:02:13,020 --> 00:02:18,040 kui sa üritad saada täiendavat informatsiooni erinevaid asju, 42 00:02:18,040 --> 00:02:20,710 võiksite selgesõnaliselt otsida Swift 2 43 00:02:20,710 --> 00:02:24,950 mitte lihtsalt vana Swift teha Veenduge, et teil süntaks õige. 44 00:02:24,950 --> 00:02:26,920 >> Tegelikult on see enamasti tõsi. 45 00:02:26,920 --> 00:02:31,210 Seal on kiire summa areng toimub Swift keel 46 00:02:31,210 --> 00:02:35,110 ajast Apple välja, siis ma arvan, Mis, see on olnud veidi üle aasta 47 00:02:35,110 --> 00:02:36,370 nüüd. 48 00:02:36,370 --> 00:02:39,080 Ja asjad on muutunud oluliselt selle aja jooksul. 49 00:02:39,080 --> 00:02:42,160 Ja nii ei saa pettunud kui siis, kui otsite ümber 50 00:02:42,160 --> 00:02:48,310 teemade kohta Swift või kuidas täita midagi kasutades mõned näiteks koodi 51 00:02:48,310 --> 00:02:51,210 või midagi, et see ei ole tegelikult töötavad Swift 2.0. 52 00:02:51,210 --> 00:02:53,790 Veenduge, et te otsite spetsiaalselt selle versiooni 53 00:02:53,790 --> 00:02:58,690 et püüda minimeerida mõju erinevatele versioone ja neid erinevaid asju. 54 00:02:58,690 --> 00:03:02,470 >> Ma püüan välja tuua vaid mõned asjad mis on erinev vanemad versioonid. 55 00:03:02,470 --> 00:03:03,970 Aga see on midagi, olge. 56 00:03:03,970 --> 00:03:06,770 See on ilmselt saab olema üks suuremaid peavalusid 57 00:03:06,770 --> 00:03:11,010 et teil on koos Swift on leida Näiteks kood, mis on vanemad, kasvõi 58 00:03:11,010 --> 00:03:14,050 mõne kuu võrra, üritas see oma moodsam projekti. 59 00:03:14,050 --> 00:03:15,430 Ja see lihtsalt lihtsalt ei tööta. 60 00:03:15,430 --> 00:03:18,530 Sa saad tõlkija vead, süntaks vigu, igasuguseid hull värk. 61 00:03:18,530 --> 00:03:21,580 Nii lihtsalt olla kannatlik seda ja sa loodetavasti 62 00:03:21,580 --> 00:03:24,200 on päris tore kogemus koos Swift üldine. 63 00:03:24,200 --> 00:03:28,430 >> Nüüd saad tegelikult join-- ja ma loodan me tegelikult ikka on see seda year-- 64 00:03:28,430 --> 00:03:30,910 CS 50 on Apple App arendusmeeskond, mis 65 00:03:30,910 --> 00:03:34,680 võimaldab teil installida apps mis teil luua oma iOS seadmeid. 66 00:03:34,680 --> 00:03:39,190 Nii, kui heita pilk see URL kui olete huvitatud teed seda. 67 00:03:39,190 --> 00:03:41,450 >> Nii lihtsalt paar asju Swift ise. 68 00:03:41,450 --> 00:03:43,580 See on koostatud keeles. 69 00:03:43,580 --> 00:03:45,870 Aga näed, et mõned omadused, mis me kasutame 70 00:03:45,870 --> 00:03:50,650 võimaldavad seda kasutada ka natuke nagu tõlgendada nii hästi. 71 00:03:50,650 --> 00:03:56,350 >> Palju süntaks on laenatud C. See põhineb ja kirjutatud C. 72 00:03:56,350 --> 00:04:00,400 Ja nii me näeme, et seal on palju takeaways 73 00:04:00,400 --> 00:04:04,450 oma olemasolevaid teadmisi C, et saame sadama Swift. 74 00:04:04,450 --> 00:04:07,290 >> Aga on asju, mida oleks väga erinev C. 75 00:04:07,290 --> 00:04:08,860 See on väga tugevalt tipitud. 76 00:04:08,860 --> 00:04:10,380 Seal on automaatne mäluhaldus. 77 00:04:10,380 --> 00:04:13,170 Sa ei kavatse on kasuta malloc või tasuta kõikjal. 78 00:04:13,170 --> 00:04:15,110 See on mõeldud üldisus. 79 00:04:15,110 --> 00:04:19,480 Nii teisisõnu, saate seda kasutada igasuguseid kontekstides, Apple Watch 80 00:04:19,480 --> 00:04:26,290 iPhone kõik viis kuni OS X ja isegi mõned serverid, isegi mõned skriptid. 81 00:04:26,290 --> 00:04:28,400 Aga me näeme, et toetust skriptimine 82 00:04:28,400 --> 00:04:31,360 ei ole päris seal veel nii see on teistes keeltes. 83 00:04:31,360 --> 00:04:34,930 Nii suure tõenäosusega on sul kasutada see ainult arengut 84 00:04:34,930 --> 00:04:37,060 Mac või oma iPhone. 85 00:04:37,060 --> 00:04:40,150 >> Ja see on palju kaasaegseid jooni. 86 00:04:40,150 --> 00:04:43,380 Ja palju need asjad on asjad, mis me ei kavatse proovida lahendada täna 87 00:04:43,380 --> 00:04:47,590 vaid ka meie teemad, mis ausalt öeldes saame pühendada kogu kursust. 88 00:04:47,590 --> 00:04:50,140 Tegelikult CS 51, mis on pakutakse järgmisel poolaastal, 89 00:04:50,140 --> 00:04:53,990 keskendub palju nendel teemadel mida kirjeldatakse allpool. 90 00:04:53,990 --> 00:04:56,781 Nii saate kulutada terve semestri mõista neid asju. 91 00:04:56,781 --> 00:04:58,530 Aga me ei kavatse proovida saada nende kaudu 92 00:04:58,530 --> 00:05:00,800 vähemalt nii palju, et sa ei saa aru, mis on 93 00:05:00,800 --> 00:05:03,700 toimub, kui sa vaatad kell Swift programmi 94 00:05:03,700 --> 00:05:07,310 ja suutma murda oma tee läbi lõpliku projekti. 95 00:05:07,310 --> 00:05:10,780 >> Nüüd on üks parimaid viise, et saate saada lisateavet selle 96 00:05:10,780 --> 00:05:14,700 ausalt öeldes lihtsalt läbi Apple'i ette dokumentatsiooni Swift. 97 00:05:14,700 --> 00:05:16,930 Seal on palju API mis on saadaval. 98 00:05:16,930 --> 00:05:21,170 Ja see on hea kodubaasi teile otsida konkreetseid asju, mida 99 00:05:21,170 --> 00:05:23,020 tahad teha API kaasates iOS. 100 00:05:23,020 --> 00:05:26,350 Kui soovite kaamerat kasutada Näiteks võite alustada vaadates siin, 101 00:05:26,350 --> 00:05:32,540 ja kasutada ka Google ja Stack Overflow nagu tavaliselt. 102 00:05:32,540 --> 00:05:36,670 >> Kõik küsimused selle enne kui me hüpata paremale? 103 00:05:36,670 --> 00:05:37,880 Hästi. 104 00:05:37,880 --> 00:05:38,700 Liigume edasi. 105 00:05:38,700 --> 00:05:42,620 >> Nii et kõigepealt on mul arvu Näiteks failid. 106 00:05:42,620 --> 00:05:46,040 Ja ma lähen, et proovida astuda nende kaudu suhteliselt kiiresti. 107 00:05:46,040 --> 00:05:49,190 See on Hello World faili Swift. 108 00:05:49,190 --> 00:05:51,050 See on väga lihtne. 109 00:05:51,050 --> 00:05:54,360 Seal on palju rohkem kommentaare kui on olemas tegelik koodi. 110 00:05:54,360 --> 00:05:57,100 Märka tegelik kood on Kõige all on line 14. 111 00:05:57,100 --> 00:05:57,980 Ta ütleb, print. 112 00:05:57,980 --> 00:05:59,820 Ja siis on funktsioon kõne. 113 00:05:59,820 --> 00:06:03,010 Me pääsemist seda string nimega Tere CS50. 114 00:06:03,010 --> 00:06:04,750 Pange tähele, et seal ei ole semikoolonit. 115 00:06:04,750 --> 00:06:07,010 Pange tähele, et seal ei ole int main. 116 00:06:07,010 --> 00:06:10,392 Ei ole ükski Cruft et meil oli koos C. 117 00:06:10,392 --> 00:06:15,020 Kui me kasutame Swift sel viisil, mis on lihtsalt kirjutatud tekstifaili 118 00:06:15,020 --> 00:06:18,340 ja salvestatud minu arvuti, siis Ma ei kompileerida ja käivitada. 119 00:06:18,340 --> 00:06:20,920 >> Pange tähele, et siin ma olen ei kasuta CS50 IDE. 120 00:06:20,920 --> 00:06:24,460 See eeldab, et ma olen töötab ja et ma olen OS X, 121 00:06:24,460 --> 00:06:27,870 ja et ma olen Xcode juba paigaldatud Selle masina, et seda 122 00:06:27,870 --> 00:06:29,080 tegelikult funktsioon. 123 00:06:29,080 --> 00:06:33,349 Aga see on lihtsalt tavaline tekstifail et siis saame koostada ja muuta. 124 00:06:33,349 --> 00:06:34,890 Vaatame, kuidas see tegelikult toimib. 125 00:06:34,890 --> 00:06:37,430 Mis siis, kui ma tahan kompileerida? 126 00:06:37,430 --> 00:06:40,450 swiftc 1.swift. 127 00:06:40,450 --> 00:06:42,960 Pärast hetkelist või kaks, siis näete, et meil on nüüd 128 00:06:42,960 --> 00:06:45,360 koostatud seda arvesse fail nimega 1. 129 00:06:45,360 --> 00:06:51,090 Ja nüüd on meil trükitud meie CS50, Meie Hello World rakenduse pigem. 130 00:06:51,090 --> 00:06:54,690 >> Pange üks teine ​​asi kui ka see, et vaikimisi 131 00:06:54,690 --> 00:07:00,090 me ei pea sisend a / n trükkida uus liin. 132 00:07:00,090 --> 00:07:05,315 Vaikimisi print funktsiooni Swift trükib uue liini jaoks. 133 00:07:05,315 --> 00:07:09,284 Võite liigu vabatahtlik täiendav parameeter öelda seda mitte teha. 134 00:07:09,284 --> 00:07:10,950 Aga Google lisateavet selle kohta. 135 00:07:10,950 --> 00:07:13,450 Vaikimisi on see teha print line. 136 00:07:13,450 --> 00:07:16,420 >> Olgu, nii liigume edasi siis mõned muud asjad. 137 00:07:16,420 --> 00:07:18,620 Niisiis, kuidas me saame tegelikult määratleda muutujad? 138 00:07:18,620 --> 00:07:21,960 Me ei saa seda teha on kasutades ühte kahest meetodist. 139 00:07:21,960 --> 00:07:26,122 Ja üks, mis ma tahan teile öelda, umbes Esimene on see let määratlus. 140 00:07:26,122 --> 00:07:27,830 Ja see on oluline sest tegelikult 141 00:07:27,830 --> 00:07:30,240 mida me teeme on määratleda pidev. 142 00:07:30,240 --> 00:07:34,010 Me ei kavatse luua muutuja, või pigem pidev nimetatakse nimi, 143 00:07:34,010 --> 00:07:38,200 anda talle mõned data-- sisse Sel juhul string Dan. 144 00:07:38,200 --> 00:07:40,630 Aga kasutades seda let märksõna, ütleme 145 00:07:40,630 --> 00:07:43,860 et see variable-- või jälle constant-- nimetatakse 146 00:07:43,860 --> 00:07:46,220 nimi on kunagi muuta. 147 00:07:46,220 --> 00:07:50,120 See saab olla muutumatu kogu kestus Programmi 148 00:07:50,120 --> 00:07:53,100 või kogu kestus kontekstis 149 00:07:53,100 --> 00:07:55,390 et muutuja on kättesaadav. 150 00:07:55,390 --> 00:08:00,096 >> See on tõesti oluline, et kui teil on andmeid, mis ei ole 151 00:08:00,096 --> 00:08:02,970 muutu oma programmi, ja sa näed erinevaid näiteid 152 00:08:02,970 --> 00:08:06,790 umbes kui tahame kasutada las võrreldes teiste süntaks, 153 00:08:06,790 --> 00:08:11,040 on oluline, et te kasutate lasta võimalusel, sest see annab teada 154 00:08:11,040 --> 00:08:13,740 keelt, et see on ei kavatse muuta, 155 00:08:13,740 --> 00:08:16,590 ja ta võib tegelikult teostada palju optimeerimine 156 00:08:16,590 --> 00:08:19,560 parandada kiirust ja ohutust oma programmi. 157 00:08:19,560 --> 00:08:24,480 Ja ohutuse, ma mõtlen ei lase see crash hull vigu 158 00:08:24,480 --> 00:08:27,910 et me võiksime olla harjunud nägema C. 159 00:08:27,910 --> 00:08:32,460 >> Siis saame kasutada string interpolatsiooni kapseldada selle sees string. 160 00:08:32,460 --> 00:08:35,200 Nii näeme selles print line, printida hello, 161 00:08:35,200 --> 00:08:38,950 ja siis kasutades kurakriips avatud Sulgudes, ja seejärel Nimiminu muutuja 162 00:08:38,950 --> 00:08:41,809 sel juhul konstantne, sulgeda sulgudes. 163 00:08:41,809 --> 00:08:46,400 Ma põhimõtteliselt siis paneb sisu selle muutuja nimega nimi 164 00:08:46,400 --> 00:08:50,240 sees string ja seejärel printida tulemus seal. 165 00:08:50,240 --> 00:08:54,070 >> On veel üks muudatus seda pilti mis seisneb selles, et mul on, tipus, 166 00:08:54,070 --> 00:08:57,340 kasutusele Jutt line, mis põhimõtteliselt lihtsalt täpsustab 167 00:08:57,340 --> 00:09:00,180 et ma tahan kasutada Swift tõlk, mille 168 00:09:00,180 --> 00:09:04,190 tähendab, et ma ei pea enam koostada selle konkreetse programmi. 169 00:09:04,190 --> 00:09:06,567 Ma lihtsalt kasutada seda nagu oma script. 170 00:09:06,567 --> 00:09:09,400 Kuid see on antud juhul taga stseenid on koguda ning seejärel 171 00:09:09,400 --> 00:09:10,030 olles perspektiivis. 172 00:09:10,030 --> 00:09:13,540 See on lihtsalt nähtamatu. 173 00:09:13,540 --> 00:09:15,880 >> Olgu, nii liigume edasi. 174 00:09:15,880 --> 00:09:19,650 Nii et natuke petmine mis juhtus enne. 175 00:09:19,650 --> 00:09:23,230 Ma näitasin teile, et ma võiks määratleda konstant. 176 00:09:23,230 --> 00:09:25,490 Ja ma võiks pakkuda mõningaid andmeid seda teha. 177 00:09:25,490 --> 00:09:29,240 Aga sel juhul, märkad, et ma ei ole tegelikult täpsustada, millist tüüpi andmeid 178 00:09:29,240 --> 00:09:29,820 see see on. 179 00:09:29,820 --> 00:09:32,780 Ja see on sellepärast, tõlkija, Swift saab 180 00:09:32,780 --> 00:09:36,910 järeldada andmete tüübi lihtsalt aluseks andmete kohta, mida ma panin ta. 181 00:09:36,910 --> 00:09:41,760 Sest ta teab, et hinnates seda muutuva siin, see andmete õigus 182 00:09:41,760 --> 00:09:43,370 Siit võivad ta teab, et see on string. 183 00:09:43,370 --> 00:09:48,690 Ja nii see pidev nimi on seega saab olema string samuti. 184 00:09:48,690 --> 00:09:52,730 >> Aga me ei saa ka olla selgesõnaline umbes tüüpi, mis on 185 00:09:52,730 --> 00:09:55,790 me kasutame konstandid või muutujate 186 00:09:55,790 --> 00:10:01,590 kasutades seda süntaksit instead-- lase nimi koolon String võrdub 187 00:10:01,590 --> 00:10:05,530 Dan, mis antud juhul tähendab, et me oleme läheb määratleda pidev nn nime. 188 00:10:05,530 --> 00:10:07,150 See saab olema tüüpi String. 189 00:10:07,150 --> 00:10:10,550 Ja väärtus saab olema Dan. 190 00:10:10,550 --> 00:10:12,550 Nüüd muul viisil, mis saame luua variables-- 191 00:10:12,550 --> 00:10:15,549 ja need on Muudetav muutujad, mis tähendab, et me oleme tegelikult läheb 192 00:10:15,549 --> 00:10:19,670 muuta nende sisu millalgi kestuses kontekstis 193 00:10:19,670 --> 00:10:23,890 et see muutuja on defined-- me kasuta var märksõna asemel lasta. 194 00:10:23,890 --> 00:10:27,400 Aga jälle, vaikimisi, kui sa ei tea et sa pead manipuleerida, et andmed, 195 00:10:27,400 --> 00:10:30,510 proovida kasutada üürile jõudlustäiustusi. 196 00:10:30,510 --> 00:10:33,740 >> Sel juhul saan siis täpsustada, millist tüüpi andmeid 197 00:10:33,740 --> 00:10:37,650 et ootame olema sees Selle uue muutuja nimega silt. 198 00:10:37,650 --> 00:10:38,800 See saab olema string. 199 00:10:38,800 --> 00:10:43,030 Ja me läheme siis concatenate kaks stringid koos, string hello, 200 00:10:43,030 --> 00:10:48,070 ja string esindab muutuja, või pigem pidev nime. 201 00:10:48,070 --> 00:10:50,660 >> Nii et see on tore, sest see Mõnevõrra PHP nagu me 202 00:10:50,660 --> 00:10:52,250 on väga lihtne string ahel. 203 00:10:52,250 --> 00:10:56,350 Me ei pea automaatselt kasutada mingit mälu haldamine 204 00:10:56,350 --> 00:11:00,580 suurendama ja teha mingit naljakaid asju seal. 205 00:11:00,580 --> 00:11:05,040 See toimib nagu me tegelikult oodata. 206 00:11:05,040 --> 00:11:09,370 >> Olgu, küsimusi selle? 207 00:11:09,370 --> 00:11:12,520 >> Nüüd muul põhjusel, et vajame teil võimalus 208 00:11:12,520 --> 00:11:15,490 saaks määratleda, milline tüüpi muutujaid on 209 00:11:15,490 --> 00:11:18,170 on seetõttu mõnikord me seda ei tee soovid vormindada muutujad 210 00:11:18,170 --> 00:11:21,080 mõned andmed on punkti määratlus. 211 00:11:21,080 --> 00:11:23,500 Nii et kui oletame, et ma tahan hakata sisestanud 212 00:11:23,500 --> 00:11:25,040 mõned klassid arvesse hinne raamat. 213 00:11:25,040 --> 00:11:27,530 Noh ma tean, et üks muutujaid, et ma tahan olla 214 00:11:27,530 --> 00:11:30,280 läheb olla Muutuv hinne. 215 00:11:30,280 --> 00:11:33,010 Ja me teame ka, et meil tahad seda täisarv. 216 00:11:33,010 --> 00:11:36,030 Aga äkki teeme veel on, et hinne saadaval. 217 00:11:36,030 --> 00:11:39,570 >> Swift, sa pead määratleda, millist liiki andmeid 218 00:11:39,570 --> 00:11:44,000 mis on seostatud muutuja või lasta pidev 219 00:11:44,000 --> 00:11:47,840 Enne, kui saate tegelikult kasutada, et muutuja. 220 00:11:47,840 --> 00:11:51,170 Sest see on tugevalt tipitud, teil on siduda tüüp 221 00:11:51,170 --> 00:11:52,890 Nende muutujaid. 222 00:11:52,890 --> 00:11:56,120 >> Nii et sel juhul, kui ma ei ole korralikult vormindatud esimest mõned väärtus, 223 00:11:56,120 --> 00:12:00,520 siis ma pean ütlema Swift, mida Ma ootan, et andmete tüübi olla. 224 00:12:00,520 --> 00:12:02,650 Ja see läheb veel sama andmetüüp 225 00:12:02,650 --> 00:12:05,780 läbi ajaloo on see programm. 226 00:12:05,780 --> 00:12:10,050 >> Nüüd siis võib tekkida kiusatus kohe Olen loonud selle klassi muutuja 227 00:12:10,050 --> 00:12:13,530 ja kui see täisarv 100, nüüd kui ma 228 00:12:13,530 --> 00:12:18,540 tahan proovida concatenate stringi et täisarv, 229 00:12:18,540 --> 00:12:21,610 võib tekkida kiusatus siiski kasutada et string konkatenatsioonioperaator 230 00:12:21,610 --> 00:12:24,500 nagu me tegime paar rida enne. 231 00:12:24,500 --> 00:12:26,460 Aga kahjuks, See tegelikult ei 232 00:12:26,460 --> 00:12:29,270 töötada, sest sa oled sisuliselt täita 233 00:12:29,270 --> 00:12:32,380 operatsiooni kaks erinevat tüüpi. 234 00:12:32,380 --> 00:12:36,856 >> Nüüd on see väga erinev teistest keeltes nagu PHP, mis on tõesti 235 00:12:36,856 --> 00:12:38,480 loosey goosey oma omamoodi tüübid. 236 00:12:38,480 --> 00:12:40,030 Nad lihtsalt meeldib, jah, mida iganes, ma ei hooli. 237 00:12:40,030 --> 00:12:42,710 Anna mulle üks tüüp ja äkki ma teen õiget asja. 238 00:12:42,710 --> 00:12:46,060 >> Sel juhul Swift on väga range, milliste 239 00:12:46,060 --> 00:12:47,350 et teil on tegemist. 240 00:12:47,350 --> 00:12:50,700 See liitmise operaator või konkatenatsioonioperaator 241 00:12:50,700 --> 00:12:54,400 on põhiolemuselt paar erinevaid valikuvõimalusi. 242 00:12:54,400 --> 00:12:56,970 Seda saab teha liitmise täisarve, või siis 243 00:12:56,970 --> 00:13:00,870 saab teha stringi liitmise tehe, ja võibolla mõned muud asjad samuti. 244 00:13:00,870 --> 00:13:05,550 Aga kui nimetatud käitleja ei tunne mis on mõlemal pool seda, 245 00:13:05,550 --> 00:13:10,452 või pigem nende kombinatsioon kahte tüüpi, ei ole see, mida ta on oodanud, 246 00:13:10,452 --> 00:13:11,910 siis läheb põhjusta riket. 247 00:13:11,910 --> 00:13:16,690 >> Nii et sel juhul, mida see tähendab olema string pluss täisarv? 248 00:13:16,690 --> 00:13:18,880 Hästi kontekstis Selleks peame ilmselt tahad 249 00:13:18,880 --> 00:13:21,990 teha string konkatenatsioonioperatsiooniga. 250 00:13:21,990 --> 00:13:26,420 Aga muidugi arvuti ei ole see mingi konteksti. 251 00:13:26,420 --> 00:13:29,950 Ja nii me peame andma et lisateave 252 00:13:29,950 --> 00:13:32,390 lase tal tean, mida see on see, et me tahame teha. 253 00:13:32,390 --> 00:13:36,860 >> Nii teisisõnu, asjaolu et Swift on tugevalt tipitud 254 00:13:36,860 --> 00:13:39,520 tähendab, et sa pead tegema natuke lisatööd 255 00:13:39,520 --> 00:13:42,100 saada see tegutseda nii, et sa tahaksid. 256 00:13:42,100 --> 00:13:43,710 Aga selle tulemusena on kindlam. 257 00:13:43,710 --> 00:13:46,290 Ja kui sul on võtta arvesse nende liikide, 258 00:13:46,290 --> 00:13:49,300 asjad lihtsalt öeldes alustada tööd päris hästi. 259 00:13:49,300 --> 00:13:52,520 >> Nii sel juhul me siis oleks sooritada stringi liitmise tehe 260 00:13:52,520 --> 00:13:56,040 selgesõnaliselt casting täisarv string 261 00:13:56,040 --> 00:13:58,490 pakkimine ta selles kapitali S String funktsiooni, 262 00:13:58,490 --> 00:14:03,510 ja seejärel kasutades stringi liitmise tehe operaator muuta meie label muutuja, 263 00:14:03,510 --> 00:14:06,280 ja siis välja trükkida. 264 00:14:06,280 --> 00:14:08,420 >> Siiamaani on kõik korras? 265 00:14:08,420 --> 00:14:12,020 Olgu, liigume edasi. 266 00:14:12,020 --> 00:14:16,300 >> Nüüd on olemas erinevaid andmeid tüübid, mida saame kasutada Swift. 267 00:14:16,300 --> 00:14:21,620 Nagu olete harjunud, saame luua Muutuv massiivi. 268 00:14:21,620 --> 00:14:26,140 Ja et massiivi saab ainult sisaldavad ühte tüüpi. 269 00:14:26,140 --> 00:14:30,360 >> Nii et sel juhul me ei kavatse luua Muutuv massiive täisarvud, mis 270 00:14:30,360 --> 00:14:34,800 Me nimetame klassid ja suudame salvestada et selles nurksulg 271 00:14:34,800 --> 00:14:38,650 formaadis kui olete harjunud to mitmesugustes teistes keeltes. 272 00:14:38,650 --> 00:14:41,150 Aga märgata, et siin me oleme määratlemisel paar asja. 273 00:14:41,150 --> 00:14:45,350 klassid on Muutuv variable-- Me ei kasuta let märksõna. 274 00:14:45,350 --> 00:14:49,620 Nii et see tähendab siis saame muuta sisu selle massiivi. 275 00:14:49,620 --> 00:14:53,420 See on tüüpi Array keskmine, ja me ei saa öelda, et 276 00:14:53,420 --> 00:14:56,260 nende baasil nurksulgudes siin. 277 00:14:56,260 --> 00:14:58,930 >> Nüüd üks toredaid asju on see, et me 278 00:14:58,930 --> 00:15:02,310 on juurdepääs palju Lisainfo 279 00:15:02,310 --> 00:15:07,110 umbes massiiv lihtsalt kasutades mõned lihtsad dot märke. 280 00:15:07,110 --> 00:15:10,500 Nii näiteks, grades.count annab meile 281 00:15:10,500 --> 00:15:14,820 arvu punkte, mis on olemas, et massiiv, mida me saame siis juurde päris 282 00:15:14,820 --> 00:15:19,090 lihtsalt lihtsalt kasutades, et dot märke. 283 00:15:19,090 --> 00:15:21,830 >> Kui soovite lisada täiendavaid kirjed kuni see massiiv, 284 00:15:21,830 --> 00:15:27,220 sa ei saa seda teha PHP stiili kus sa lihtsalt selgesõnaliselt määratleda, 285 00:15:27,220 --> 00:15:30,910 etteantud indeks, mingi väärtus mida soovite sisestada. 286 00:15:30,910 --> 00:15:37,210 Selle asemel kasutage append meetod massiivi tüüp 287 00:15:37,210 --> 00:15:40,920 lisama, et objekt, 95, et selles nimekirjas. 288 00:15:40,920 --> 00:15:45,990 >> Nüüd see massiiv on järgmine contents-- 100, 0, 90, 85. 289 00:15:45,990 --> 00:15:49,270 Ja nüüd me oleme lisatud 95, mis samuti. 290 00:15:49,270 --> 00:15:51,830 >> On ka teisi võimalusi saame lisada asju. 291 00:15:51,830 --> 00:15:55,030 Võite tegelikult kasutada liitmise operaator, 292 00:15:55,030 --> 00:15:59,200 mis tuleb tõlgendada nii massiivi append operatsioon. 293 00:15:59,200 --> 00:16:04,680 Ja sa võid lisada teise massiivi, mille sisu on 70 ja 80, 294 00:16:04,680 --> 00:16:05,560 Selle massiivi. 295 00:16:05,560 --> 00:16:08,250 Nüüd on meil sisu selles muutuja 296 00:16:08,250 --> 00:16:17,220 grades-- 100, 0, 90, 85, 95, 70 ja 80. 297 00:16:17,220 --> 00:16:21,850 See on lihtsalt ilus väike süntaktilise suhkur, mis Swift annab meile. 298 00:16:21,850 --> 00:16:23,850 >> Nii et kui me tahame, et lööme kokku klassid, me võib-olla 299 00:16:23,850 --> 00:16:27,340 tahame seda korrata üle iga elemendi selles loop. 300 00:16:27,340 --> 00:16:32,150 Ja me ei pea, Swift, mõiste on silmus, kui te ootaks. 301 00:16:32,150 --> 00:16:35,350 Aga kuidas me näidata vahemikus on veidi erinev. 302 00:16:35,350 --> 00:16:37,790 Nii selles asjas Kokkuvõttes kõik, siis me 303 00:16:37,790 --> 00:16:40,650 kavatse luua ajutine muutuja nimega summa, et meile 304 00:16:40,650 --> 00:16:42,580 säilitada seda loota. 305 00:16:42,580 --> 00:16:44,430 >> Ja märkate meie jaoks loop ehitus siin. 306 00:16:44,430 --> 00:16:46,820 Sest indeks 0 .. 00:16:51,480 308 00:16:51,480 --> 00:16:57,390 Nii et see ehitus, 0 .. 00:17:01,860 öeldes, et me ei kavatse luua vahemikus täisarvud vahemikus 0 kuni 310 00:17:01,860 --> 00:17:05,750 kuid alla grades.count. 311 00:17:05,750 --> 00:17:09,577 Nii et see on 0, 1, 2, 3, 4, 5, kuni aga palju üks 312 00:17:09,577 --> 00:17:10,410 enne grades.count. 313 00:17:10,410 --> 00:17:14,160 >> Nii et see on teistsugune kui kuidas me oleksid tavaliselt kasutatakse silmuseid 314 00:17:14,160 --> 00:17:18,569 kus teil on mõned indeks varieeruv, seadke see võrdub 0 algul 315 00:17:18,569 --> 00:17:25,480 ja siis integreerida, et alles mõne väärtus väiksem kui arv punkte 316 00:17:25,480 --> 00:17:27,140 et massiivi. 317 00:17:27,140 --> 00:17:29,820 >> Seega on modifikatsiooni sellele, tegelikult 318 00:17:29,820 --> 00:17:35,010 mis võimaldab meil väga kergesti määrata erinevaid valikuid. 319 00:17:35,010 --> 00:17:40,570 Kui muudad vahemik kolm punkti, 0 ... grade.count, 320 00:17:40,570 --> 00:17:45,120 see tähendab vahemikus 0 to grades.count kaasav, 321 00:17:45,120 --> 00:17:49,260 mis tähendab, et see number on ka Seejärel kaasatakse sellesse vahemikku. 322 00:17:49,260 --> 00:17:52,110 >> Aga see on väga mugav nende täpse asju, 323 00:17:52,110 --> 00:17:54,590 kui meil on täita korduste üle aasa 324 00:17:54,590 --> 00:17:59,630 sest need indeksid nulli indekseeritud, Nagu me oleme näinud teistes keeltes 325 00:17:59,630 --> 00:18:02,360 samuti. 326 00:18:02,360 --> 00:18:05,210 Kõik küsimused selle kohta loop? 327 00:18:05,210 --> 00:18:10,660 >> Nii et kaudne määratlus Selle indeks muutuja, 328 00:18:10,660 --> 00:18:14,350 mille väärtus algab 0, ja jätkub iga loop iteratsiooni 329 00:18:14,350 --> 00:18:17,950 suurendada 1 kuni punktini, mis on võrdne grades.count, 330 00:18:17,950 --> 00:18:20,380 sel hetkel, silmus katkestab. 331 00:18:20,380 --> 00:18:23,730 >> Pange tähele, et meie string interpolatsiooni siin 332 00:18:23,730 --> 00:18:26,910 me saame tegelikult täita mõned lihtsad manipulatsioonid neid väärtusi. 333 00:18:26,910 --> 00:18:31,230 Nii indeks pluss 1 tegelikult sooritada liitmise, et väärtus 334 00:18:31,230 --> 00:18:34,780 sest indeks on Sel juhul täisarv. 335 00:18:34,780 --> 00:18:37,810 Ja sel hetkel, siis seejärel muundada string 336 00:18:37,810 --> 00:18:42,230 ja interpoleeritud sellesse string siin ja välja trükkida ootame. . 337 00:18:42,230 --> 00:18:44,520 >> Ja hea asi umbes massiivid siin 338 00:18:44,520 --> 00:18:50,730 et meil on ka võimalus, et on edev väärtusi ja Seadistusvärtuste 339 00:18:50,730 --> 00:18:54,080 abil nurksulg tähistusi oleme näinud ka teistesse keeltesse. 340 00:18:54,080 --> 00:18:57,130 341 00:18:57,130 --> 00:19:01,030 >> Olgu, nii siit, nüüd arvutada meie arvele kogu meie klassid. 342 00:19:01,030 --> 00:19:02,780 Nüüd omamoodi järgmine loogiline samm oleks 343 00:19:02,780 --> 00:19:07,580 teha jaotus operatsioon leida välja keskmise taseme klassid. 344 00:19:07,580 --> 00:19:10,150 Aga midagi olulist siin toimub, mida 345 00:19:10,150 --> 00:19:15,020 on see summa olla täisarv. 346 00:19:15,020 --> 00:19:18,020 Aga me peame sooritama teatud omamoodi topelt jagamine. 347 00:19:18,020 --> 00:19:20,600 Ja see saab olema äärmiselt oluline, kui 348 00:19:20,600 --> 00:19:24,140 tahame selle toimingu, sest mida me ütleme 349 00:19:24,140 --> 00:19:28,430 on see, et me peame tegelikult täita jagunemine kahe kahekordistub. 350 00:19:28,430 --> 00:19:31,370 Ja jälle, sest Swift väga tugevalt tipitud, 351 00:19:31,370 --> 00:19:36,760 peame selgelt sätestatud kõik kirjed kahekordistab enne kui me tegelikult 352 00:19:36,760 --> 00:19:38,300 Toimingu tegemiseks. 353 00:19:38,300 --> 00:19:40,550 >> Nii et meil Tehke topelt jagamine, 354 00:19:40,550 --> 00:19:43,730 see ei ole piisav vaid üks nende sõlmede topelt. 355 00:19:43,730 --> 00:19:46,400 Mõlemad pea olema kahekordistuma, et kiireid 356 00:19:46,400 --> 00:19:50,860 olla kindel, et see on see, mida me tahame teha. 357 00:19:50,860 --> 00:19:54,360 Nii me siis selgesõnaliselt jklle harjunud roll summa, mille me oleme arvutatakse eespool 358 00:19:54,360 --> 00:19:58,970 ja arv klasside paarismängus ja siis Toimingu tegemiseks ja poest 359 00:19:58,970 --> 00:20:02,390 et uude muutuja, või pigem Selle uue pidev nn keskmist, 360 00:20:02,390 --> 00:20:06,810 mis on mis tüüpi, te kujutate ette? 361 00:20:06,810 --> 00:20:07,587 Kahe, yeah. 362 00:20:07,587 --> 00:20:09,420 Nii Sel juhul me ei pea seda 363 00:20:09,420 --> 00:20:13,450 sest see võib tuleneda operatsioon, millist tüüpi andmeid keskmine 364 00:20:13,450 --> 00:20:14,730 saab. 365 00:20:14,730 --> 00:20:19,025 Ja Swift on üldiselt päris hea kas nad suudavad järeldada liigid. 366 00:20:19,025 --> 00:20:22,116 367 00:20:22,116 --> 00:20:24,200 >> Kas sa tahad seda näha käivitada, või ma saan liikuda? 368 00:20:24,200 --> 00:20:25,640 Ma tahan, et hoida läheb. 369 00:20:25,640 --> 00:20:28,130 Kõik küsimused kõik see? 370 00:20:28,130 --> 00:20:28,630 Hea. 371 00:20:28,630 --> 00:20:31,160 372 00:20:31,160 --> 00:20:35,010 >> Nüüd me ei kavatse hakata saada hea stuff-- funktsioonide defineerimise, 373 00:20:35,010 --> 00:20:39,090 ja paar muud tüüpi, mis on unikaalne Swift, et sa ei ole 374 00:20:39,090 --> 00:20:41,620 näinud teistes keeltes kuni selle hetkeni, 375 00:20:41,620 --> 00:20:46,290 kuid need on olemas ka teistes keeled, mida võib leida hiljem. 376 00:20:46,290 --> 00:20:48,210 Nii esimese kui soovite määratleda funktsiooni, 377 00:20:48,210 --> 00:20:52,170 sa defineerid seda funky sõna funktsioon ja seejärel funktsiooni nime, 378 00:20:52,170 --> 00:20:56,710 ja siis sulgudes argumendid mis sa tahad, et funktsiooni vastu. 379 00:20:56,710 --> 00:21:00,280 Argumendid peavad ka specify-- generally-- 380 00:21:00,280 --> 00:21:05,010 tuleb täpsustada ka andmeid, mis nad on, kui nad ei suuda tuletatav. 381 00:21:05,010 --> 00:21:07,500 Ja me näeme, et vähe mööndusega ka natuke. 382 00:21:07,500 --> 00:21:09,920 >> Nii et kui meil on funktsiooni nimetatakse printGradeCount. 383 00:21:09,920 --> 00:21:12,840 Me läheme vastu võtma variable-- või mitte sel juhul, 384 00:21:12,840 --> 00:21:14,450 constant-- nimetatakse gradebook. 385 00:21:14,450 --> 00:21:18,517 Ja see saab olla kirjuta array täisarvud. 386 00:21:18,517 --> 00:21:20,600 Nüüd on midagi see on tõesti oluline siin 387 00:21:20,600 --> 00:21:21,849 et ma tahan, et sa aru. 388 00:21:21,849 --> 00:21:27,560 See on see, et vaikimisi on need argumendid mis on seosed selle funktsiooni on 389 00:21:27,560 --> 00:21:34,380 määratletud kaudne let märksõna, mis tähendab, et ma ei saa muuta seda 390 00:21:34,380 --> 00:21:39,850 gradebook muutuja siin. 391 00:21:39,850 --> 00:21:43,360 Ja seda sorti mõtet, sest sa oled läbinud andmeid. 392 00:21:43,360 --> 00:21:45,860 Ja sa võibolla ei taha seda muuta su alt. 393 00:21:45,860 --> 00:21:50,800 On võimalik selgesõnaliselt mainida et see on muutuja pannes 394 00:21:50,800 --> 00:21:52,070 var märksõna siin. 395 00:21:52,070 --> 00:21:56,832 Aga see on gotcha et me oleme märganud inimesed on teinud minevikus 396 00:21:56,832 --> 00:21:59,790 on see, et nad on oletanud, et see läheb olevat muutuva, kuigi tegelikult see 397 00:21:59,790 --> 00:22:02,640 on konstant. 398 00:22:02,640 --> 00:22:07,340 >> Hea küll, et siin siis sel juhul, me ei täpsustades mingit tulu tüübist. 399 00:22:07,340 --> 00:22:09,460 Me näitame teile, kuidas seda teha et üks hetk. 400 00:22:09,460 --> 00:22:12,340 Aga märgata, et meil on siin lihtsalt kui seisukorras. 401 00:22:12,340 --> 00:22:14,560 Kui gradebook on tühi, mis antud juhul 402 00:22:14,560 --> 00:22:19,310 on lihtsalt vara selle täisarv massiivi, siis välja printida midagi. 403 00:22:19,310 --> 00:22:23,100 Muidu me teeme midagi muud. 404 00:22:23,100 --> 00:22:25,000 >> Päris lihtne siiani ma arvan. 405 00:22:25,000 --> 00:22:27,960 Aga mind peatada, kui teil on mingeid küsimusi. 406 00:22:27,960 --> 00:22:33,350 >> Nüüd on see funktsioon, keskmine, võtab ka mõned argumendid, või pigem üks argument, 407 00:22:33,350 --> 00:22:37,507 mis on gradebook ja seekord läheb tagasi topelt tüübist. 408 00:22:37,507 --> 00:22:39,340 Sest see on arvutustehnika keskmine ja see on 409 00:22:39,340 --> 00:22:45,010 läheb tegelikult tagasi, et arvutatud keskmiselt helistaja liini. 410 00:22:45,010 --> 00:22:50,070 >> Sel juhul me täpsustada tagastustüüpi pärast nool. 411 00:22:50,070 --> 00:22:53,260 Ja see võib tunduda selline imelik alguses. 412 00:22:53,260 --> 00:22:55,610 Sa oled harjunud seadmise tagastamise 413 00:22:55,610 --> 00:22:57,720 kirjutage enne funktsiooni nimi. 414 00:22:57,720 --> 00:23:00,310 Aga kui sa arvad sellest nii matemaatika, 415 00:23:00,310 --> 00:23:03,320 nagu siis, kui sul on matemaatika et määratleda funktsiooni, 416 00:23:03,320 --> 00:23:06,807 teil on funktsioon mõned sisendite ja see toodab väljundit. 417 00:23:06,807 --> 00:23:08,890 Ja see on täpselt see, mida see peaks jäljendama. 418 00:23:08,890 --> 00:23:12,460 Ja seal on mõned teised keeled mis on sarnane süntaks samuti, 419 00:23:12,460 --> 00:23:15,674 kuid ilmselt kedagi, kes olete näinud CS50. 420 00:23:15,674 --> 00:23:17,090 Aga ikkagi ei saa sellest segaduses. 421 00:23:17,090 --> 00:23:21,650 Nool tähendab, mis toimub tagastatakse sel juhul. 422 00:23:21,650 --> 00:23:23,650 OK, nii et kui me läheme arvutada selle keskmist? 423 00:23:23,650 --> 00:23:25,649 Noh, kui gradebook on tühjad, ka siis me oleme 424 00:23:25,649 --> 00:23:30,731 läheb tagasi 0, mis võib olla mõistlik viis käsitleda seda. 425 00:23:30,731 --> 00:23:32,980 Ma ei tea, tulgem tagasi, et natuke. 426 00:23:32,980 --> 00:23:34,688 See ei pruugi tegelikult mõistlik viis 427 00:23:34,688 --> 00:23:38,310 arvutada keskmine, kui meil tühja gradebook. 428 00:23:38,310 --> 00:23:41,260 >> Siis me lihtsalt täita meie liitmise. 429 00:23:41,260 --> 00:23:43,900 Pange tähele, et siin me tegelikult on asendusliige versioon 430 00:23:43,900 --> 00:23:49,190 silmus, mis võimaldab meil kinnitada, üle iga elemendi massiivi 431 00:23:49,190 --> 00:23:53,630 ja pange iga element omaenda muutuja. 432 00:23:53,630 --> 00:23:56,200 Määratledes hinne gradebook, mida me ütleme 433 00:23:56,200 --> 00:24:00,560 on see, et me ei kavatse varjatult luua uus pidevat nimetatakse 434 00:24:00,560 --> 00:24:05,180 klass, mis läheb esindama Iga unikaalne objekt on gradebook 435 00:24:05,180 --> 00:24:06,769 Iga kord, kui silmus itereerib. 436 00:24:06,769 --> 00:24:08,560 Nii esimene kord, see kestab, Koondhinne 437 00:24:08,560 --> 00:24:09,800 esimene element on gradebook. 438 00:24:09,800 --> 00:24:12,300 Teist korda seda tulen Teine küsimus, nii edasi ja nii edasi 439 00:24:12,300 --> 00:24:15,970 kuni gradebook on ammendus elemente. 440 00:24:15,970 --> 00:24:20,390 Siis suudame Kokkuvõttes, et klass meie liitmise muutuja 441 00:24:20,390 --> 00:24:22,570 ja tagasi meie keskmine nagu me oleme näinud. 442 00:24:22,570 --> 00:24:25,670 443 00:24:25,670 --> 00:24:26,950 OK, mingeid küsimusi? 444 00:24:26,950 --> 00:24:27,699 Jah? 445 00:24:27,699 --> 00:24:28,990 Sihtrühm: Mul on kaks küsimust. 446 00:24:28,990 --> 00:24:33,586 Number üks hüpoteetiliselt võimalik sa jooksed täisarv see üks? 447 00:24:33,586 --> 00:24:35,604 Ei pea olema double, on õige? 448 00:24:35,604 --> 00:24:37,520 DAN AMRMENDARIZ: Kas sa korrata, et küsimus? 449 00:24:37,520 --> 00:24:39,587 Sihtrühm: Kas ma saan täisarv keskmisena? 450 00:24:39,587 --> 00:24:41,670 DAN AMRMENDARIZ: Kas sa teha täisarv keskmisena? 451 00:24:41,670 --> 00:24:45,015 Nii tagasi täisarv Keskmiselt selle asemel topelt? 452 00:24:45,015 --> 00:24:48,204 >> Sihtrühm: Return-- sa on, et just nüüd allpool. 453 00:24:48,204 --> 00:24:49,870 DAN AMRMENDARIZ: Siinsamas tagasi 0,0? 454 00:24:49,870 --> 00:24:51,790 Sihtrühm: Jah, just tagasi 0. 455 00:24:51,790 --> 00:24:56,590 Nii et see on kas 80 või 85, kuid mitte 85,2. 456 00:24:56,590 --> 00:24:59,465 >> DAN AMRMENDARIZ: Nii et juhul, nii et pole paar erinevalt 457 00:24:59,465 --> 00:25:00,090 et vastata. 458 00:25:00,090 --> 00:25:02,760 Las ma vastan neile selleks. 459 00:25:02,760 --> 00:25:06,740 Nii et kui ma seda edasi-tagasi 0, 0 on täisarv. 460 00:25:06,740 --> 00:25:09,730 Ja nii, et paneb tüüp viga sel juhul 461 00:25:09,730 --> 00:25:13,210 sest see ootab kahekordne kuid seejärel tagasi täisarv. 462 00:25:13,210 --> 00:25:16,770 Kui ma tahan tagasi täisarv, suudan. 463 00:25:16,770 --> 00:25:20,450 Ma ei määrata tüübi tagastamise int, tagastab 0 siin, 464 00:25:20,450 --> 00:25:22,047 ja ei täida topelt jagamine. 465 00:25:22,047 --> 00:25:23,880 Aga siis me oleks teeme täisarv rajoon. 466 00:25:23,880 --> 00:25:27,080 Ja nii me siis ei saada Keskmiselt et meil oleks võimalik oodata. 467 00:25:27,080 --> 00:25:29,210 Aga jah saame muuta tüübid niimoodi. 468 00:25:29,210 --> 00:25:32,598 >> Sihtrühm: Ja teiseks, sa on üks Double peal. 469 00:25:32,598 --> 00:25:35,502 Aga allapoole, kui sa teha tagasi Double Double, 470 00:25:35,502 --> 00:25:38,280 see on juba automaatselt tagasi Kahe formaadis. 471 00:25:38,280 --> 00:25:42,278 Miks sa ikka vajad seda defineerida noolega peal koos Double? 472 00:25:42,278 --> 00:25:45,010 >> DAN AMRMENDARIZ: Nii juhul, see on osa 473 00:25:45,010 --> 00:25:50,580 of the-- nii korrata küsimust, sest see on kaudne tagasivoolukanalist 474 00:25:50,580 --> 00:25:56,030 tüüpi siin, millist tüüpi see tegelikult on, peame olema selgesõnaline koos Swift 475 00:25:56,030 --> 00:25:59,970 mida me tahame tagasi läbi selle funktsiooni 476 00:25:59,970 --> 00:26:02,690 nii, et kui ta täidab tüüp kontrollida, siis võib olla kindel, 477 00:26:02,690 --> 00:26:05,850 et me oleme tegelikult kirjutatud Allpool on tegelikult vastab, et. 478 00:26:05,850 --> 00:26:10,225 Nii et see on omamoodi nagu check iseendaga omamoodi olukord. 479 00:26:10,225 --> 00:26:11,050 Aga seal are-- 480 00:26:11,050 --> 00:26:12,560 >> Sihtrühm: [kuuldamatu] nool? 481 00:26:12,560 --> 00:26:19,490 >> DAN AMRMENDARIZ: On juhtumeid, kui saame täpsustada, et saame kaudselt 482 00:26:19,490 --> 00:26:21,550 tagasisõidu tüübist. 483 00:26:21,550 --> 00:26:23,940 Aga sel juhul, ma ei arvan, et töötaks. 484 00:26:23,940 --> 00:26:26,190 Seal on mõned muud süntaks et me näeme hiljem. 485 00:26:26,190 --> 00:26:30,320 486 00:26:30,320 --> 00:26:35,280 >> Olgu, nii selle allika kood on natuke erinev 487 00:26:35,280 --> 00:26:41,839 sest see korrastab argumente funktsiooni, et me kutsudes. 488 00:26:41,839 --> 00:26:44,130 Las ma näitan sulle, kuidas see toimib enne kui me tegelikult liikuda 489 00:26:44,130 --> 00:26:48,050 mõned huvitavad asjad mis toimub Swift. 490 00:26:48,050 --> 00:26:51,870 >> Nii et sel juhul, kui ma lihtsalt käivitada kood, märkate, et mida ta teeb 491 00:26:51,870 --> 00:26:54,900 on-- samas, et selline annab mulle imelik viga. 492 00:26:54,900 --> 00:26:59,730 Mul on vaja andke seda paar täisarvud käsurea argument. 493 00:26:59,730 --> 00:27:06,220 Vaatame, 150 ja 80, ja vajuta Enter et teada saada, mida see tegelikult teevad. 494 00:27:06,220 --> 00:27:09,890 See nõustudes iga Need väärtused, nagu täisarvud. 495 00:27:09,890 --> 00:27:12,040 See on sisestanud need kokku gradebook. 496 00:27:12,040 --> 00:27:14,470 Ja siis see täidab et keskmine arvutus 497 00:27:14,470 --> 00:27:16,650 ja väljastamiseks, et kui me ootaks. 498 00:27:16,650 --> 00:27:19,950 >> Aga ilmselt seal midagi toimub koos käesoleva tagasilükkamise midagi 499 00:27:19,950 --> 00:27:23,300 midagi nii täisarv. 500 00:27:23,300 --> 00:27:27,300 Nagu te võite mäletate, kui olime tegelevad käsurea argumente 501 00:27:27,300 --> 00:27:32,640 C ja teistes keeltes, kõige esimene 0-nda ühiku et käsurea argument 502 00:27:32,640 --> 00:27:35,774 nimekiri on käsu nime et me tegelikult täidetud. 503 00:27:35,774 --> 00:27:38,690 Nii et sel juhul ma lihtsalt silmukoiminen üle kõik käsurea argumente. 504 00:27:38,690 --> 00:27:41,650 Aga ma ei tee mingit fancy vaadake vahele üle, et esimene. 505 00:27:41,650 --> 00:27:45,920 Ma olen lihtsalt selgesõnaliselt või ma olen kaudselt kontroll, mis seda tüüpi 506 00:27:45,920 --> 00:27:49,900 on täisarvud, enne kui ma tegelikult täidab seda arvutusvõimsus. 507 00:27:49,900 --> 00:27:52,420 >> Ja see on sisuliselt mis toimub siin. 508 00:27:52,420 --> 00:27:55,860 Iga argument Protsessi argumendid, 509 00:27:55,860 --> 00:27:59,210 Ma lähen täita mõned kontrolli. 510 00:27:59,210 --> 00:28:01,970 Ja sel juhul, ma lähen proovida esimene pöördunu 511 00:28:01,970 --> 00:28:07,620 et argumendi täisarv poolt sooritavate selgesõnaline jklle harjunud roll, 512 00:28:07,620 --> 00:28:12,310 sest see on, sisendite, string ja tegelikult ei täisarv. 513 00:28:12,310 --> 00:28:18,140 >> Aga see on selline imelik süntaks, kui lasta hinne võrdub Int (argument). 514 00:28:18,140 --> 00:28:21,120 Mis tegelikult toimub siin on väga 515 00:28:21,120 --> 00:28:24,390 oluline oma kasutades Swift. 516 00:28:24,390 --> 00:28:27,610 See kasutab, mis on nimetatakse vabatahtlikud. 517 00:28:27,610 --> 00:28:34,790 >> Nii et see funktsioon, keskmine (argument), tagasi mitte ainult täisarv, kuid naaseb 518 00:28:34,790 --> 00:28:37,470 mida nimetatakse vabatahtlik täisarv. 519 00:28:37,470 --> 00:28:41,200 Ja nii see on omamoodi tüüpi peal tüüp. 520 00:28:41,200 --> 00:28:45,900 Võite omamoodi ette kujutada seda nagu see tagasi nagu pakett. 521 00:28:45,900 --> 00:28:47,750 Ja kui avate, et pakett, siis kas 522 00:28:47,750 --> 00:28:53,930 on täisarv, mis on tingitud või see on absoluutselt midagi üldse. 523 00:28:53,930 --> 00:28:58,140 Ja see on kasulik veatuvastuse mehhanism, sest sel juhul 524 00:28:58,140 --> 00:29:02,080 saame teada, oli see tüübi muutmise edukas? 525 00:29:02,080 --> 00:29:05,810 Kui see oli, siis see on tegelikult läheb on täisarv sees. 526 00:29:05,810 --> 00:29:08,750 Muidu läheb on mõned väärtus, mis me kutsume null, mis 527 00:29:08,750 --> 00:29:10,920 representatiivsete no täisarv üldse. 528 00:29:10,920 --> 00:29:13,270 See on tõesti midagi ei kujuta. 529 00:29:13,270 --> 00:29:18,130 >> Ja nii see, kui ehitus võimaldab meil lahtipakkimiseks et pakett, 530 00:29:18,130 --> 00:29:19,850 et vabatahtlik siduvad. 531 00:29:19,850 --> 00:29:25,560 Ja kui me suudame lahtipakkimiseks et pakendada ja leida täisarv sees, 532 00:29:25,560 --> 00:29:27,720 siis mida me ütleme Siin on, mida me siis 533 00:29:27,720 --> 00:29:33,090 lubada Väärtuste sisse konstanti nimetatakse hinne. 534 00:29:33,090 --> 00:29:36,590 Ja see osa, kui avaldus ülemine osa on kui avaldus 535 00:29:36,590 --> 00:29:40,390 kestab, sest see Kerige oli edukas. 536 00:29:40,390 --> 00:29:43,290 >> Kui see lihtsalt nii juhtub, et on viga ilmselt 537 00:29:43,290 --> 00:29:47,040 Selles selgesõnaline tüübi muutmise alates stringi täisarv, võibolla 538 00:29:47,040 --> 00:29:49,160 see on väärtus ABC näiteks. 539 00:29:49,160 --> 00:29:52,120 Ja see on tegelikult ei kavatse teisendada täisarv. 540 00:29:52,120 --> 00:29:55,520 Siis naaseb null, mis ei ole täisarv. 541 00:29:55,520 --> 00:29:57,570 Ja see kui avaldus ka siis ei suuda. 542 00:29:57,570 --> 00:30:01,930 hinne ei eksisteeri, sest tal pole täisarv sisu. 543 00:30:01,930 --> 00:30:06,391 Ja see kestab see teine ​​plokk asemel. 544 00:30:06,391 --> 00:30:06,890 Jah? 545 00:30:06,890 --> 00:30:09,652 >> Sihtrühm: Nil on N-I-L? 546 00:30:09,652 --> 00:30:11,110 DAN AMRMENDARIZ: nil on N-I-L, jah. 547 00:30:11,110 --> 00:30:14,970 548 00:30:14,970 --> 00:30:20,310 >> Nii et see on võibolla üks raskem asju Swift, 549 00:30:20,310 --> 00:30:23,690 eriti kui sa oled umbrohi kohta iOS app 550 00:30:23,690 --> 00:30:27,442 ja sa oled tegelikult püüdnud teha mõned arengut seal. 551 00:30:27,442 --> 00:30:29,400 See saab olema karjuma kell teile vabatahtlik. 552 00:30:29,400 --> 00:30:33,050 See saab olema teilt küsimärke ja hüüumärgi. 553 00:30:33,050 --> 00:30:37,100 Aga kui sa aru out-- kui te pühendada aega figuring 554 00:30:37,100 --> 00:30:41,990 mis toimub vabatahtlik tüüpi, saate säästa ennast palju peavalu 555 00:30:41,990 --> 00:30:46,040 kui sa üritad kirjuta rakendust Swift. 556 00:30:46,040 --> 00:30:47,660 >> See on tegelikult väga võimas. 557 00:30:47,660 --> 00:30:49,826 Ja sa pead lihtsalt võtke minu sõna see nüüd. 558 00:30:49,826 --> 00:30:52,620 Aga eks me näeme seda ehitus ja mõned teised, nagu see 559 00:30:52,620 --> 00:30:56,740 mõnedes teistes lähtekoodi, et näitame teile natuke. 560 00:30:56,740 --> 00:31:00,440 >> Kas on olemas esmase küsimus siin? 561 00:31:00,440 --> 00:31:03,790 562 00:31:03,790 --> 00:31:08,690 Nii et oluline Buffee on see, et vabatahtlikud on omamoodi metatype. 563 00:31:08,690 --> 00:31:12,500 See kas on väärtus, ja kui see juhtub, siis 564 00:31:12,500 --> 00:31:18,110 võib-olla, et väärtus on seotud sellega, või siis mitte mingit väärtust, 565 00:31:18,110 --> 00:31:19,620 ja see on esindatud null. 566 00:31:19,620 --> 00:31:24,210 567 00:31:24,210 --> 00:31:28,870 Ülejäänud osa on ehk kui te ootaks. 568 00:31:28,870 --> 00:31:32,900 >> Nii et ramp üles raskusi taas. 569 00:31:32,900 --> 00:31:37,070 Ja seekord, võtame pilk mõned muude andmete tüübid, mida tegelikult olemas. 570 00:31:37,070 --> 00:31:41,290 Üks neist on sõnastikke, mis on väga sarnane Python sõnastikke. 571 00:31:41,290 --> 00:31:48,270 See on mõnevõrra sarnane hash tabelis C. See on sisuliselt kaardistamine võtmed 572 00:31:48,270 --> 00:31:49,820 kus võtmed saab stringe. 573 00:31:49,820 --> 00:31:52,670 Ja kui sa vaatad üles need võtmed, need võtmed on väärtus. 574 00:31:52,670 --> 00:31:56,020 Nii see ei ole päris hulgaliselt, kuid asemel, tihedamalt seotud 575 00:31:56,020 --> 00:31:58,810 hash kaart või hash tabelit. 576 00:31:58,810 --> 00:32:02,420 >> Vaatame, kuidas see peaks töötada, enne kui me tegelikult 577 00:32:02,420 --> 00:32:05,210 minema lähtekoodi ise. 578 00:32:05,210 --> 00:32:07,680 Kui ma lihtsalt käivitada, midagi tõesti juhtub. 579 00:32:07,680 --> 00:32:12,430 See ütleb mulle, et ma ootan mõned parameetrid järgmist tüüpi. 580 00:32:12,430 --> 00:32:16,050 Nii et ma lähen andma see mingi probleem määrata nimed, 581 00:32:16,050 --> 00:32:18,490 nii pset0, võibolla ma sain 100. 582 00:32:18,490 --> 00:32:20,790 Ja pset1, sain 5. 583 00:32:20,790 --> 00:32:24,630 Ja siis on eksam, ma tegi tõesti hästi ja sain 30. 584 00:32:24,630 --> 00:32:27,180 Ja oops, ma tabanud ruumi siin. 585 00:32:27,180 --> 00:32:30,940 >> Kui ma Enter, näed ta täidab mõned arvutamine. 586 00:32:30,940 --> 00:32:33,740 Ta ütleb gradebook on kolm klassid, pset1, pset0, eksam. 587 00:32:33,740 --> 00:32:36,120 Ja gradebook on Selle konkreetse keskmine. 588 00:32:36,120 --> 00:32:38,370 Nii jälle, me töötame Selle gradebook idee, 589 00:32:38,370 --> 00:32:44,650 kuid me kavatseme jätkata iterating keerukusega meie funktsiooni. 590 00:32:44,650 --> 00:32:47,650 >> Nii algusega, me oleme lihtsalt kavatse luua funktsioon, mis 591 00:32:47,650 --> 00:32:49,390 vastutab trükkimine kasutamine. 592 00:32:49,390 --> 00:32:51,920 Ja seal on see exit funktsioon, mis lihtsalt 593 00:32:51,920 --> 00:32:53,710 sunniviisiliselt rakendusest väljuda. 594 00:32:53,710 --> 00:32:56,530 See ei ole midagi, mis siis kasutada iOS app. 595 00:32:56,530 --> 00:32:59,750 See on ainult sel juhul, koos käsurea argument. 596 00:32:59,750 --> 00:33:01,990 Järgmine hakkame liikudes Xcode. 597 00:33:01,990 --> 00:33:07,760 Aga see on spetsiifiline käsk line stiilis programmi Swift. 598 00:33:07,760 --> 00:33:11,490 >> Võtame pilk mõned huvitav asju siin. 599 00:33:11,490 --> 00:33:15,150 Vaatame, ainult paar Huvitavat mainida ehk 600 00:33:15,150 --> 00:33:19,930 on see, et minu ülesanne trükkimine arv klassid, 601 00:33:19,930 --> 00:33:26,090 sa võiks meenutada, et mul oli selles nimekirjas of items-- pset1, pset0 ja eksam. 602 00:33:26,090 --> 00:33:29,130 Võite tegelikult kiiresti ja kergesti seda 603 00:33:29,130 --> 00:33:34,490 võttes gradebook, mis on sõnastik, mis on võtmed ja väärtused. 604 00:33:34,490 --> 00:33:38,730 Leia kõik oluline on läbi dot võtmed meetod siin 605 00:33:38,730 --> 00:33:43,180 ja siis kasuta seda joinWithSeparator, mis siis võta kõik võtmed 606 00:33:43,180 --> 00:33:48,590 et meil oli sisestatud, pset1-- või sorry, pset0, pset1 ja exam-- 607 00:33:48,590 --> 00:33:53,030 ja sisud kokku kasutades koma ja tühik 608 00:33:53,030 --> 00:33:55,400 luua üks pikk jada. 609 00:33:55,400 --> 00:34:00,190 See liituda operatsioon on lihtsalt fenomenaalselt kasulikud erinevates kontekstides. 610 00:34:00,190 --> 00:34:03,450 Ja nii see on see joinWithSeparator. 611 00:34:03,450 --> 00:34:06,939 >> Ja see on üks asi, mis on muutunud Swift 1. Swift 2. 612 00:34:06,939 --> 00:34:08,730 Seal kasutatakse olla Python style-- kui sa oled 613 00:34:08,730 --> 00:34:13,219 tuttav Python-- Python stiilis liituda meetodi stringid. 614 00:34:13,219 --> 00:34:15,699 Aga see ei ole enam Juhul Swift 2. 615 00:34:15,699 --> 00:34:19,400 Sa soovid kasutada seda kui sa tahad to concatenate hulgaliselt kraami 616 00:34:19,400 --> 00:34:23,380 koos string. 617 00:34:23,380 --> 00:34:27,889 >> Nii et ehk siis meie arutelu keskmine enne, 618 00:34:27,889 --> 00:34:32,659 see teeb natuke mõttekam meil seada keskmine funktsiooni 619 00:34:32,659 --> 00:34:36,610 olema vabatahtlik topelt pigem kui lihtsalt selgesõnaline topelt. 620 00:34:36,610 --> 00:34:39,239 Kuna meil oli, et ebatavaline seisund, kus, 621 00:34:39,239 --> 00:34:41,550 Mis siis, kui gradebook tegelikult ei ole väärtuste see? 622 00:34:41,550 --> 00:34:44,280 Mida peaks keskmine tootlus? 623 00:34:44,280 --> 00:34:46,350 >> Noh võibolla C teil oleks teinud midagi 624 00:34:46,350 --> 00:34:50,040 nagu on sätestatud valvur väärtus, nagu 0,0 või äkki negatiivse numbriga, 625 00:34:50,040 --> 00:34:53,690 või midagi lihtsalt mis näitab, et seal oli tõrkeseisundi 626 00:34:53,690 --> 00:34:57,910 ja sa võibolla tegelikult ei ole võime arvutada, et keskmine. 627 00:34:57,910 --> 00:35:05,590 Noh ilu täpsustades vabatahtlikud oleks seda teha. 628 00:35:05,590 --> 00:35:09,540 Ja ma nüüd öelda kõik need sõnad, kuid see tegelikult ei kasuta lisareeglite. 629 00:35:09,540 --> 00:35:12,970 Aga me näeme, et just minuti kus saame keskmine 630 00:35:12,970 --> 00:35:17,230 olema vabatahtlik andmete tüübi, nii et kui see tegelikult tagasi mõned andmed, siis 631 00:35:17,230 --> 00:35:18,470 me tagasi, et andmeid. 632 00:35:18,470 --> 00:35:20,570 Muidu me tagasi nil, öeldes, et see 633 00:35:20,570 --> 00:35:22,200 ei ole mõttekas arvutusvõimsus. 634 00:35:22,200 --> 00:35:25,650 635 00:35:25,650 --> 00:35:28,570 >> Jätkame midagi muud. 636 00:35:28,570 --> 00:35:35,910 Nii siit, oleme otsinud Kõik need näited on käsurida. 637 00:35:35,910 --> 00:35:39,470 Aga tõesti, mida sa lähed tuleb tegemist on Xcode. 638 00:35:39,470 --> 00:35:43,720 Ja üks tore asju Xcode on, ja eriti Swift, 639 00:35:43,720 --> 00:35:47,450 on see, et meil on see asi nimega mänguväljak. 640 00:35:47,450 --> 00:35:51,470 Ja mänguväljak on ole üldse iOS app. 641 00:35:51,470 --> 00:35:54,751 Aga see võimaldab teil katsetada koos Swift väga lihtne. 642 00:35:54,751 --> 00:35:56,000 Sa võid kirjutada kõik oma koodi. 643 00:35:56,000 --> 00:35:58,140 See on kenasti süntaksit esile siin. 644 00:35:58,140 --> 00:36:01,600 Kui loote uue faili, siis küsi kas soovid luua mänguväljak. 645 00:36:01,600 --> 00:36:08,720 Aga kena asi mänguväljak on see, et õigus oma akna, 646 00:36:08,720 --> 00:36:12,020 see tegelikult näitab teile väljund koodi. 647 00:36:12,020 --> 00:36:16,110 Nii et kui ma keri, saame näha, mis väljund erinevate rida koodi 648 00:36:16,110 --> 00:36:17,200 tegelikult juhtub olema. 649 00:36:17,200 --> 00:36:19,850 650 00:36:19,850 --> 00:36:26,790 >> Nii et kui me läheme muuta suunas natuke 651 00:36:26,790 --> 00:36:30,960 ja rääkida midagi, mis on tõesti oluline see suur tee 652 00:36:30,960 --> 00:36:34,020 et Swift tegutseb, ja see on see idee sulgemist. 653 00:36:34,020 --> 00:36:36,960 Ja olete ilmselt näinud seda natuke JavaScript. 654 00:36:36,960 --> 00:36:40,770 Neile, kes on CS50, sulgurid 655 00:36:40,770 --> 00:36:47,240 on väga populaarsed, väga hea viis teha kõrge asjad kaasaegsete keelte. 656 00:36:47,240 --> 00:36:50,270 Aga see on ka omamoodi raske wrap oma pea ümber esimest korda. 657 00:36:50,270 --> 00:36:52,269 Nii et kui sa vaatad seda Esimest korda, see on OK. 658 00:36:52,269 --> 00:36:56,740 Lihtsalt vaadata lähtekoodi ja vaata kui te saate aru saada kodus. 659 00:36:56,740 --> 00:37:01,050 >> Nii et kui oletame, et me soovid luua palju eksponendid 660 00:37:01,050 --> 00:37:04,134 mõned fikseeritud väärtus. 661 00:37:04,134 --> 00:37:05,800 Nii et kui ma saan luua funktsioon. 662 00:37:05,800 --> 00:37:09,270 Ma kutsun seda võimu 2, mille ainus eesmärk elus 663 00:37:09,270 --> 00:37:15,770 on võtta mõned sisend ja topelt seda ja tagasi, et väärtus. 664 00:37:15,770 --> 00:37:21,210 Pange tähele, et siin ma olen vastu ühte liiki andmeid. 665 00:37:21,210 --> 00:37:23,137 See saab olla muutuja nimega x. 666 00:37:23,137 --> 00:37:23,970 See on tüüpi Double. 667 00:37:23,970 --> 00:37:26,190 Ja ma lähen tagasi Double siin. 668 00:37:26,190 --> 00:37:29,100 Ja ma olen lihtsalt kavatse teha väga ausalt öeldes päris 669 00:37:29,100 --> 00:37:32,650 naiivne viis kahekordistada selle väärtust. 670 00:37:32,650 --> 00:37:35,600 Ja ma näitan sulle, miks see on kasulik vaid teine. 671 00:37:35,600 --> 00:37:40,418 >> Pange tähele, et meil on siin selles vahemikus uuesti. midagi 1, dot 672 00:37:40,418 --> 00:37:44,130 dot dot, 2, mis tähendab, et see loop kestab kaks korda. 673 00:37:44,130 --> 00:37:46,480 Kuid see on fiktiivne muutuja. 674 00:37:46,480 --> 00:37:49,650 See tähendab, et ma olen tõesti ei kavatse kasuta muutuja kõikjal 675 00:37:49,650 --> 00:37:51,070 sees see loop. 676 00:37:51,070 --> 00:37:55,380 Ma tahan seda joont koodi käivitada kaks korda, 677 00:37:55,380 --> 00:37:58,980 ilma et oleks vaja teada, väärtus selles vahemikus. 678 00:37:58,980 --> 00:38:02,570 >> Nii et kui mul hakkab tulemus korda x korda, mis sisuliselt 679 00:38:02,570 --> 00:38:06,560 tähendab, et ma kvadratuur seda väärtust. 680 00:38:06,560 --> 00:38:10,230 Ja see juhtub töötada ootame. 681 00:38:10,230 --> 00:38:16,410 Power of 2, läbides väärtus 2.0 annab meile väljundvõimsusega 4. 682 00:38:16,410 --> 00:38:18,810 3.2 kehtivus 10.24. 683 00:38:18,810 --> 00:38:22,660 >> Nüüd saame teha sarnane asi võimsus 3. 684 00:38:22,660 --> 00:38:25,330 Aga nüüd muuta ainult vahemikus. 685 00:38:25,330 --> 00:38:28,840 Sest fiktiivne muutuja 1 kuni 3, korrutada 3 korda, 686 00:38:28,840 --> 00:38:29,830 ja teha sama asja. 687 00:38:29,830 --> 00:38:32,240 >> Nii et see võib tunduda veidi kunstlik. 688 00:38:32,240 --> 00:38:34,270 Aga seal on oluline asi siin, mis 689 00:38:34,270 --> 00:38:37,770 on see, et vaadates neid kaks funktsiooni, seal on 690 00:38:37,770 --> 00:38:43,600 ainult üks asi, mis on erinev, mis on selle väärtus vahemikus. 691 00:38:43,600 --> 00:38:46,910 Kõik muu nende kahe funktsioone, võim 3 ja võimsus 2, 692 00:38:46,910 --> 00:38:50,440 on tegelikult identsed, sest nad töötavad samamoodi. 693 00:38:50,440 --> 00:38:53,460 >> Nii sel hetkel, väike häirekella tuleb läheb maha. 694 00:38:53,460 --> 00:38:56,200 Loodetavasti mida sa räägid, tead, see tundub natuke 695 00:38:56,200 --> 00:38:59,250 nagu topelttööd. 696 00:38:59,250 --> 00:39:02,950 Võibolla seal on nii, et ma oleks suutma kapseldada kõiki käesoleva 697 00:39:02,950 --> 00:39:06,630 ja mingit funktsiooni või luua funktsioon, mis 698 00:39:06,630 --> 00:39:11,550 ei täpselt, mida ma tahan, ilma oleks vaja kirjutada seda selgelt. 699 00:39:11,550 --> 00:39:15,732 Ja see on võim sulguri võimaldab meil teha. 700 00:39:15,732 --> 00:39:16,940 Võtame pilk see. 701 00:39:16,940 --> 00:39:18,700 Ja ma veeta paar minutit selle, sest see 702 00:39:18,700 --> 00:39:20,310 on päris oluline Swift. 703 00:39:20,310 --> 00:39:22,900 Me näeme seda kogu aeg. 704 00:39:22,900 --> 00:39:24,550 Me läheme määratleda funktsiooni. 705 00:39:24,550 --> 00:39:26,380 See saab nimetada powerOf. 706 00:39:26,380 --> 00:39:29,470 See läheb vastu võtma parameetrit nimetatakse y tüüpi Int. 707 00:39:29,470 --> 00:39:32,220 Aga kui heita pilk tüübi tagastamise. 708 00:39:32,220 --> 00:39:38,730 Tüübi tagastamise on sulgudes, Double nool Double. 709 00:39:38,730 --> 00:39:43,370 Mis tähendab, et seda funktsiooni, Selle funktsiooni powerOf, 710 00:39:43,370 --> 00:39:46,550 on tagasi funktsioon. 711 00:39:46,550 --> 00:39:50,845 See on vastu Double ja tagasi Double. 712 00:39:50,845 --> 00:39:53,720 Nii et võib tunduda selline hull, kuid olgem keri natuke 713 00:39:53,720 --> 00:39:55,060 ja vaatame, mis juhtub. 714 00:39:55,060 --> 00:39:57,910 Oleme sees seda funktsiooni powerOf. 715 00:39:57,910 --> 00:40:00,760 Loome uue funktsiooni nimetatakse exponentiator, 716 00:40:00,760 --> 00:40:02,900 kuid see ei ole oluline, mis see on. 717 00:40:02,900 --> 00:40:06,410 >> Pange tähele, et see on sisendi väärtuse x. 718 00:40:06,410 --> 00:40:09,910 Ja see võtab kahekohalises ja tagasi Double. 719 00:40:09,910 --> 00:40:16,320 Ja see on sama kood, mis me eespool nägime, ainult et väärtus 2 720 00:40:16,320 --> 00:40:20,060 või väärtus 3, et ülemist piiri, et valik, 721 00:40:20,060 --> 00:40:23,210 on asendatud Selle väärtus y, mis 722 00:40:23,210 --> 00:40:27,230 oli esialgne parameetri Meie powerOf funktsiooni. 723 00:40:27,230 --> 00:40:31,700 Ja sel hetkel, me tagasi exponentiator. 724 00:40:31,700 --> 00:40:33,345 Me tagastamise funktsiooni. 725 00:40:33,345 --> 00:40:36,300 726 00:40:36,300 --> 00:40:39,550 >> See on selline nagu väike meeles puhuriga. 727 00:40:39,550 --> 00:40:44,360 Aga olgem kujutada, mis juhtub kui ma nimetan seda funktsiooni powerOf 728 00:40:44,360 --> 00:40:47,610 ja liigu sinna mingi väärtus, nagu 2. 729 00:40:47,610 --> 00:40:50,020 See tähendab, et Mul on nüüd väärtus 730 00:40:50,020 --> 00:40:55,130 2 y, mis tähendab, et see väärtus y selles exponentiator funktsiooni 731 00:40:55,130 --> 00:40:56,410 on see, et väärtus 2. 732 00:40:56,410 --> 00:41:01,290 Aga ma tagasi selle exponentiator funktsiooni. 733 00:41:01,290 --> 00:41:05,900 >> Nii märkate mida Swift ütleb, et ma loonud antud juhul. 734 00:41:05,900 --> 00:41:10,550 lase ruudu mõiste, see on funktsioon, mis võtab Double 735 00:41:10,550 --> 00:41:12,610 ja naaseb Double. 736 00:41:12,610 --> 00:41:16,590 Olen loonud funktsiooni et väljakud midagi 737 00:41:16,590 --> 00:41:19,782 Kasutades seda süsteemi siin. 738 00:41:19,782 --> 00:41:22,490 Ja tõesti, mis toimub on et ta on tagasi see funktsioon 739 00:41:22,490 --> 00:41:26,390 exponentiator, kuid see väärtus y mähitakse sees on. 740 00:41:26,390 --> 00:41:31,080 Ja nii nüüd iga kord, kui ma seda kasutada muutuja või konstanti nimetatakse 741 00:41:31,080 --> 00:41:35,180 ruudu, see siis läheb käituda funktsioonina. 742 00:41:35,180 --> 00:41:39,960 Ja nii ma saan siis helistada, et muutuja nagu ma kutsuksin funktsiooni, 743 00:41:39,960 --> 00:41:43,830 ja liigu sinna mitmeid, nagu antud juhul 3. 744 00:41:43,830 --> 00:41:45,910 Ja ma siis ruudu seda väärtust. 745 00:41:45,910 --> 00:41:53,340 Nii 3 ruudus siis saada 9, nagu näeme siin. 746 00:41:53,340 --> 00:41:56,530 >> Tõesti hull, kuid see nüüd võimaldab mul võimalus 747 00:41:56,530 --> 00:41:59,040 luua teiste powerOf funktsioone. 748 00:41:59,040 --> 00:42:03,680 Nagu ma ei saa öelda, OK, ka nüüd ma tahan luua uus funktsioon, powerOf (3), 749 00:42:03,680 --> 00:42:06,290 ja hoidke seda arvesse pidev nimega kuup. 750 00:42:06,290 --> 00:42:10,220 Ja nüüd Kuubik saab olema eraldi funktsioon, siis 751 00:42:10,220 --> 00:42:14,800 võtta mingi väärtus sisendina ja kuubi, et väärtust näeme lõpptulemuses 752 00:42:14,800 --> 00:42:16,420 siin. 753 00:42:16,420 --> 00:42:18,590 kuubik 2 läheb kaasa 8. 754 00:42:18,590 --> 00:42:21,330 755 00:42:21,330 --> 00:42:22,680 >> Loodetavasti päris kena kraami. 756 00:42:22,680 --> 00:42:25,920 Sa pole kunagi näinud seda enne. 757 00:42:25,920 --> 00:42:29,990 Ma kutsun teid üles uurima sulgurid ja uurida seda natuke rohkem. 758 00:42:29,990 --> 00:42:33,570 See on tõesti võimas värk näeme palju JavaScript ja paljudes teistes keeltes. 759 00:42:33,570 --> 00:42:37,160 See on tõesti oluline mõista API samuti 760 00:42:37,160 --> 00:42:38,620 et me jõuame vaid teisele. 761 00:42:38,620 --> 00:42:39,456 Jah? 762 00:42:39,456 --> 00:42:43,740 >> Sihtrühm: Kui te seda teete powerOf (2), sulgudes ning seejärel 763 00:42:43,740 --> 00:42:48,764 teise sulgudes teise input-- sa oled põhiliselt asendades ruut. 764 00:42:48,764 --> 00:42:50,930 DAN AMRMENDARIZ: Nii otsima päris viimane siin. 765 00:42:50,930 --> 00:42:55,930 See on tegelikult täiesti võimalik teha aheldamine kui soovitatud. 766 00:42:55,930 --> 00:43:00,990 Nii powerOf (5) tähendab, et me ei kavatse omada exponentiator 5. siin. 767 00:43:00,990 --> 00:43:04,160 Nii et see on sisuliselt saab olema sama asi nagu 4 viienda võimu, 768 00:43:04,160 --> 00:43:07,200 sest me oleme loonud eksponentsimine toimida viienda võimu, 769 00:43:07,200 --> 00:43:09,920 ja me pääsemist mis toimivad väärtus 4. 770 00:43:09,920 --> 00:43:12,619 Ja me saame selle väärtus et ootame 1024. 771 00:43:12,619 --> 00:43:14,785 Sihtrühm: Ja see ei ole nime, nii on lihtsam 772 00:43:14,785 --> 00:43:16,570 lugeda, ruudu iganes. 773 00:43:16,570 --> 00:43:17,903 >> DAN AMRMENDARIZ: Õigus, täpselt. 774 00:43:17,903 --> 00:43:21,120 Nii enne kui ma lihtsalt panna see viiakse konstantse siin nii 775 00:43:21,120 --> 00:43:23,808 et ta tegi seda lihtne kasutada seda nime. 776 00:43:23,808 --> 00:43:24,308 Jah? 777 00:43:24,308 --> 00:43:26,942 >> Sihtrühm: Selles kontekstis powerOf, see on osa 778 00:43:26,942 --> 00:43:30,774 programmeerimiskeelt mitte nii, nagu te 779 00:43:30,774 --> 00:43:33,952 mõtle powerOf on [kuuldamatu]? 780 00:43:33,952 --> 00:43:35,660 DAN AMRMENDARIZ: Nii sel juhul powerOf 781 00:43:35,660 --> 00:43:39,280 on lihtsalt nime funktsioon, et ma määratletud siin. 782 00:43:39,280 --> 00:43:41,801 Nii see ei ole omane et keel ise, 783 00:43:41,801 --> 00:43:43,550 vaid, see on lihtsalt funktsioon, mis on 784 00:43:43,550 --> 00:43:45,628 et nime, sest ma annan selle, et nimi. 785 00:43:45,628 --> 00:43:48,770 786 00:43:48,770 --> 00:43:51,920 Muid küsimusi? 787 00:43:51,920 --> 00:43:52,800 Hästi. 788 00:43:52,800 --> 00:43:54,750 >> Nüüd on see suur. 789 00:43:54,750 --> 00:43:58,170 Aga sa ei kavatse näha palju sulgemise funktsioonid 790 00:43:58,170 --> 00:44:03,440 on selline, kus saab määrata, sees Ühe funktsiooni teise funktsiooni. 791 00:44:03,440 --> 00:44:04,320 Ja sa ei saa seda teha. 792 00:44:04,320 --> 00:44:06,430 Aga see on selline mitte tõesti vaja, eks? 793 00:44:06,430 --> 00:44:09,189 Nagu miks ma määratleda selle funktsiooni nimetatakse exponentiator 794 00:44:09,189 --> 00:44:10,480 ja siis kohe tagasi seda. 795 00:44:10,480 --> 00:44:15,220 Miks ma ei saa lihtsalt kohe tagastab funktsioon? 796 00:44:15,220 --> 00:44:18,890 >> Ja tegelikult, see on täpselt Idee mõiste nimega 797 00:44:18,890 --> 00:44:22,410 anonüümne funktsioone, kus anonüümne funktsioonid tegelikult ei 798 00:44:22,410 --> 00:44:25,270 veel nime, sest nad ei pea olema üks. 799 00:44:25,270 --> 00:44:28,700 Ja nii sel juhul, in 7B, leiame just seda. 800 00:44:28,700 --> 00:44:31,470 See kõik on sama kood, ei täpselt sama asi, 801 00:44:31,470 --> 00:44:35,570 kuid nüüd oleme muutunud veidi nii et see powerOf funktsiooni kohe 802 00:44:35,570 --> 00:44:37,750 tagastab funktsioon. 803 00:44:37,750 --> 00:44:44,150 Pange tähele, et pärast tagasipöördumist, seal on avatud looksulg. 804 00:44:44,150 --> 00:44:46,410 See on oodanud seda input Double. 805 00:44:46,410 --> 00:44:48,560 See on oodanud, et väljund Double. 806 00:44:48,560 --> 00:44:52,175 Ja siis märksõna eraldab koodi ise. 807 00:44:52,175 --> 00:44:53,550 Nii et see on anonüümne funktsioon. 808 00:44:53,550 --> 00:44:57,030 See tegelikult ei ole nime, samas Enne seda kutsuti exponentiator. 809 00:44:57,030 --> 00:45:00,229 Aga nagu me nägime, lihtsalt tõesti ei viidanud exponentiator 810 00:45:00,229 --> 00:45:01,270 väljaspool seda funktsiooni. 811 00:45:01,270 --> 00:45:02,470 Nii et see ei ole oluline. 812 00:45:02,470 --> 00:45:06,300 Nii et see anonüümne funktsioon on Niinimetatud sest see on anonüümne, 813 00:45:06,300 --> 00:45:09,107 kuid seda endiselt kasutada kontekstis seda koodi. 814 00:45:09,107 --> 00:45:13,690 815 00:45:13,690 --> 00:45:16,079 >> Järgmise paari, mida ma olen jätkub loodetavasti 816 00:45:16,079 --> 00:45:17,370 puhub meelt natuke. 817 00:45:17,370 --> 00:45:20,410 Me saame seda veelgi lihtsustada. 818 00:45:20,410 --> 00:45:24,490 Sest nagu oli astutely eespool märgitud, 819 00:45:24,490 --> 00:45:29,100 Võib-olla me tegelikult teame, mida tuletas see kood, mida 820 00:45:29,100 --> 00:45:31,750 väljundi see kood läheb. 821 00:45:31,750 --> 00:45:38,180 Ja tegelikult selles anonüümseks funktsiooni, saame tegelikult järeldada andmete liigid. 822 00:45:38,180 --> 00:45:41,650 >> Nii et üks, me ei ole enam vaja selgelt määratleda 823 00:45:41,650 --> 00:45:44,850 mis tüüpi andmeid, mis kuramuse sisend ja väljund seda funktsiooni 824 00:45:44,850 --> 00:45:45,890 paar põhjustel. 825 00:45:45,890 --> 00:45:51,390 Üks on see, et me oleme määratud, kuni kell prototüübi ümbritseva funktsiooni, 826 00:45:51,390 --> 00:45:55,770 millist tüüpi andmeid anonüümseid funktsioon peaks sisend ja väljund. 827 00:45:55,770 --> 00:45:57,900 Ja teistest, me võib järeldada koodi 828 00:45:57,900 --> 00:46:01,930 siia alla, et me oleme vastu sisend, mis on tüüpi Double 829 00:46:01,930 --> 00:46:03,670 ja tagasi Double. 830 00:46:03,670 --> 00:46:07,890 >> Pange tähele, et meil on siin selgesõnaliselt ei määratletud nimed argumendid 831 00:46:07,890 --> 00:46:11,220 et see funktsioon on vastu. 832 00:46:11,220 --> 00:46:16,180 Ja nii me näeme, saame viidata nende parameetrite abil $ 0, $ 1, 833 00:46:16,180 --> 00:46:20,140 nii edasi ja nii edasi, sõltuvalt arvu, et kasutatud parameetri 834 00:46:20,140 --> 00:46:20,850 Selles funktsioonis. 835 00:46:20,850 --> 00:46:23,370 836 00:46:23,370 --> 00:46:29,740 >> See on midagi, mida te ei kavatse näha palju on see avatud looksulg 837 00:46:29,740 --> 00:46:32,797 määratluse järgneb $ 0, ja siis mõned operatsiooni 838 00:46:32,797 --> 00:46:34,130 ja siis suletud looksulg. 839 00:46:34,130 --> 00:46:38,630 See on anonüümne funktsiooni mis täidab see operatsioon. 840 00:46:38,630 --> 00:46:42,940 See on see parameeter, kus see tüüp on järeldada. 841 00:46:42,940 --> 00:46:44,860 See esimene parameeter on $ 0. 842 00:46:44,860 --> 00:46:49,010 Ja mõned operatsioon juhtub, et $ 0. 843 00:46:49,010 --> 00:46:52,100 >> Sihtrühm: Nii dollari märk tähendab parameetri põhiliselt 844 00:46:52,100 --> 00:46:53,429 ja 0 esimene? 845 00:46:53,429 --> 00:46:54,720 DAN ARMENDARIZ: See on õige. 846 00:46:54,720 --> 00:46:59,100 Nii et dollari märk tähendab põhimõtteliselt parameeter ja 0 tähistab esimene. 847 00:46:59,100 --> 00:47:02,760 Aga see töötab täpsemalt Sel juhul, kui ma ei ole nime 848 00:47:02,760 --> 00:47:07,940 argumendid minu anonüümne funktsioon. 849 00:47:07,940 --> 00:47:11,119 >> Sihtrühm: Kas Perl või midagi on Selle dollari märk, dollar 0 seal? 850 00:47:11,119 --> 00:47:12,702 DAN ARMENDARIZ: Kas mille Vabandust? 851 00:47:12,702 --> 00:47:15,360 Sihtrühm: Kas Perl on Selle dollar 0 dollar 1-- 852 00:47:15,360 --> 00:47:17,318 DAN ARMENDARIZ: ma ei ole liiga tuttav Perl, 853 00:47:17,318 --> 00:47:21,340 kuid PHP, mida määratleb muutujad põhineb dollari märgid. 854 00:47:21,340 --> 00:47:26,120 Ja võib esineda keeles mis on funktsioone, nagu see. 855 00:47:26,120 --> 00:47:28,240 Tegelikult Swift laenab palju funktsioone, nagu seda 856 00:47:28,240 --> 00:47:29,489 alates palju teisi keeli. 857 00:47:29,489 --> 00:47:32,380 Me näeme lõhnas Python ta. 858 00:47:32,380 --> 00:47:35,800 See määratlus tüüpi Tundub, et pärit OCaml. 859 00:47:35,800 --> 00:47:38,932 Ja meil on lihtsalt terve hunnik kraami palju erinevaid keeli. 860 00:47:38,932 --> 00:47:40,640 See on üks kena asju Swift 861 00:47:40,640 --> 00:47:43,390 on see, et see võtab palju paremaid ideid kamp keeles 862 00:47:43,390 --> 00:47:47,229 ja shoehorns neid kõiki koos ühte super keeles. 863 00:47:47,229 --> 00:47:49,520 Tegelikult, kui lubate jätkata puhub meelt, 864 00:47:49,520 --> 00:47:51,000 nii et me oleme teinud kõik. 865 00:47:51,000 --> 00:47:56,690 Me võime olla lihtsustab see veidi vähehaaval aru, et muidugi 866 00:47:56,690 --> 00:48:02,120 Swift on eksponentsimine funktsioon sisse ehitatud. 867 00:48:02,120 --> 00:48:04,660 Kui ma importida Darwin, mille on lihtsalt raamatukokku, et 868 00:48:04,660 --> 00:48:09,680 sisaldab seda funktsiooni nimetatakse POW nüüd Võin lihtsustada minu võimu funktsiooni 869 00:48:09,680 --> 00:48:11,830 olema järgmine. 870 00:48:11,830 --> 00:48:15,860 See läheb tagasi see anonüümne funktsioon. 871 00:48:15,860 --> 00:48:17,950 >> Aga vaadake, kui lihtne see on nüüd. 872 00:48:17,950 --> 00:48:22,780 See on anonüümne funktsioon, mis on vastu teatud tüüpi andmete, 873 00:48:22,780 --> 00:48:26,600 ja see saab olema üks argument täpsemalt 874 00:48:26,600 --> 00:48:29,320 Viidatud on 0 $, mis on tüüpi Double. 875 00:48:29,320 --> 00:48:32,680 See läheb tagasi tüüpi kahekordne. 876 00:48:32,680 --> 00:48:35,760 Aga tagastamise avalduse Nüüd on kaudne. 877 00:48:35,760 --> 00:48:39,990 >> Ja see on täpselt sellist stiili, et on väga levinud Swift, 878 00:48:39,990 --> 00:48:40,790 kogu koht. 879 00:48:40,790 --> 00:48:43,190 Me näeme seda kogu aeg Swift. 880 00:48:43,190 --> 00:48:46,150 Nii et ma olen näitab see kõik teile, sest see süntaks. 881 00:48:46,150 --> 00:48:49,070 See on väga levinud näha, mis tähendab seda 882 00:48:49,070 --> 00:48:51,420 on anonüümne funktsioon mis täidab 883 00:48:51,420 --> 00:48:54,640 opereerimine neid argumente. 884 00:48:54,640 --> 00:48:56,940 Ja seal on kaudne tulu. 885 00:48:56,940 --> 00:49:01,850 Nii et see on absoluutselt sama asi meile seda öelda, siin. 886 00:49:01,850 --> 00:49:05,730 887 00:49:05,730 --> 00:49:08,150 >> Kuna see lokkis sulg on funktsioon, 888 00:49:08,150 --> 00:49:10,480 me oleme selle toimingu Esimesel argument. 889 00:49:10,480 --> 00:49:12,170 Me läheme tagasi, et. 890 00:49:12,170 --> 00:49:14,815 Aga see välimine tagasipöördumine tagasi, et kogu funktsiooni, 891 00:49:14,815 --> 00:49:19,855 et kogu anonüümne funktsioon et oleme just loodud. 892 00:49:19,855 --> 00:49:21,689 Muid küsimusi? 893 00:49:21,689 --> 00:49:23,980 Olgu, ma ei tea, kas Te olete selleks valmis, 894 00:49:23,980 --> 00:49:27,455 kuid me ei saa minna isegi segasem koos Swift. 895 00:49:27,455 --> 00:49:28,560 Oled valmis? 896 00:49:28,560 --> 00:49:29,930 OK, see on hea. 897 00:49:29,930 --> 00:49:35,310 >> Nüüd me tegelikult suudavad to, Swift, sest kuidas modulaarse 898 00:49:35,310 --> 00:49:39,650 ja kuidas protokollil põhinevad See on see, määratleda oma freaking ettevõtjad. 899 00:49:39,650 --> 00:49:44,060 Nagu antud juhul ei olnud meil operaator exponentiation-- hästi, 900 00:49:44,060 --> 00:49:47,990 teostamise volitused midagi. 901 00:49:47,990 --> 00:49:53,632 Aga ma ei saa, Swift, määrata uus operaator, et just seda teebki. 902 00:49:53,632 --> 00:49:55,590 Nii et kui seal on kamp süntaks siin. 903 00:49:55,590 --> 00:49:59,980 Ja ma võimaldavad teil vaadata seda kodus, kui te vaatate seda. 904 00:49:59,980 --> 00:50:06,890 Aga me määratleme selle Siseliidete operaator, **, mis seejärel võimaldab meil, 905 00:50:06,890 --> 00:50:09,840 määratledes, mida see funktsiooni ** tegelikult 906 00:50:09,840 --> 00:50:15,010 ei, vastu vasakut kätt pool ja paremal küljel, 907 00:50:15,010 --> 00:50:21,190 ja siis tagasi astendaja et Vasakul pool on paremal pool. 908 00:50:21,190 --> 00:50:24,850 >> Ja nii nüüd äkki ma loonud uue lugeja. 909 00:50:24,850 --> 00:50:29,490 Nii 2 ** 3 tähendab 2 kolmanda võimu. 910 00:50:29,490 --> 00:50:34,420 [Meeles puhuriga SOUND] See mida ise peaks sind oleks nagu, 911 00:50:34,420 --> 00:50:37,960 OK, kruvi C. Ma lähen Swift kogu tee. 912 00:50:37,960 --> 00:50:38,740 See on hea. 913 00:50:38,740 --> 00:50:40,140 See on päris fantastiline. 914 00:50:40,140 --> 00:50:42,240 >> Kuigi see on hea näide. 915 00:50:42,240 --> 00:50:45,570 Aga mul kordagi väljaspool Selle näite tegelikult 916 00:50:45,570 --> 00:50:46,800 määratletud oma operaator. 917 00:50:46,800 --> 00:50:49,710 Aga ikkagi, see näitab palju võimu Swift 918 00:50:49,710 --> 00:50:54,050 ja miks see on tegelikult tõesti väga lahe. 919 00:50:54,050 --> 00:50:55,832 OK, jah? 920 00:50:55,832 --> 00:50:57,790 Sihtrühm: Kui sa oled määratleda oma operaator, 921 00:50:57,790 --> 00:51:02,940 kuidas sa tead, sa ei kogemata proovida ja luua operaator, kes on 922 00:51:02,940 --> 00:51:06,040 aastal kusagil C, nagu peidetud kusagil Swift, 923 00:51:06,040 --> 00:51:12,210 nagu segane üks, mida ei näinud enne. 924 00:51:12,210 --> 00:51:15,050 >> DAN ARMENDARIZ: Nii et kui sa üritad määratleda oma ettevõtjaid, 925 00:51:15,050 --> 00:51:20,970 on oht määratleda üks üle olemasoleva operaator. 926 00:51:20,970 --> 00:51:24,870 See läheb nii üksikasjalikud, et Ma ei usu, et meil on aeg minna üle. 927 00:51:24,870 --> 00:51:27,620 Aga see on risk. 928 00:51:27,620 --> 00:51:31,320 Ja see on tegelikult väga põhjust, miks Ma ei kasutanud Katus tähendab, mis 929 00:51:31,320 --> 00:51:36,210 kui me kirjutades välja võimu, me tavaliselt kasutada 4 väike katus 5 või midagi 930 00:51:36,210 --> 00:51:40,560 niimoodi, just siis, kui me oleme Gchatting semud või mis iganes. 931 00:51:40,560 --> 00:51:43,660 Aga sel juhul, et tegelikult oleks põhjustanud avarii. 932 00:51:43,660 --> 00:51:46,450 Ja nii ma vältida seda lihtsalt sellepärast, Sattusin tea sel juhul 933 00:51:46,450 --> 00:51:50,430 et see põhjustaks et kokkupõrge. 934 00:51:50,430 --> 00:51:52,270 >> Hästi. 935 00:51:52,270 --> 00:51:55,080 Nüüd kahjuks jaoks Viimase seitsme minuti 936 00:51:55,080 --> 00:51:57,410 Mul on hoida puhub Sinu meeled natuke. 937 00:51:57,410 --> 00:52:00,230 Lubage mul teile näidata mõned muud asjad samuti. 938 00:52:00,230 --> 00:52:03,710 >> Me oleme teile näidanud idee võttes neid anonüümseid funktsioone, 939 00:52:03,710 --> 00:52:07,040 Nende sulgemine, mis võimaldavad teil Selline edasi funktsioonid ümber. 940 00:52:07,040 --> 00:52:08,100 Võite neid tagasi. 941 00:52:08,100 --> 00:52:09,490 Võite neid töödelda. 942 00:52:09,490 --> 00:52:11,790 Seda saab teha igasuguseid hull värk. 943 00:52:11,790 --> 00:52:14,850 >> Aga üks asi, mis juhtub olema kasulikud 944 00:52:14,850 --> 00:52:19,740 on võime, vastandina tagastamisel need funktsioonid 945 00:52:19,740 --> 00:52:25,146 funktsioonis, läbida funktsiooni parameetrina muu funktsiooni. 946 00:52:25,146 --> 00:52:30,430 Sa võid mõelda ka, miks Maal ma tahan teha midagi sellist? 947 00:52:30,430 --> 00:52:33,660 >> Noh, oletame, et ma tahan võtta see operaator, et ma 948 00:52:33,660 --> 00:52:40,260 nii palju vaeva, et luua ja rakendada see hunnik erinevaid numbreid 949 00:52:40,260 --> 00:52:41,770 massiivi. 950 00:52:41,770 --> 00:52:46,700 Nii et kui mul on hulgaliselt integers-- 1, 4, 7, 2, 5, 10, 56. 951 00:52:46,700 --> 00:52:48,080 Ja ma tahan, et kahekordistada neid kõiki. 952 00:52:48,080 --> 00:52:50,430 Nii, et me oleks tavaliselt seda teha on lihtsalt kirjutada 953 00:52:50,430 --> 00:52:53,440 lihtne silmus, mis itereerib üle neid kõiki 954 00:52:53,440 --> 00:52:57,140 ja teha mingisugune ruudu operatsioon nende üle, 955 00:52:57,140 --> 00:53:02,700 sisestanud need uued väärtused uude muutuja, või õigemini, uue massiivi siin. 956 00:53:02,700 --> 00:53:07,370 Ja väärtus väljund Tulemuseks on siis kõik need massiivid, 957 00:53:07,370 --> 00:53:10,200 või pigem Kõigil neil elementide nüüd ruudus. 958 00:53:10,200 --> 00:53:12,680 >> Ja me võiksime teha sama asi cubing see, 959 00:53:12,680 --> 00:53:15,360 kuid veidi häirekella peaks minema välja 960 00:53:15,360 --> 00:53:17,360 öeldes, et äkki seal on kuidagi, et meil oleks 961 00:53:17,360 --> 00:53:19,860 suutma seda lihtsustada natuke. 962 00:53:19,860 --> 00:53:21,130 Ja tegelikult on. 963 00:53:21,130 --> 00:53:25,320 Mis siis, kui me võiksime luua funktsioon, mis võimaldab meil 964 00:53:25,320 --> 00:53:28,350 aktsepteerida, sest kiskja, funktsioon? 965 00:53:28,350 --> 00:53:30,350 Nii et sel juhul võtta vaadata neid argumente. 966 00:53:30,350 --> 00:53:33,220 Me läheme vastu nimekirja kahekordistub. 967 00:53:33,220 --> 00:53:35,030 Ja siis me läheme vastu funktsioon 968 00:53:35,030 --> 00:53:40,990 muutujale nimega f, mis toimub võtta Kahe ja tagasi Double. 969 00:53:40,990 --> 00:53:43,320 Ja kogu toodangust kogu selle funktsiooni 970 00:53:43,320 --> 00:53:47,310 nimetatakse kaardistajale läheb tagasi massiivi nimetatakse topelt. 971 00:53:47,310 --> 00:53:52,380 >> Mis see siis lubage mul teha on korrata üle, et nimekirja 972 00:53:52,380 --> 00:53:56,350 ja teha sama asja, kuid nüüd kohaldatakse selle funktsiooni igale 973 00:53:56,350 --> 00:53:58,970 Üksikute väärtuste selles nimekirjas. 974 00:53:58,970 --> 00:54:00,750 Nii et ma tõesti ei tea, mida f on. 975 00:54:00,750 --> 00:54:02,010 Ei ole oluline mulle. 976 00:54:02,010 --> 00:54:06,530 Aga nii kaua kui vaja kahekohalises, täidab mõned operatsioon seda, 977 00:54:06,530 --> 00:54:08,640 ja siis tagastab Kahe, ma oleks siis 978 00:54:08,640 --> 00:54:13,415 suutma kaardistada selle funktsiooni üle iga element nimekirjas. 979 00:54:13,415 --> 00:54:16,270 980 00:54:16,270 --> 00:54:20,930 >> Ja seda tüüpi programmeerimine nimetatakse kõrgemat järku funktsioonid, 981 00:54:20,930 --> 00:54:24,440 kus me möödaminnes funktsioonid umbes nagu parameetrid 982 00:54:24,440 --> 00:54:26,430 ja asju funktsioonidega. 983 00:54:26,430 --> 00:54:29,640 See on omamoodi nagu võttes kõik need ideid, mida me oleme õppinud CS50 984 00:54:29,640 --> 00:54:31,390 ja võttes neid omamoodi ja edasi järgmisele tasandile. 985 00:54:31,390 --> 00:54:34,140 Ja see kõik on CS51 stiilis asju. 986 00:54:34,140 --> 00:54:37,080 Ja nii me sügavuti minna rohkem klassides niimoodi. 987 00:54:37,080 --> 00:54:38,930 >> Kuid sama kehtib ka siin oluline, sest me 988 00:54:38,930 --> 00:54:42,010 vaata palju funktsioone mida kasutatakse Swift 989 00:54:42,010 --> 00:54:45,590 et sisuliselt ei see, kus me oleme 990 00:54:45,590 --> 00:54:48,300 mõned numbrid, mõned hulga numbrid. 991 00:54:48,300 --> 00:54:50,850 Me läheme edasi, et massiivi meie kaardistajale. 992 00:54:50,850 --> 00:54:55,770 Ja me ka läheb edasi mõne funktsiooni, mis 993 00:54:55,770 --> 00:54:57,950 me oleme juba määratletud siin. 994 00:54:57,950 --> 00:54:59,690 See saab olla kandiline. 995 00:54:59,690 --> 00:55:02,220 Ja me läheme siis ruudu kõik need numbrid 996 00:55:02,220 --> 00:55:04,710 ja hoidke, et sellesse tulemus siin. 997 00:55:04,710 --> 00:55:07,280 998 00:55:07,280 --> 00:55:11,000 >> Nii sel juhul oleme määratud meie oma funktsiooni nimetatakse kaardistajale. 999 00:55:11,000 --> 00:55:15,370 Aga see täpse asi on, tegelikult ehitatud Swift. 1000 00:55:15,370 --> 00:55:18,960 On erinevaid funktsioone nimetatakse kaart. 1001 00:55:18,960 --> 00:55:21,520 Seal kaardil funktsiooni, seal on vähendada funktsiooni, 1002 00:55:21,520 --> 00:55:25,630 ja seal on filter funktsiooni, mis sisuliselt kohaldada funktsioonid 1003 00:55:25,630 --> 00:55:30,782 et iga element loetleda neid muuta mingil moel. 1004 00:55:30,782 --> 00:55:34,510 >> Sihtrühm: Nii, kuna sa muudavad andmed teise formaadis 1005 00:55:34,510 --> 00:55:36,134 läbi funktsioon-- 1006 00:55:36,134 --> 00:55:37,050 DAN ARMENDARIZ: Right. 1007 00:55:37,050 --> 00:55:39,420 Jah, nii funktsioon et me vastu 1008 00:55:39,420 --> 00:55:41,790 muudabki andmed mingil moel. 1009 00:55:41,790 --> 00:55:44,700 Sel juhul olime kas kvadratuur, või olime cubing see, 1010 00:55:44,700 --> 00:55:50,060 või tõesti, me võiks täita no operatsiooni seda üldse. 1011 00:55:50,060 --> 00:55:54,150 >> Aga las ma näitan teile siis kuidas seda läheb otsima praktikas. 1012 00:55:54,150 --> 00:55:56,681 Ja jälle, ma töötab natuke aega. et ma ei ole 1013 00:55:56,681 --> 00:55:59,430 saab olema võimalik minna üle kõik lähtekoodi siin üksikasjalikult. 1014 00:55:59,430 --> 00:56:00,721 Aga ma kutsun teid üles seda tegema. 1015 00:56:00,721 --> 00:56:03,850 Saadame see niipea, kui võimalik pärast seda rääkida. 1016 00:56:03,850 --> 00:56:07,610 >> Aga kui te võtate pilk sellele, eeldada, et meil on nimekiri numbrid, 1017 00:56:07,610 --> 00:56:10,260 massiivi numbrid selles muutuja nimega numbrid. 1018 00:56:10,260 --> 00:56:16,670 Siis me tahame teha seda filter operatsiooni need numbrid. 1019 00:56:16,670 --> 00:56:19,730 Nii filter on kõrgem Et funktsioon, mis 1020 00:56:19,730 --> 00:56:24,660 nõustub massiivi ja ka funktsioon. 1021 00:56:24,660 --> 00:56:28,760 Ja iga element, mis massiiv, ta täidab seda ülesannet. 1022 00:56:28,760 --> 00:56:31,990 >> Kui see funktsioon tagastab Tõsi, see hoiab selle objekt. 1023 00:56:31,990 --> 00:56:36,100 Kui see funktsioon tagastab false, ta viskab ära, et objekti. 1024 00:56:36,100 --> 00:56:40,480 Ja siis ta tagastab nimekirja mis seejärel moodustasid kõik 1025 00:56:40,480 --> 00:56:44,360 on need teemad, mis on filtreeritud. 1026 00:56:44,360 --> 00:56:47,150 >> Nii ehk teisiti, on see sama mõte on gradebook. 1027 00:56:47,150 --> 00:56:50,800 Meil võib olla mitmeid klassid sellesse väärtus ehk numbrid. 1028 00:56:50,800 --> 00:56:55,590 Võiks olla 100 ja 70, ja 40, nii edasi ja nii edasi. 1029 00:56:55,590 --> 00:56:59,110 Mis see filter ei on teate et see on see, et süntaktiline suhkur 1030 00:56:59,110 --> 00:57:01,310 anonüümse funktsiooni. 1031 00:57:01,310 --> 00:57:05,980 See on anonüümne funktsioon öelda et parameeter, et ma olen vastu 1032 00:57:05,980 --> 00:57:09,690 saab olema, kui see on suurem kui 70, 1033 00:57:09,690 --> 00:57:15,837 siis naaseb tõsi, mis tähendab, et selle objekti hoitakse selles filter. 1034 00:57:15,837 --> 00:57:17,920 Nii olgem natuke konkreetsem sellest. 1035 00:57:17,920 --> 00:57:25,760 Kui mul on see massiiv numbrid ja see koosneb 100, 70 ja 40, 1036 00:57:25,760 --> 00:57:29,730 Ma täita see filter operatsioon igaüks neist. 1037 00:57:29,730 --> 00:57:33,270 Nii et esimene on see väärtus 100. 1038 00:57:33,270 --> 00:57:36,770 100 suurem või võrdne 70 On tõsi, mida 1039 00:57:36,770 --> 00:57:41,950 tähendab, et 100 hoitakse Selle uue koopia massiivi. 1040 00:57:41,950 --> 00:57:44,290 70 läbib ka. 1041 00:57:44,290 --> 00:57:46,020 Aga 40 ei ole. 1042 00:57:46,020 --> 00:57:54,290 Mis siis tagastatakse passingCount on massiivi elementide 100 ja 70-- 1043 00:57:54,290 --> 00:57:57,410 100, koma, 70. 1044 00:57:57,410 --> 00:57:59,870 Need olid vaid kaks objekte, mis on peetud. 1045 00:57:59,870 --> 00:58:03,740 Ja nii põhjus, miks ma kiiresti läks läbi palju neid mingi kõrge, et 1046 00:58:03,740 --> 00:58:08,680 asjad on, sest see on see, et ühise asi, näete Swift päris 1047 00:58:08,680 --> 00:58:16,810 sageli, täidab opereerimine kasutades anonüümseid funktsiooni süntaks. 1048 00:58:16,810 --> 00:58:18,450 >> Seal on mõned lahedaid asju. 1049 00:58:18,450 --> 00:58:24,730 Lülitid on tõesti võimas Swift, Ma mõtlen nagu hull, hull võimas. 1050 00:58:24,730 --> 00:58:28,250 Võite kasutada lüliti, ja saab tegelikult kohaldada neid 1051 00:58:28,250 --> 00:58:33,160 vahemikkudele, mis on selline hull, ja teha fancy midagi sellist. 1052 00:58:33,160 --> 00:58:37,540 >> Kuid viimastel minutitel, Ma tahan, et liikuda edasi päris palju 1053 00:58:37,540 --> 00:58:46,940 ja näidata kindel näide sellest, kuidas saame luua iOS app kasutades Swift. 1054 00:58:46,940 --> 00:58:49,040 Nii et kui sa teed see, sa pead võtma 1055 00:58:49,040 --> 00:58:51,990 pöörama at-- Apple'i dokumentatsioon, nad 1056 00:58:51,990 --> 00:58:56,084 on palju väga head õpetused luua oma esimese taotluse. 1057 00:58:56,084 --> 00:58:58,250 Ja ma kutsun teid üles tegema et kuna nad teid 1058 00:58:58,250 --> 00:59:04,110 kõik sammud, mida täpselt kliki luua iOS rakendus. 1059 00:59:04,110 --> 00:59:07,290 >> Aga siin on meil see iOS app. 1060 00:59:07,290 --> 00:59:10,960 Ja see on päris lihtne app tõesti. 1061 00:59:10,960 --> 00:59:13,840 Kui ma saan seda, las ma näitan sa kuidas see välja näeb. 1062 00:59:13,840 --> 00:59:19,480 Kõik see sisuliselt ei ole see tõmbab internetist JSON faili 1063 00:59:19,480 --> 00:59:22,300 et olen salvestatud serverisse. 1064 00:59:22,300 --> 00:59:26,310 Ja et JSON faili määratleb pilte, mis võimaldab 1065 00:59:26,310 --> 00:59:31,680 ma siis tsükkel läbi, minu app, pilte minu veebiserver. 1066 00:59:31,680 --> 00:59:32,880 >> Nii et mul on siin getNextImage. 1067 00:59:32,880 --> 00:59:37,100 See laeb pildi Internetist, ja siis kuvab selle ekraanile. 1068 00:59:37,100 --> 00:59:38,200 >> Nii et see on üsna lihtne. 1069 00:59:38,200 --> 00:59:41,550 Aga eesmärk on näidata, kuidas saame kombineerida asju 1070 00:59:41,550 --> 00:59:47,820 Viimasest nädalatel CS50 arvesse tegelik iOS rakendus. 1071 00:59:47,820 --> 00:59:53,140 Teisisõnu, ehk üks asju, mida sa teha tahad 1072 00:59:53,140 --> 00:59:56,340 on, et iOS rakenduse ei tõmba andmeid internetis 1073 00:59:56,340 --> 00:59:59,070 ja näitavad kasutajale teatud informatsiooni. 1074 00:59:59,070 --> 01:00:03,130 See on täiesti punkti Selle lähtekoodi siin. 1075 01:00:03,130 --> 01:00:07,890 >> Nii et on palju räägitud kuidas teha tegelik iOS arengut. 1076 01:00:07,890 --> 01:00:12,860 Seal on palju hull süntaks et me ei ole näinud päris veel 1077 01:00:12,860 --> 01:00:15,580 nagu klassi, mida klassi tegelikult on. 1078 01:00:15,580 --> 01:00:19,470 Me saame suuresti tähelepanuta et praegu. 1079 01:00:19,470 --> 01:00:23,250 >> Aga märgata, et meil on sisaldanud selle erinevaid asju 1080 01:00:23,250 --> 01:00:27,720 et me oleme juba näinud, nagu funktsioone, mis on konkreetsed nimed. 1081 01:00:27,720 --> 01:00:32,650 Ja kui me anname neile toimib õige nime 1082 01:00:32,650 --> 01:00:36,530 et oodatakse iOS, tegelikult see tundub natuke maagiline. 1083 01:00:36,530 --> 01:00:40,300 Aga kui loote iOS rakenduse, siis 1084 01:00:40,300 --> 01:00:47,590 on konkreetne funktsioon, mille nimi on pandud telefoni ise 1085 01:00:47,590 --> 01:00:52,440 kui rakendus käivitub proovida luua protsess, mis tegelikult 1086 01:00:52,440 --> 01:00:54,787 jookseb oma taotluse. 1087 01:00:54,787 --> 01:00:58,120 Nii uuesti, seal on palju asju, mida ma on ilustada siin, et meid 1088 01:00:58,120 --> 01:01:00,570 rääkida sellest täpsemalt. 1089 01:01:00,570 --> 01:01:06,050 Aga ma kutsun teid vaatama võibolla Teisest iOS seminar, kuid ka mõned 1090 01:01:06,050 --> 01:01:09,290 õpetused Internetis mida teha palju paremini kirjeldada 1091 01:01:09,290 --> 01:01:11,030 konkreetset teavet. 1092 01:01:11,030 --> 01:01:15,760 >> Aga me näeme paar asja, mis on huvitav koodi siin. 1093 01:01:15,760 --> 01:01:17,950 Pange tähele, et meil on, kui avaldused. 1094 01:01:17,950 --> 01:01:20,400 Muide, üks oluline asi, kui avaldused 1095 01:01:20,400 --> 01:01:24,860 seisneb selles, et sulgudesse Loogiline väljendus on vabatahtlik. 1096 01:01:24,860 --> 01:01:30,800 Aga looksulg ei ole kohustuslik, ükskõik kui vähe või palju ridu koodi 1097 01:01:30,800 --> 01:01:32,360 sul, kui avaldus. 1098 01:01:32,360 --> 01:01:38,670 Sa ei saa olla, kui avaldused ilma looksulg Swift. 1099 01:01:38,670 --> 01:01:41,000 >> Ja see on, noh, omamoodi rumal. 1100 01:01:41,000 --> 01:01:43,910 Aga seal on ajalooline põhjust. 1101 01:01:43,910 --> 01:01:46,180 See peaks säästa ennast. 1102 01:01:46,180 --> 01:01:49,899 Nagu see näiteks, siis ei saa kõrvaldada looksulg ümber, et 1103 01:01:49,899 --> 01:01:50,440 kui avaldus. 1104 01:01:50,440 --> 01:01:52,730 Need on tegelikult vajalik. 1105 01:01:52,730 --> 01:01:54,480 Nii et ma kutsun teid üles heita pilk see. 1106 01:01:54,480 --> 01:01:56,230 Aga seal on veel üks ehitada, et ma tahan 1107 01:01:56,230 --> 01:02:02,640 näidata teile Swift, et on uus Swift 2.0 võrreldes 1108 01:02:02,640 --> 01:02:08,460 et vanemad versioonid Swift, mis on järgmine. 1109 01:02:08,460 --> 01:02:11,620 Vaatame, kuhu ma selle panna siin? 1110 01:02:11,620 --> 01:02:16,630 >> Nii see funktsioon nimega fetchJSON, see funktsioon 1111 01:02:16,630 --> 01:02:23,450 vastutab tõmmates, et JSON faili URL, mida lihtsalt nii juhtub 1112 01:02:23,450 --> 01:02:26,310 töötavat minu CS50 IDE. 1113 01:02:26,310 --> 01:02:28,580 Ma lihtsalt hakkasin Apache, panen JSON faili seal, 1114 01:02:28,580 --> 01:02:32,110 ja ma olen võimeline tõmmake et andmete edastamiseks Interneti kaudu 1115 01:02:32,110 --> 01:02:36,430 Selle funktsiooni ja selle URL, mis on varustatud telefoni teel. 1116 01:02:36,430 --> 01:02:40,490 See osutab raamatukogu, mida saate kasutada, kui 1117 01:02:40,490 --> 01:02:43,140 sa teed mõned iOS app arengut. 1118 01:02:43,140 --> 01:02:49,690 >> Pange tähele siin, et seal on see ebatavaline süntaktiline konstruktsiooni nimetatakse valvur. 1119 01:02:49,690 --> 01:02:53,530 Ja tõesti see kõik on Swift on võimalus kontrollida 1120 01:02:53,530 --> 01:02:56,870 et mõned asjad on täidetud, enne kui 1121 01:02:56,870 --> 01:03:00,000 jätkata ülejäänud funktsiooni. 1122 01:03:00,000 --> 01:03:04,260 Nii et ma võiks olla, kasutades Selle vabatahtlikud, 1123 01:03:04,260 --> 01:03:10,530 Ma oleks leidnud URL poolt töötab see NSURL funktsiooni 1124 01:03:10,530 --> 01:03:16,640 ja hoidmine, et arvesse URL pidev ja seejärel kontrollida 1125 01:03:16,640 --> 01:03:20,820 et näha, kas URL oli null, sest see läksin tagasi valikuline tüübist. 1126 01:03:20,820 --> 01:03:25,660 Ja kui ta oli null, siis ma välja printida viga ja siis tagasi. 1127 01:03:25,660 --> 01:03:29,970 >> Kuid selle asemel, mida valvur laseb meil teha on, et väga asi, 1128 01:03:29,970 --> 01:03:34,550 aga tagada, et see on tegelikult nii, et url 1129 01:03:34,550 --> 01:03:38,020 on nõuetekohaselt määratud NSURL. 1130 01:03:38,020 --> 01:03:41,810 Ja kui on, siis see ignoreerib üle selle, ja seda 1131 01:03:41,810 --> 01:03:46,110 mis võimaldab teil jätkata url olles nõuetekohaselt määratletud. 1132 01:03:46,110 --> 01:03:48,830 Aga kui see on nii, et url ei ole korralikult määratletud, 1133 01:03:48,830 --> 01:03:52,550 kui see tagastatakse veateade või mõne muu ootamatu asi 1134 01:03:52,550 --> 01:03:58,030 tegelikult toimub, see valvur ehitada võimaldab meil siis väljund, mis viga 1135 01:03:58,030 --> 01:04:00,390 ja kohe tagasi. 1136 01:04:00,390 --> 01:04:00,890 Jah? 1137 01:04:00,890 --> 01:04:04,839 >> Sihtrühm: Nii et see on omamoodi ja nagu, kui siis veel? 1138 01:04:04,839 --> 01:04:07,130 DAN ARMENDARIZ: See on selline nagu kui siis muidu, jah, 1139 01:04:07,130 --> 01:04:14,200 ainult et selle url on siis määratletud kõike alla selle. 1140 01:04:14,200 --> 01:04:20,420 Kui see läbib selle valvur, siis tegelikult täidetakse andmed 1141 01:04:20,420 --> 01:04:29,500 ja kasutatavad ülejäänud lähtekoodi oma funktsiooni. 1142 01:04:29,500 --> 01:04:33,790 Nii et ma arvan, et sa lähed hakkame nägema selle valvur samuti. 1143 01:04:33,790 --> 01:04:36,670 Ja olla tähelepanelik, et. 1144 01:04:36,670 --> 01:04:46,270 >> Nii lihtsalt vaadates paar muud asju, see siin on, mida, 1145 01:04:46,270 --> 01:04:53,377 Mis sa arvad, lihtsalt selle põhjal, mida me rääkisime enne? 1146 01:04:53,377 --> 01:04:56,650 >> Sihtrühm: Arvan, et see läheb jooksuks nimekirjas? 1147 01:04:56,650 --> 01:04:59,100 >> DAN ARMENDARIZ: Nii et lähedal. 1148 01:04:59,100 --> 01:05:02,360 See on funktsioon, mida me määratleme. 1149 01:05:02,360 --> 01:05:07,240 Ja meil on sisestanud, et funktsiooni argumendina see funktsioon siin. 1150 01:05:07,240 --> 01:05:09,120 >> Sihtrühm: [kuuldamatu] kui mitte olematu. 1151 01:05:09,120 --> 01:05:11,470 Nii et see on nimekirjas, eks? 1152 01:05:11,470 --> 01:05:15,450 >> DAN ARMENDARIZ: Kui viga ei ole null, nii et on-- nii et ma pean kerida. 1153 01:05:15,450 --> 01:05:18,060 Noh, vaatame, ma ei saa tõesti leidke siin. 1154 01:05:18,060 --> 01:05:23,161 viga on argument, mis on hetkel edasi anonüümseid funktsiooni. 1155 01:05:23,161 --> 01:05:24,410 See on anonüümne funktsiooni. 1156 01:05:24,410 --> 01:05:25,480 Tal ei ole nime. 1157 01:05:25,480 --> 01:05:29,850 Aga me oleme vastu need kolm argumente, andmed, reageerimine ja viga. 1158 01:05:29,850 --> 01:05:33,590 Ja ta läheb tagasi kehtetud, nii ta ei kavatse tagasi midagi. 1159 01:05:33,590 --> 01:05:37,910 Ja see on sisu Selle funktsiooni. 1160 01:05:37,910 --> 01:05:41,961 Ja siis on meil juurdepääs sees, et funktsiooni kõik need väited. 1161 01:05:41,961 --> 01:05:45,650 1162 01:05:45,650 --> 01:05:48,679 >> Nii et see on tuulispask Tour keeles. 1163 01:05:48,679 --> 01:05:50,470 Aga ma loodan seda, loodetavasti te võtate 1164 01:05:50,470 --> 01:05:54,490 pilk mõned õpetused konkreetse iOS arengule kiire, 1165 01:05:54,490 --> 01:05:57,481 eriti kui sa lähed Apple arendaja web page-- 1166 01:05:57,481 --> 01:05:59,980 nad on palju väga hea õpetused, millest võite alustada. 1167 01:05:59,980 --> 01:06:05,010 Aga loodetavasti just seda tunnis rääkimise umbes süntaks on ise 1168 01:06:05,010 --> 01:06:08,760 sa piisavalt, et alustada sellega. 1169 01:06:08,760 --> 01:06:12,950 >> Avaldame kõik see allikas kood seminar kodulehel 1170 01:06:12,950 --> 01:06:17,800 võimalikult kiiresti ja ka slaidid nii et teil on eeskujuks kõigile neile. 1171 01:06:17,800 --> 01:06:20,530 Aga edu sulle oma projekte. 1172 01:06:20,530 --> 01:06:23,640 Ja tänan teid kõiki väga varsti. 1173 01:06:23,640 --> 01:06:26,990 >> [APPLAUSE] 1174 01:06:26,990 --> 01:06:28,026