1 00:00:00,000 --> 00:00:03,332 >> [Zenelejátszási] 2 00:00:03,332 --> 00:00:06,200 3 00:00:06,200 --> 00:00:09,590 >> DAN AMRMENDARIZ: Mindenki, Üdvözöljük a CS50 szeminárium, 4 00:00:09,590 --> 00:00:11,690 iOS App Fejlesztési Swift. 5 00:00:11,690 --> 00:00:15,690 Én vagyok Dan Armendariz, és én vagyok tanító a számítógép-tudomány itt a Harvardon. 6 00:00:15,690 --> 00:00:21,510 >> És a következő órában lesz a forgószél túra annyi cuccot 7 00:00:21,510 --> 00:00:25,160 erről a témáról, mint mi elfér. 8 00:00:25,160 --> 00:00:29,170 Én is hozzászólok összes forráskód hogy látni fogja a mai napon az interneten. 9 00:00:29,170 --> 00:00:31,990 Lehet, hogy nem lesz képes valóban megy át mindent 10 00:00:31,990 --> 00:00:34,810 hogy én vagyok, hogy én vagyok amely megmutatja, ebben az órában. 11 00:00:34,810 --> 00:00:37,580 De legalább remélhetőleg keresztül A hozzászólások a forráskód, 12 00:00:37,580 --> 00:00:40,830 Ön képes lesz arra, hogy megpróbálja kitalálni, mit Pontosan történik azokért a dolgokért, 13 00:00:40,830 --> 00:00:42,950 hogy nem elég eljutni. 14 00:00:42,950 --> 00:00:46,970 >> Összességében, a szerkezet a mai vita lesz a következő. 15 00:00:46,970 --> 00:00:52,820 Kezdjük ki csinál néhány alapvető szintaxis a Swift nyelv, 16 00:00:52,820 --> 00:00:56,290 megy néhány fejlettebb szintaxis a Swift nyelven. 17 00:00:56,290 --> 00:00:59,560 Mert a nyelv valóban modern és 18 00:00:59,560 --> 00:01:02,110 van egy csomó magas szintű jellemzők, amikkel nem 19 00:01:02,110 --> 00:01:06,600 látott C-szerte CS50, vagy még néhány más nyelveken 20 00:01:06,600 --> 00:01:09,310 hogy már megkezdődött használja a CS50, mint a PHP, 21 00:01:09,310 --> 00:01:12,670 így fogom meg kell próbálnunk bevezetésére is néhány téma, hogy 22 00:01:12,670 --> 00:01:18,580 kapcsolódnak a magasabb szintű nyelvek hogy nem lehet látni a mélység CS50, 23 00:01:18,580 --> 00:01:21,380 de látni fogja a későbbi számítástechnika osztályok. 24 00:01:21,380 --> 00:01:25,290 Szóval ez lesz a tömje óra. 25 00:01:25,290 --> 00:01:28,897 És ne habozzon hadd tudom, ha bármilyen kérdése van. 26 00:01:28,897 --> 00:01:30,730 Tehát, ha érdekel ennek során fejlesztés 27 00:01:30,730 --> 00:01:34,442 Swift, vagy tényleg minden iOS app fejlesztés, 28 00:01:34,442 --> 00:01:35,900 van egy pár a követelményeknek. 29 00:01:35,900 --> 00:01:39,940 Először is, meg kell használni Mac, fut a példák 30 00:01:39,940 --> 00:01:43,880 hogy mi lesz használva ma, egy viszonylag új verzióját OS 31 00:01:43,880 --> 00:01:46,580 X. Ebben az esetben az X fut 10.5. 32 00:01:46,580 --> 00:01:48,600 Akkor fut 10.11, ha akarod. 33 00:01:48,600 --> 00:01:52,430 De mindent, hogy meg fogsz lásd bevonja Xcode 7 és újabb, 34 00:01:52,430 --> 00:01:56,271 amely a legújabb verzió A Swift, ami Swift 2.0. 35 00:01:56,271 --> 00:01:58,270 Ez valójában egy nagyon Fontos különbséget. 36 00:01:58,270 --> 00:02:01,510 Sok a szintaxis területén megváltozott elég jelentősen 37 00:02:01,510 --> 00:02:05,890 néhány esetben ettől Swift 1.0, amely tavaly jelent meg, 38 00:02:05,890 --> 00:02:08,514 Swift 2.0, amely most jött ki idén ősszel. 39 00:02:08,514 --> 00:02:09,889 Mi is így fogjuk mutatni Swift 2.0. 40 00:02:09,889 --> 00:02:13,020 Egy csomó olyan dolog, hogy keres online 41 00:02:13,020 --> 00:02:18,040 ha akarsz, hogy további információkat a különböző dolgokat, 42 00:02:18,040 --> 00:02:20,710 érdemes lehet kifejezetten keresni Swift 2 43 00:02:20,710 --> 00:02:24,950 ahelyett, hogy csak a jó öreg Swift, hogy arról, hogy Önnek a szintaxis helyes. 44 00:02:24,950 --> 00:02:26,920 >> Tény, hogy ez általában igaz. 45 00:02:26,920 --> 00:02:31,210 Van egy gyors mennyiségű fejlesztési történik a Swift nyelven 46 00:02:31,210 --> 00:02:35,110 Amióta az Apple kiadta, azt hiszem, mi, ez már egy kicsit több mint egy éve 47 00:02:35,110 --> 00:02:36,370 Most. 48 00:02:36,370 --> 00:02:39,080 És minden megváltozott drámaian abban az időben. 49 00:02:39,080 --> 00:02:42,160 És így nem lehet csalódott ha, ha éppen nézett körül 50 00:02:42,160 --> 00:02:48,310 A téma a Swift, vagy hogyan kell elérni valami segítségével néhány példa kód 51 00:02:48,310 --> 00:02:51,210 vagy valami, hogy nem ténylegesen munkát Swift 2.0. 52 00:02:51,210 --> 00:02:53,790 Győződjön meg arról, mit keres a kifejezetten erre a változat 53 00:02:53,790 --> 00:02:58,690 hogy megpróbálja minimalizálni hatása a különböző változatok és azok a dolgok. 54 00:02:58,690 --> 00:03:02,470 >> Megpróbálom kiemelni csak néhány dolog, amelyek különböznek a régebbi verziók. 55 00:03:02,470 --> 00:03:03,970 De ez valami, hogy néz ki. 56 00:03:03,970 --> 00:03:06,770 Ez valószínűleg lesz az egyik legnagyobb fejfájást 57 00:03:06,770 --> 00:03:11,010 hogy lesz a Swift megtalálása Például kódot, ami a régebbi, akár csak 58 00:03:11,010 --> 00:03:14,050 néhány hónap, akarják használni ez a modern projektet. 59 00:03:14,050 --> 00:03:15,430 És ez egyszerűen nem működik. 60 00:03:15,430 --> 00:03:18,530 Kezdesz fordító hibákat, szintaxis hibák, mindenféle őrült dolgot. 61 00:03:18,530 --> 00:03:21,580 Szóval, csak légy türelmes ezt, és remélhetőleg 62 00:03:21,580 --> 00:03:24,200 Van egy nagyon szép élmény Swift összességében. 63 00:03:24,200 --> 00:03:28,430 >> Most már tényleg join-- és remélem, mi még mindig van ez ebben year-- 64 00:03:28,430 --> 00:03:30,910 CS 50-es Apple app fejlesztőcsapat, amely 65 00:03:30,910 --> 00:03:34,680 lehetővé teszi, hogy telepíteni alkalmazásokat amely létrehozza az iOS eszközök. 66 00:03:34,680 --> 00:03:39,190 Szóval vessünk egy pillantást az alábbi URL-ha érdekli, hogy ezt tegyük. 67 00:03:39,190 --> 00:03:41,450 >> Szóval csak egy pár dolog Swift magát. 68 00:03:41,450 --> 00:03:43,580 Ez egy összeállított nyelvet. 69 00:03:43,580 --> 00:03:45,870 De látni fogja, hogy bizonyos jellemzője, hogy az általunk használt 70 00:03:45,870 --> 00:03:50,650 Ügyeljünk arra, hogy használni is egy kicsit mint egy értelmezhető módon is. 71 00:03:50,650 --> 00:03:56,350 >> Sok a szintaxis kölcsönzött C. Ez alapján és a C nyelven írt 72 00:03:56,350 --> 00:04:00,400 És így majd meglátjuk, hogy van egy csomó elvitelre 73 00:04:00,400 --> 00:04:04,450 a meglévő ismeretek ettől C, hogy tudjuk port Swift. 74 00:04:04,450 --> 00:04:07,290 >> De vannak dolgok, hogy nagyon különbözik a C. 75 00:04:07,290 --> 00:04:08,860 Ez nagyon erősen típusos. 76 00:04:08,860 --> 00:04:10,380 Van automatikus memória kezelése. 77 00:04:10,380 --> 00:04:13,170 Ugye nem kell majd használja malloc vagy ingyenes bárhol. 78 00:04:13,170 --> 00:04:15,110 Úgy tervezték, az általánosság. 79 00:04:15,110 --> 00:04:19,480 Más szóval, akkor azt mindenféle kontextusban, az Apple Watch 80 00:04:19,480 --> 00:04:26,290 iPhone egészen a OS X, és még néhány szerverek, még néhány script. 81 00:04:26,290 --> 00:04:28,400 De majd meglátjuk, hogy a támogatja a script 82 00:04:28,400 --> 00:04:31,360 Nem igazán van még, mint ez más nyelveken. 83 00:04:31,360 --> 00:04:34,930 Tehát valószínűleg fel fog használni ez kizárólag a fejlesztési 84 00:04:34,930 --> 00:04:37,060 a Mac vagy az iPhone. 85 00:04:37,060 --> 00:04:40,150 >> És van egy csomó modern funkciókat. 86 00:04:40,150 --> 00:04:43,380 És sok ilyen dolog dolog, hogy fogjuk próbálni, hogy kezelni tudja a jelenlegi, 87 00:04:43,380 --> 00:04:47,590 hanem a téma, hogy őszintén, tudjuk szentelni egész tanfolyamok. 88 00:04:47,590 --> 00:04:50,140 Tény, hogy a CS 51, amely a felajánlotta a következő félévben, 89 00:04:50,140 --> 00:04:53,990 összpontosít sokat ezekről a témákról hogy az alábbiakban ismertetjük. 90 00:04:53,990 --> 00:04:56,781 Szóval lehet tölteni egy egész szemesztert megértjük ezeket a dolgokat. 91 00:04:56,781 --> 00:04:58,530 De megyünk próbálni hogy rajtuk keresztül 92 00:04:58,530 --> 00:05:00,800 legalább elég, hogy Megértem, mi 93 00:05:00,800 --> 00:05:03,700 folyik, ha megnézed egy Swift programot 94 00:05:03,700 --> 00:05:07,310 és képesnek kell lennie csapkod az utat rajta keresztül a végleges projekt. 95 00:05:07,310 --> 00:05:10,780 >> Most az egyik legjobb módja, hogy tudsz további kiegészítő információkat kaphat ezen a 96 00:05:10,780 --> 00:05:14,700 őszintén szólva csak az Apple előírt dokumentáció Swift. 97 00:05:14,700 --> 00:05:16,930 Van egy csomó API-k hogy rendelkezésre állnak. 98 00:05:16,930 --> 00:05:21,170 És ez egy jó kiindulópont legyen Ön keresni, konkrét dolog, amit 99 00:05:21,170 --> 00:05:23,020 akarok egy API bevonásával iOS. 100 00:05:23,020 --> 00:05:26,350 Ha szeretné használni a kamerát Például, akkor elkezd keres itt, 101 00:05:26,350 --> 00:05:32,540 és azt is használja a Google és a Stack Túlfolyó a szokásos módon. 102 00:05:32,540 --> 00:05:36,670 >> Kapcsolatos kérdéseket a következő mielőtt ugrani? 103 00:05:36,670 --> 00:05:37,880 Minden rendben. 104 00:05:37,880 --> 00:05:38,700 Menjünk tovább. 105 00:05:38,700 --> 00:05:42,620 >> Tehát először, van egy számú példa fájlokat. 106 00:05:42,620 --> 00:05:46,040 És én fogom próbálni, hogy lemond rajtuk keresztül viszonylag gyorsan. 107 00:05:46,040 --> 00:05:49,190 Ez a Hello World fájl Swift. 108 00:05:49,190 --> 00:05:51,050 Ez nagyon egyszerű. 109 00:05:51,050 --> 00:05:54,360 Van út több hozzászólás mint ahány tényleges kódot. 110 00:05:54,360 --> 00:05:57,100 Figyeljük meg a tényleges kód van a legalján on line 14. 111 00:05:57,100 --> 00:05:57,980 Azt mondja, print. 112 00:05:57,980 --> 00:05:59,820 És akkor ez egy függvényhívás. 113 00:05:59,820 --> 00:06:03,010 Mi megy bele a karakterlánc úgynevezett Helló CS50. 114 00:06:03,010 --> 00:06:04,750 Figyeljük meg, hogy nincs pontosvessző. 115 00:06:04,750 --> 00:06:07,010 Figyeljük meg, hogy nincs int main. 116 00:06:07,010 --> 00:06:10,392 Itt nem a cruft, hogy mi volt a C 117 00:06:10,392 --> 00:06:15,020 Amikor mi használ Swift ezen a módon, amely most írt egy szöveges fájlt 118 00:06:15,020 --> 00:06:18,340 és tárolni a számítógépen, majd Tudom, hogy elkészítse és futtatni. 119 00:06:18,340 --> 00:06:20,920 >> Figyeljük meg, hogy itt vagyok, nem használja a CS50 IDE. 120 00:06:20,920 --> 00:06:24,460 Ez azt feltételezi, hogy én vagyok fut, és hogy én vagyok az OS X, 121 00:06:24,460 --> 00:06:27,870 és hogy én Xcode már telepítve Ezen a gépen ahhoz, hogy ez 122 00:06:27,870 --> 00:06:29,080 hogy ténylegesen funkciót. 123 00:06:29,080 --> 00:06:33,349 De ez csak egy normál szöveges fájl hogy tudunk majd össze és szerkesztheti. 124 00:06:33,349 --> 00:06:34,890 Nézzük, hogy ez hogyan is működik. 125 00:06:34,890 --> 00:06:37,430 Mit tegyünk, ha az összeállításhoz? 126 00:06:37,430 --> 00:06:40,450 swiftc 1.swift. 127 00:06:40,450 --> 00:06:42,960 Miután egy-két pillanat, hogy látni fogja, hogy mi most 128 00:06:42,960 --> 00:06:45,360 összeállított ezt figyelembe nevű fájlt 1. 129 00:06:45,360 --> 00:06:51,090 És most már kinyomtatott mi CS50, a Hello World alkalmazása helyett. 130 00:06:51,090 --> 00:06:54,690 >> Figyeljük meg egy másik dolog is, mint valamint az, hogy alapértelmezés szerint, 131 00:06:54,690 --> 00:07:00,090 mi nem kell bevinnie A / N nyomtatni egy új sort. 132 00:07:00,090 --> 00:07:05,315 Alapértelmezésben a nyomtatási funkció Swift kiírja egy új sort az Ön számára. 133 00:07:05,315 --> 00:07:09,284 Akkor át egy opcionális kiegészítő paramétert, hogy mondja el, hogy ne erre. 134 00:07:09,284 --> 00:07:10,950 De a Google több információt, hogy. 135 00:07:10,950 --> 00:07:13,450 Alapértelmezésben fog tenni a nyomtatási sort. 136 00:07:13,450 --> 00:07:16,420 >> Rendben, menjünk tovább majd néhány más dolog. 137 00:07:16,420 --> 00:07:18,620 Tehát hogyan tudjuk valójában megadott változók? 138 00:07:18,620 --> 00:07:21,960 Tehetünk ez a két módszer egyikével. 139 00:07:21,960 --> 00:07:26,122 És az egyik, hogy azt akarom mondani, mintegy első ez let meghatározását. 140 00:07:26,122 --> 00:07:27,830 És ez fontos mert hatékonyan 141 00:07:27,830 --> 00:07:30,240 mit csinálunk a meghatározó állandó. 142 00:07:30,240 --> 00:07:34,010 Fogunk egy változó, vagy inkább állandó nevű nevet, 143 00:07:34,010 --> 00:07:38,200 biztosítani kell, hogy néhány data-- a Ebben az esetben, a húr Dan. 144 00:07:38,200 --> 00:07:40,630 De ezzel a let kulcsszó, mondjuk 145 00:07:40,630 --> 00:07:43,860 hogy ez változó-- vagy újra constant-- úgynevezett 146 00:07:43,860 --> 00:07:46,220 név nem is fog változtatni kell. 147 00:07:46,220 --> 00:07:50,120 Ez lesz megváltoztathatatlan egész időtartamának ez a program 148 00:07:50,120 --> 00:07:53,100 vagy az egész időtartama összefüggésben 149 00:07:53,100 --> 00:07:55,390 hogy a változó elérhető. 150 00:07:55,390 --> 00:08:00,096 >> Ez nagyon fontos, hogy amikor Van néhány adat, amely nem 151 00:08:00,096 --> 00:08:02,970 változni fog a programban, és látni fogod a különböző példák 152 00:08:02,970 --> 00:08:06,790 mikor akarjuk használni hagyja a másikkal szemben szintaxist, 153 00:08:06,790 --> 00:08:11,040 ezért fontos, hogy használd Amikor csak lehetséges, mert ez nem értesíti 154 00:08:11,040 --> 00:08:13,740 A nyelv, hogy Nem fog változni, 155 00:08:13,740 --> 00:08:16,590 és ez ténylegesen elvégzi Sok optimalizáció 156 00:08:16,590 --> 00:08:19,560 hogy javítsa a sebesség és biztonsága érdekében a programban. 157 00:08:19,560 --> 00:08:24,480 És a biztonság alatt azt értem, nem hagyja, ez összeomlás őrült hibákat 158 00:08:24,480 --> 00:08:27,910 hogy mi lehet megszokta, hogy a C. 159 00:08:27,910 --> 00:08:32,460 >> Akkor tudjuk használni karakterlánc interpoláció hogy magukba ez egy húr. 160 00:08:32,460 --> 00:08:35,200 Tehát láthatjuk, ebben a nyomtatási sort, nyomtassa hello, 161 00:08:35,200 --> 00:08:38,950 majd a backslash nyitott parens, majd a neve a változó, 162 00:08:38,950 --> 00:08:41,809 ebben az esetben állandó, zárja be a zárójelet. 163 00:08:41,809 --> 00:08:46,400 Én alapvetően majd üzembe a tartalmát a változó nevű név 164 00:08:46,400 --> 00:08:50,240 belül a húr, majd nyomtatás eredménye van. 165 00:08:50,240 --> 00:08:54,070 >> Van még egy változás, hogy ezt a fájlt ami az, hogy én, az egyik legfontosabb, 166 00:08:54,070 --> 00:08:57,340 valósult meg a kocsma vonal, amely alapvetően csak pontosítja 167 00:08:57,340 --> 00:09:00,180 hogy szeretném használni a Swift értelmező, amely 168 00:09:00,180 --> 00:09:04,190 azt jelenti, hogy már nem kell lefordítani ezt a különleges programot. 169 00:09:04,190 --> 00:09:06,567 Én is csak futtatni, mint a saját forgatókönyvet. 170 00:09:06,567 --> 00:09:09,400 De ez, ebben az esetben, mögött A színfalak összegyűjtötték, és majd 171 00:09:09,400 --> 00:09:10,030 futtat. 172 00:09:10,030 --> 00:09:13,540 Ez csak láthatatlanok számunkra. 173 00:09:13,540 --> 00:09:15,880 >> Rendben, menjünk tovább. 174 00:09:15,880 --> 00:09:19,650 Szóval van egy kis trükk hogy csak előtt történt. 175 00:09:19,650 --> 00:09:23,230 Megmutattam, hogy én meghatározhatják állandó. 176 00:09:23,230 --> 00:09:25,490 És tudtam, hogy bizonyos adatokat kell csinálni. 177 00:09:25,490 --> 00:09:29,240 De ebben az esetben, észre, hogy én nem ténylegesen meghatározza, hogy milyen típusú adatok 178 00:09:29,240 --> 00:09:29,820 ez az. 179 00:09:29,820 --> 00:09:32,780 És ez azért van, mert a fordító, SWIFT 180 00:09:32,780 --> 00:09:36,910 következtetni, hogy milyen típusú adatok alapján csak az adatokra, hogy tettem bele. 181 00:09:36,910 --> 00:09:41,760 Mert tudja, hogy értékeli ezt változó itt, ez az adat jobb 182 00:09:41,760 --> 00:09:43,370 Itt, mert tudja, hogy ez egy húr. 183 00:09:43,370 --> 00:09:48,690 És így ez az állandó nevet tehát lesz egy string is. 184 00:09:48,690 --> 00:09:52,730 >> De mi is lehet explicit a típus, ami 185 00:09:52,730 --> 00:09:55,790 fogunk használni konstans vagy változó 186 00:09:55,790 --> 00:10:01,590 segítségével ezt a szintaxist instead-- hadd nevét kettőspont karakterlánc megegyezik 187 00:10:01,590 --> 00:10:05,530 Dan, ami ebben az esetben azt jelenti vagyunk fogja meghatározni állandó nevű nevét. 188 00:10:05,530 --> 00:10:07,150 Ez lesz a String. 189 00:10:07,150 --> 00:10:10,550 És az értéke lesz Dan. 190 00:10:10,550 --> 00:10:12,550 Most a másik irányba, hogy mi is létrehozhatunk variables-- 191 00:10:12,550 --> 00:10:15,549 és ezek változékony változók, amelyek azt jelenti, hogy mi, sőt, megy 192 00:10:15,549 --> 00:10:19,670 megváltoztatni azok tartalmát valamikor időtartamának összefüggésben 193 00:10:19,670 --> 00:10:23,890 hogy ez a változó defined-- vagyunk Használja a var kulcsszó helyett hadd. 194 00:10:23,890 --> 00:10:27,400 De ismétlem, alapértelmezés szerint, ha nem tudod, hogy meg kell manipulálni az adatokat, 195 00:10:27,400 --> 00:10:30,510 próbálja használni hagyja a teljesítmény növekedéssel. 196 00:10:30,510 --> 00:10:33,740 >> Ebben az esetben, tudok majd adja meg, milyen adatok 197 00:10:33,740 --> 00:10:37,650 hogy elvárjuk, hogy belül a Az új változó nevű címkét. 198 00:10:37,650 --> 00:10:38,800 Ez lesz a húr. 199 00:10:38,800 --> 00:10:43,030 És mi lesz akkor összefűzni két húr együtt, a húr hello, 200 00:10:43,030 --> 00:10:48,070 és a húr által képviselt változó, vagy inkább a konstans neve. 201 00:10:48,070 --> 00:10:50,660 >> Szóval ez jó, mert ez némileg PHP, mint az, hogy mi 202 00:10:50,660 --> 00:10:52,250 nagyon könnyen szövegösszefűzés. 203 00:10:52,250 --> 00:10:56,350 Nem kell, hogy automatikusan Használja bármiféle memória kezelése 204 00:10:56,350 --> 00:11:00,580 méretének növelése és do bármilyen furcsa dolog van. 205 00:11:00,580 --> 00:11:05,040 Ez úgy működik, ahogy azt az elemzők. 206 00:11:05,040 --> 00:11:09,370 >> Rendben, bármilyen kérdése ezzel kapcsolatban? 207 00:11:09,370 --> 00:11:12,520 >> Most a másik oka annak, hogy szükségünk van a képesség, 208 00:11:12,520 --> 00:11:15,490 hogy képes legyen meghatározni, mit típusú adatok változók 209 00:11:15,490 --> 00:11:18,170 azért van, mert néha nem szeretnénk, hogy a változók inicializálása 210 00:11:18,170 --> 00:11:21,080 Néhány adat a pont meghatározása. 211 00:11:21,080 --> 00:11:23,500 Tehát ebben az esetben, mondjuk hogy szeretnék kezdeni megadásával 212 00:11:23,500 --> 00:11:25,040 néhány osztályt egy fokozatú könyvet. 213 00:11:25,040 --> 00:11:27,530 Hát én tudom, hogy az egyik változók, hogy én akarok lenni 214 00:11:27,530 --> 00:11:30,280 lesz egy változékony minőségű. 215 00:11:30,280 --> 00:11:33,010 És azt is tudjuk, hogy mi szeretné, hogy legyen egy egész szám. 216 00:11:33,010 --> 00:11:36,030 De talán még nem Van, hogy a kategória áll rendelkezésre. 217 00:11:36,030 --> 00:11:39,570 >> Ebben Swift, meg kell meghatározzák az adatok típusa 218 00:11:39,570 --> 00:11:44,000 társított egy változó vagy állandó legyen 219 00:11:44,000 --> 00:11:47,840 Mielőtt ténylegesen használni, hogy a változó. 220 00:11:47,840 --> 00:11:51,170 Mivel erősen típusos, meg kell társítani típusú 221 00:11:51,170 --> 00:11:52,890 ezekkel a változókkal. 222 00:11:52,890 --> 00:11:56,120 >> Tehát ebben az esetben, ha már nem megfelelően inicializált az első néhány érték, 223 00:11:56,120 --> 00:12:00,520 akkor azt kell mondanom, hogy mit Swift Elvárom az adatok típusát, hogy legyen. 224 00:12:00,520 --> 00:12:02,650 És ez meg fog maradni Ugyanezen adatok típusa 225 00:12:02,650 --> 00:12:05,780 története során ez a program. 226 00:12:05,780 --> 00:12:10,050 >> Most lehet, hogy a kísértés, amint Én hoztam létre ezt fokozatú változó 227 00:12:10,050 --> 00:12:13,530 és feltéve, hogy az értéke 100, ha most 228 00:12:13,530 --> 00:12:18,540 szeretném kipróbálni, hogy összefűzni A karakterlánc, hogy egész, 229 00:12:18,540 --> 00:12:21,610 Csábító lehet még használni hogy sztring: 230 00:12:21,610 --> 00:12:24,500 mint mi, csak egy pár sort, mielőtt. 231 00:12:24,500 --> 00:12:26,460 De sajnos, ez ténylegesen nem 232 00:12:26,460 --> 00:12:29,270 dolgozni, mert te Lényegében teljesítő 233 00:12:29,270 --> 00:12:32,380 egy művelet két különböző típusú. 234 00:12:32,380 --> 00:12:36,856 >> Most ez nagyon különbözik a többi nyelvek, mint a PHP, amelyek igazán 235 00:12:36,856 --> 00:12:38,480 Loosey goosey azok a fajta típusok. 236 00:12:38,480 --> 00:12:40,030 Olyanok, mint, igen, bármi, engem nem érdekel. 237 00:12:40,030 --> 00:12:42,710 Adj egy típusa, és talán majd a helyes dolgot. 238 00:12:42,710 --> 00:12:46,060 >> Ebben az esetben, Swift a rendkívül szigorú a típusok 239 00:12:46,060 --> 00:12:47,350 hogy van dolga. 240 00:12:47,350 --> 00:12:50,700 Ez összegzése üzemeltető vagy operátor 241 00:12:50,700 --> 00:12:54,400 lényegében egy pár különböző lehetséges opciókat. 242 00:12:54,400 --> 00:12:56,970 Meg tudod csinálni összegzése egész számokkal, vagy 243 00:12:56,970 --> 00:13:00,870 tehetünk szövegösszefűzés, és talán néhány más dolgot is. 244 00:13:00,870 --> 00:13:05,550 De ha ez a vállalkozó nem ismeri mi mindkét oldalán úgy, 245 00:13:05,550 --> 00:13:10,452 vagy inkább a kombináció az említett Két típusú, nem az, ami már várja, 246 00:13:10,452 --> 00:13:11,910 akkor ez lesz a meghibásodást okozhat. 247 00:13:11,910 --> 00:13:16,690 >> Tehát ebben az esetben, mit jelent hogy egy húr, plusz egy egész szám? 248 00:13:16,690 --> 00:13:18,880 Nos összefüggésben ezt, érdemes 249 00:13:18,880 --> 00:13:21,990 hogy nem egy szövegösszefűzés működését. 250 00:13:21,990 --> 00:13:26,420 De természetesen a számítógép Nincsenek hogy a fajta összefüggésben. 251 00:13:26,420 --> 00:13:29,950 És így meg kell, hogy hogy kiegészítő információkat 252 00:13:29,950 --> 00:13:32,390 hogy tudassa, mit az, hogy meg akarjuk csinálni. 253 00:13:32,390 --> 00:13:36,860 >> Más szóval, az a tény, hogy a SWIFT erősen típusos 254 00:13:36,860 --> 00:13:39,520 azt jelenti, hogy nem egy kis kiegészítő munka 255 00:13:39,520 --> 00:13:42,100 hogy ez hogy működik a módja, amit szeretne. 256 00:13:42,100 --> 00:13:43,710 De az eredmény, ez biztonságosabb. 257 00:13:43,710 --> 00:13:46,290 És ha már megteszi véve az ilyen típusú, 258 00:13:46,290 --> 00:13:49,300 dolgok csak őszintén indul hogy a munka elég jól. 259 00:13:49,300 --> 00:13:52,520 >> Tehát ebben az esetben, mi majd lenne végre szövegösszefűzés 260 00:13:52,520 --> 00:13:56,040 által kifejezetten öntés Az egész egy húr 261 00:13:56,040 --> 00:13:58,490 a csomagolás is ebben a tőke S sztring függvény, 262 00:13:58,490 --> 00:14:03,510 majd az szövegösszefűzés üzemeltetőt, hogy módosítsa a kiadónk változó, 263 00:14:03,510 --> 00:14:06,280 majd nyomtassa ki. 264 00:14:06,280 --> 00:14:08,420 >> Eddig jó? 265 00:14:08,420 --> 00:14:12,020 Rendben, menjünk tovább. 266 00:14:12,020 --> 00:14:16,300 >> Most van a különböző adatok típusok, hogy tudjuk használni a Swift. 267 00:14:16,300 --> 00:14:21,620 Ahogy már megszokták, mi is létrehozhatunk egy változékony tömb. 268 00:14:21,620 --> 00:14:26,140 És ez elrendezés csak tartalmaz egyetlen típusát. 269 00:14:26,140 --> 00:14:30,360 >> Tehát ebben az esetben, megyünk létrehozni mutable tömbök egész számok, amelyek 270 00:14:30,360 --> 00:14:34,800 fogjuk hívni a kategóriák, és képesek leszünk tárolni, hogy ebben a szögletes zárójel 271 00:14:34,800 --> 00:14:38,650 formátum ahogy már megszokta hogy a különböző más nyelveken. 272 00:14:38,650 --> 00:14:41,150 De észre, hogy itt vagyunk meghatározó egy-két dolgot. 273 00:14:41,150 --> 00:14:45,350 évfolyamon egy változékony változó-- mi nem használja az let kulcsszó. 274 00:14:45,350 --> 00:14:49,620 Szóval ez azt jelenti, hogy majd módosítani tartalmának ezt a tömböt. 275 00:14:49,620 --> 00:14:53,420 Ez a típus Array Int, és meg tudjuk mondani, hogy 276 00:14:53,420 --> 00:14:56,260 ezek alapján a szögletes zárójelben van. 277 00:14:56,260 --> 00:14:58,930 >> Most az egyik szép dolgokat ez, hogy mi 278 00:14:58,930 --> 00:15:02,310 van, hogy egy csomó további információ 279 00:15:02,310 --> 00:15:07,110 a tömb csak használ Néhány egyszerű dot jelöléssel. 280 00:15:07,110 --> 00:15:10,500 Így például, grades.count nyújt nekünk 281 00:15:10,500 --> 00:15:14,820 a tételek számát, hogy létezik, hogy tömb, ahol tudunk majd elérni, elég 282 00:15:14,820 --> 00:15:19,090 egyszerűen csak használ, hogy pont jelöléssel. 283 00:15:19,090 --> 00:15:21,830 >> Ha azt szeretnénk, hogy adjunk további adatokat ehhez a tömb, 284 00:15:21,830 --> 00:15:27,220 Ön nem tud a PHP stílusban ahol csak kifejezetten meg kell határozni, 285 00:15:27,220 --> 00:15:30,910 egy adott index, néhány érték hogy a beszúrni kívánt. 286 00:15:30,910 --> 00:15:37,210 Ehelyett használja az append módszer a tömb típus 287 00:15:37,210 --> 00:15:40,920 hozzáfűzni, hogy a tétel, 95, ehhez a listához. 288 00:15:40,920 --> 00:15:45,990 >> Tehát most ez a tömb a következő contents-- 100, 0, 90, 85. 289 00:15:45,990 --> 00:15:49,270 És most már csatolt 95, hogy is. 290 00:15:49,270 --> 00:15:51,830 >> Vannak más módon tudunk hozzáfűzni dolgokat. 291 00:15:51,830 --> 00:15:55,030 Ténylegesen használni egy összegzése üzemeltető, 292 00:15:55,030 --> 00:15:59,200 amely kell értelmezni, mint tömb append műveletet. 293 00:15:59,200 --> 00:16:04,680 És akkor majd fűzze a másik tömb, amelynek tartalma 70 és 80, 294 00:16:04,680 --> 00:16:05,560 az, hogy a tömb. 295 00:16:05,560 --> 00:16:08,250 Tehát most már a tartalmát ebben a változó 296 00:16:08,250 --> 00:16:17,220 grades-- 100, 0, 90, 85, 95, 70, és 80. 297 00:16:17,220 --> 00:16:21,850 Ez csak egy szép kis szintaktikai cukor Swift biztosít számunkra. 298 00:16:21,850 --> 00:16:23,850 >> Tehát ha azt akarjuk összefoglalni a évfolyamon, vagy talán mi 299 00:16:23,850 --> 00:16:27,340 szeretne majd ismételget mint minden tétel ebben a hurok. 300 00:16:27,340 --> 00:16:32,150 És mi van, a Swift, az elképzelés, A for ciklus, ahogy az elvárható. 301 00:16:32,150 --> 00:16:35,350 De az is, hogy jelezzük, egy sor némileg eltérő. 302 00:16:35,350 --> 00:16:37,790 Tehát ebben az esetben, hogy Összefoglalva mindent, akkor 303 00:16:37,790 --> 00:16:40,650 fog létrehozni egy ideiglenes nevű változó összeget, hogy a számunkra 304 00:16:40,650 --> 00:16:42,580 hogy fenntartsák ezt a száma. 305 00:16:42,580 --> 00:16:44,430 >> És észre mi az loop építkezés itt. 306 00:16:44,430 --> 00:16:46,820 Mert index 0 .. 00:16:51,480 308 00:16:51,480 --> 00:16:57,390 Szóval ez a konstrukció, 0 .. 00:17:01,860 mondván, hogy fogunk létrehozni egy sor egész számok 0-tól 310 00:17:01,860 --> 00:17:05,750 nagyobb, de grades.count. 311 00:17:05,750 --> 00:17:09,577 Így ez lesz 0, 1, 2, 3, 4, 5, egészen akárhány egy 312 00:17:09,577 --> 00:17:10,410 előtt grades.count. 313 00:17:10,410 --> 00:17:14,160 >> Szóval ez nem más, mint hogy miként jellemzően használt hurkok 314 00:17:14,160 --> 00:17:18,569 ahol van néhány index változó, állítsd 0-val egyenlő az első, 315 00:17:18,569 --> 00:17:25,480 majd integrálni, hogy amíg egy értéke kisebb, mint a gróf tételek 316 00:17:25,480 --> 00:17:27,140 abban a tömbben. 317 00:17:27,140 --> 00:17:29,820 >> Tehát van egy módosítás e, valóban, 318 00:17:29,820 --> 00:17:35,010 amely lehetővé teszi számunkra, hogy nagyon könnyen állítsa különböző tartományokban. 319 00:17:35,010 --> 00:17:40,570 Ha megváltoztatja ezt az intervallumot három pont, 0 ... grade.count, 320 00:17:40,570 --> 00:17:45,120 ez képviseli a tartomány 0 hogy grades.count befogadó, 321 00:17:45,120 --> 00:17:49,260 vagyis ez a szám is majd ebbe a tartományba. 322 00:17:49,260 --> 00:17:52,110 >> De ez nagyon hasznos ezeket pontosan a dolgokat, 323 00:17:52,110 --> 00:17:54,590 amikor már, hogy végre ismétléseket több mint hurok 324 00:17:54,590 --> 00:17:59,630 mert azok indexek nulla indexelt, mint láttuk más nyelveken 325 00:17:59,630 --> 00:18:02,360 is. 326 00:18:02,360 --> 00:18:05,210 Bármilyen kérdésre ez a for ciklus? 327 00:18:05,210 --> 00:18:10,660 >> Szóval van definíciója E mutató változó, 328 00:18:10,660 --> 00:18:14,350 amelynek értéke kezdődik 0, és folytatódik minden iteráció 329 00:18:14,350 --> 00:18:17,950 hogy növekszik 1-ig egy pont amely egyenlő grades.count, 330 00:18:17,950 --> 00:18:20,380 ekkor, a hurok megszakad. 331 00:18:20,380 --> 00:18:23,730 >> Figyeljük meg, hogy a mi húr interpoláció itt, 332 00:18:23,730 --> 00:18:26,910 mi is valójában végezni néhány egyszerű manipulációk azokat az értékeket. 333 00:18:26,910 --> 00:18:31,230 Tehát index plusz 1 ténylegesen végre egy összegzése az értéket 334 00:18:31,230 --> 00:18:34,780 mert index, a Ebben az esetben, egy egész szám. 335 00:18:34,780 --> 00:18:37,810 És ezen a ponton, akkor majd átalakíthatjuk egy string 336 00:18:37,810 --> 00:18:42,230 és interpolált ebbe húr van, és nyomtatható a elvárnánk. . 337 00:18:42,230 --> 00:18:44,520 >> És a szép dolog a tömbök itt 338 00:18:44,520 --> 00:18:50,730 hogy mi is képesek, hogy elbűvölő értékek és a beállítási értékeket 339 00:18:50,730 --> 00:18:54,080 használja a szögletes zárójel jelölő táblázatnak láttunk más nyelveken is. 340 00:18:54,080 --> 00:18:57,130 341 00:18:57,130 --> 00:19:01,030 >> Rendben, tehát innen, most kiszámítja a összege minden kedves fokozat. 342 00:19:01,030 --> 00:19:02,780 Most egyfajta következő logikus lépés lenne, 343 00:19:02,780 --> 00:19:07,580 hogy csinál egy osztás találni ki az átlagos ezeknek az osztályoknak. 344 00:19:07,580 --> 00:19:10,150 De valami fontosat Itt történik, amely 345 00:19:10,150 --> 00:19:15,020 az, hogy ez az összeg talán egy egész szám. 346 00:19:15,020 --> 00:19:18,020 De el kell végezni néhány egyfajta kettős részlege. 347 00:19:18,020 --> 00:19:20,600 És ez lesz rendkívül fontos, amikor 348 00:19:20,600 --> 00:19:24,140 azt akarjuk, hogy végre ezt a műveletet, mert amit mondanak 349 00:19:24,140 --> 00:19:28,430 az, hogy mi kell, hogy ténylegesen végre részlege két páros. 350 00:19:28,430 --> 00:19:31,370 És újra, mert Swift nagyon erősen típusos, 351 00:19:31,370 --> 00:19:36,760 kifejezetten meg kell állítania az összes tételek páros, mielőtt ténylegesen 352 00:19:36,760 --> 00:19:38,300 a művelet elvégzésére. 353 00:19:38,300 --> 00:19:40,550 >> Tehát ahhoz, hogy számunkra, hogy Végezze dupla részlege, 354 00:19:40,550 --> 00:19:43,730 ez nem elegendő csupán egy Ezen elemek is kettős. 355 00:19:43,730 --> 00:19:46,400 Mindkettő kell, hogy a kétágyas annak érdekében, hogy gyors 356 00:19:46,400 --> 00:19:50,860 hogy biztos, hogy ez a az, amit akarok. 357 00:19:50,860 --> 00:19:54,360 Így lesz majd kifejezetten typecast az összeg, amit már fentebb kiszámított 358 00:19:54,360 --> 00:19:58,970 és a gróf a fokozatok a páros, és Ezután a művelet elvégzésére és tárolja 359 00:19:58,970 --> 00:20:02,390 hogy ebbe az új változó, vagy inkább Az új állandó nevű Átlagosan 360 00:20:02,390 --> 00:20:06,810 amely már milyen, tudod képzelni? 361 00:20:06,810 --> 00:20:07,587 Kétágyas, igen. 362 00:20:07,587 --> 00:20:09,420 Tehát ebben az esetben, mi Nem is meg kell adnunk 363 00:20:09,420 --> 00:20:13,450 mert lehet következtetni a működése milyen típusú adatot átlagos 364 00:20:13,450 --> 00:20:14,730 lesz. 365 00:20:14,730 --> 00:20:19,025 És Swift általában elég jó arról szól, hogy képes következtetni a típusok. 366 00:20:19,025 --> 00:20:22,116 367 00:20:22,116 --> 00:20:24,200 >> Szeretné látni ezt futni, vagy tudok lépni? 368 00:20:24,200 --> 00:20:25,640 Azt akarom, hogy folytassam. 369 00:20:25,640 --> 00:20:28,130 Bármilyen kérdésre sem ezt? 370 00:20:28,130 --> 00:20:28,630 Nagy. 371 00:20:28,630 --> 00:20:31,160 372 00:20:31,160 --> 00:20:35,010 >> Most fogunk kezdeni, hogy a A jó stuff-- meghatározó funkciók, 373 00:20:35,010 --> 00:20:39,090 és egy pár más típusú, amelyek egyedi Swift arra, hogy ne 374 00:20:39,090 --> 00:20:41,620 látott más nyelveken eddig a pontig, 375 00:20:41,620 --> 00:20:46,290 de ezek jelen vannak más nyelveken, hogy lehet találni a későbbiekben. 376 00:20:46,290 --> 00:20:48,210 Tehát először, ha azt szeretné, meghatározni egy függvény, 377 00:20:48,210 --> 00:20:52,170 határozná meg a funky szó funkciót, majd a függvény neve, 378 00:20:52,170 --> 00:20:56,710 majd zárójelben, érvek kívánt ezt a funkciót, hogy elfogadja. 379 00:20:56,710 --> 00:21:00,280 Az érveket is specify-- generally-- 380 00:21:00,280 --> 00:21:05,010 kell határoznia azt is, hogy milyen típusú adatok azok, hacsak nem lehet következtetni. 381 00:21:05,010 --> 00:21:07,500 És majd meglátjuk, hogy a kis kivétellel csak egy kicsit. 382 00:21:07,500 --> 00:21:09,920 >> Tehát ebben az esetben van egy nevezett funkció printGradeCount. 383 00:21:09,920 --> 00:21:12,840 Megyünk, hogy elfogadja a változó-- vagy inkább ebben az esetben, 384 00:21:12,840 --> 00:21:14,450 Egy constant-- nevű Gradebook. 385 00:21:14,450 --> 00:21:18,517 És ez lesz a írja tömb egész számokat. 386 00:21:18,517 --> 00:21:20,600 Most van valami ez nagyon fontos itt 387 00:21:20,600 --> 00:21:21,849 hogy én akarom, hogy megértsd. 388 00:21:21,849 --> 00:21:27,560 Azaz, hogy alapértelmezés szerint ezek az érvek amelyek bemenetek e funkcióval 389 00:21:27,560 --> 00:21:34,380 meghatározott implicit let kulcsszó, ami azt jelenti, hogy nem tudok módosítani a 390 00:21:34,380 --> 00:21:39,850 Gradebook változó itt. 391 00:21:39,850 --> 00:21:43,360 És ez a fajta van értelme, mert te halad adatokat. 392 00:21:43,360 --> 00:21:45,860 És akkor talán nem akarod meg kell változtatni alól Önnek. 393 00:21:45,860 --> 00:21:50,800 Lehetőség van kifejezetten említi hogy ez egy változó által üzembe 394 00:21:50,800 --> 00:21:52,070 var kulcsszó itt. 395 00:21:52,070 --> 00:21:56,832 De ez egy fontos dolog, amire, hogy már Észrevettem ember volna a múltban 396 00:21:56,832 --> 00:21:59,790 az, hogy azt feltételezték, hogy ez lesz hogy egy változó, amikor valójában, ez 397 00:21:59,790 --> 00:22:02,640 egy konstans. 398 00:22:02,640 --> 00:22:07,340 >> Rendben, akkor itt, ebben az esetben, nem vagyunk mindenféle külön visszatérési típus. 399 00:22:07,340 --> 00:22:09,460 Megmutatjuk, hogyan kell csinálni hogy csak egy pillanatra. 400 00:22:09,460 --> 00:22:12,340 De észre, hogy itt van csak egy egyszerű, ha a feltétel. 401 00:22:12,340 --> 00:22:14,560 Ha a Gradebook van üres, amely ebben az esetben 402 00:22:14,560 --> 00:22:19,310 csak tulajdonát ezt az egész tömb, akkor nyomtassa ki valamit. 403 00:22:19,310 --> 00:22:23,100 Különben valami mást. 404 00:22:23,100 --> 00:22:25,000 >> Elég egyértelmű, amennyiben azt hiszem. 405 00:22:25,000 --> 00:22:27,960 De megállítani, ha bármilyen kérdése van. 406 00:22:27,960 --> 00:22:33,350 >> Most ez a funkció, átlagos, szintén úgy néhány érv, vagy inkább egy érv, 407 00:22:33,350 --> 00:22:37,507 amely a Gradebook, és ezúttal fog visszatérni kettős jellege. 408 00:22:37,507 --> 00:22:39,340 Mert számítási az átlagos és ez 409 00:22:39,340 --> 00:22:45,010 fog ténylegesen visszatér, hogy számított átlagos a hívó vonal. 410 00:22:45,010 --> 00:22:50,070 >> Ebben az esetben azt adja meg az visszatérési típus után egy nyíl. 411 00:22:50,070 --> 00:22:53,260 És ez talán úgy érzi, Elég furcsa az elején. 412 00:22:53,260 --> 00:22:55,610 Már megszokta, a beállítás a visszatérő 413 00:22:55,610 --> 00:22:57,720 írja előtt a funkció neve. 414 00:22:57,720 --> 00:23:00,310 De ha úgy gondolja, ennek tekintve a matematika, 415 00:23:00,310 --> 00:23:03,320 mint akkor, ha a matematika amelyek meghatározzák a funkciót, 416 00:23:03,320 --> 00:23:06,807 Van egy funkció bizonyos bemenetek, és az általa előállított egy kimenetet. 417 00:23:06,807 --> 00:23:08,890 És pontosan ez az, amit ez állítólag utánozza. 418 00:23:08,890 --> 00:23:12,460 És van egy pár más nyelveken amelyek hasonló szintaxist is, 419 00:23:12,460 --> 00:23:15,674 de valószínűleg egyik sem láttad a CS50. 420 00:23:15,674 --> 00:23:17,090 De még mindig nem szabad összekeverni azt. 421 00:23:17,090 --> 00:23:21,650 A nyíl azt jelenti, hogy mi folyik vissza kell ebben az ügyben. 422 00:23:21,650 --> 00:23:23,650 OK, így hogyan fogunk kiszámításához ez az átlag? 423 00:23:23,650 --> 00:23:25,649 Nos, ha a Gradebook üres, majd jól vagyunk 424 00:23:25,649 --> 00:23:30,731 fog visszatérni 0, ami talán ésszerű módon kezelni ezt. 425 00:23:30,731 --> 00:23:32,980 Nem tudom, térjünk vissza, hogy egy kicsit. 426 00:23:32,980 --> 00:23:34,688 Ez valójában nem valószínű ésszerű módon 427 00:23:34,688 --> 00:23:38,310 hogy kiszámolja az átlagos, ha van egy üres Gradebook. 428 00:23:38,310 --> 00:23:41,260 >> Akkor most végre mi összegzése. 429 00:23:41,260 --> 00:23:43,900 Figyeljük meg, hogy itt valójában Van egy másik változata 430 00:23:43,900 --> 00:23:49,190 A hurok, amely lehetővé teszi számunkra, hogy ismételget mint minden egyes darab egy tömbben 431 00:23:49,190 --> 00:23:53,630 és helyezze minden eleme a saját változó. 432 00:23:53,630 --> 00:23:56,200 Megadásával az évfolyamon Gradebook, amit mondanak 433 00:23:56,200 --> 00:24:00,560 az, hogy megyünk implicit hozzon létre egy új állandó úgynevezett 434 00:24:00,560 --> 00:24:05,180 évfolyam hogy fogja képviselni Minden egyedi tárgyat a Gradebook 435 00:24:05,180 --> 00:24:06,769 minden alkalommal, hogy a for ciklus. 436 00:24:06,769 --> 00:24:08,560 Tehát az első alkalom, hogy ez fut, jegye 437 00:24:08,560 --> 00:24:09,800 az első elem a Gradebook. 438 00:24:09,800 --> 00:24:12,300 A második alkalommal ez lesz a második elem, így tovább és így tovább 439 00:24:12,300 --> 00:24:15,970 amíg Gradebook van kifulladt elemek. 440 00:24:15,970 --> 00:24:20,390 Akkor leszünk képesek összefoglalni, hogy évfolyam a mi összegzése változó 441 00:24:20,390 --> 00:24:22,570 és visszatér a mi átlagos mint láttuk korábban. 442 00:24:22,570 --> 00:24:25,670 443 00:24:25,670 --> 00:24:26,950 OK, bármilyen kérdése? 444 00:24:26,950 --> 00:24:27,699 Igen? 445 00:24:27,699 --> 00:24:28,990 Közönség: Két kérdésem van. 446 00:24:28,990 --> 00:24:33,586 Számú, elméletileg lehet futtatja egész ebben egyet? 447 00:24:33,586 --> 00:24:35,604 Nem kell, hogy kettős, igaz? 448 00:24:35,604 --> 00:24:37,520 DAN AMRMENDARIZ: Tud ismételje meg ezt a kérdést? 449 00:24:37,520 --> 00:24:39,587 Közönség: Tehetek egész, mint az átlag? 450 00:24:39,587 --> 00:24:41,670 DAN AMRMENDARIZ: Tud nem egész, mint egy átlagos? 451 00:24:41,670 --> 00:24:45,015 Szóval Ha egész Átlagosan helyett egy dupla? 452 00:24:45,015 --> 00:24:48,204 >> Közönség: Return-- Önnek van, hogy most az alábbiakban. 453 00:24:48,204 --> 00:24:49,870 DAN AMRMENDARIZ: Itt vagyok, visszatér 0.0? 454 00:24:49,870 --> 00:24:51,790 Közönség: Igen, csak vissza 0. 455 00:24:51,790 --> 00:24:56,590 Így lesz ez sem 80 vagy 85, de nem 85,2. 456 00:24:56,590 --> 00:24:59,465 >> DAN AMRMENDARIZ: Tehát ebben az esetben, így van egy pár különböző módon 457 00:24:59,465 --> 00:25:00,090 válaszolni. 458 00:25:00,090 --> 00:25:02,760 Hadd válaszoljak őket sorrendben. 459 00:25:02,760 --> 00:25:06,740 Szóval ha csak, hogy ez a visszatérés 0, egy 0 egész szám értékét. 460 00:25:06,740 --> 00:25:09,730 És így fog okozni típusú hiba ebben az esetben 461 00:25:09,730 --> 00:25:13,210 mert vár egy dupla de aztán visszatért egész. 462 00:25:13,210 --> 00:25:16,770 Ha azt akarom, hogy visszatérjen egész, én is. 463 00:25:16,770 --> 00:25:20,450 Azt lehet állítani a visszatérési típus int, return 0 itt, 464 00:25:20,450 --> 00:25:22,047 és nem hajt végre kettős részlege. 465 00:25:22,047 --> 00:25:23,880 De akkor mi lenne Ennek egész osztás. 466 00:25:23,880 --> 00:25:27,080 És így aztán nem kap a Átlagban, hogy mi lenne esetleg várni. 467 00:25:27,080 --> 00:25:29,210 De igen tudjuk módosítani A típus az említett módon. 468 00:25:29,210 --> 00:25:32,598 >> Közönség: És másodszor, akkor van egy dupla tetején. 469 00:25:32,598 --> 00:25:35,502 De odalent, ha nem tér vissza Kétágyas, 470 00:25:35,502 --> 00:25:38,280 ez már automatikusan visszatérő Dupla formátumban. 471 00:25:38,280 --> 00:25:42,278 Miért is kell definiálni A nyíl a tetején egy dupla? 472 00:25:42,278 --> 00:25:45,010 >> DAN AMRMENDARIZ: Tehát Abban az esetben, ez a rész 473 00:25:45,010 --> 00:25:50,580 A the-- így ismételje meg a kérdést, mert ez implicit a visszatérő 474 00:25:50,580 --> 00:25:56,030 típusok itt, milyen ez valójában van, mi kell explicit Swift 475 00:25:56,030 --> 00:25:59,970 mit akarunk visszatérni ki ezt a funkciót 476 00:25:59,970 --> 00:26:02,690 úgy, hogy amikor elvégzi írja ellenőrzésére, akkor győződjön meg róla, 477 00:26:02,690 --> 00:26:05,850 hogy amit valóban írt lent ténylegesen megfelel-e. 478 00:26:05,850 --> 00:26:10,225 Tehát ez a fajta, mint egy csekket magaddal ilyen helyzetben. 479 00:26:10,225 --> 00:26:11,050 De are-- 480 00:26:11,050 --> 00:26:12,560 >> Közönség: [hallható] nyíl? 481 00:26:12,560 --> 00:26:19,490 >> DAN AMRMENDARIZ: Vannak esetek, amikor tudjuk meg, hogy mi lehet implicit 482 00:26:19,490 --> 00:26:21,550 állítsa a visszatérési típus. 483 00:26:21,550 --> 00:26:23,940 De ebben az esetben, én nem úgy gondolja, hogy működni fog. 484 00:26:23,940 --> 00:26:26,190 Van néhány más szintaxist hogy később látni fogjuk. 485 00:26:26,190 --> 00:26:30,320 486 00:26:30,320 --> 00:26:35,280 >> Rendben, így ez a forrás kód egy kicsit más 487 00:26:35,280 --> 00:26:41,839 mert ez értelmezi érvek A funkció, amit hívsz. 488 00:26:41,839 --> 00:26:44,130 Hadd mutassam meg, hogyan működik mielőtt ténylegesen lépni 489 00:26:44,130 --> 00:26:48,050 hogy néhány érdekes dolgot hogy történik Swift. 490 00:26:48,050 --> 00:26:51,870 >> Tehát ebben az esetben, ha én csak futtatni ezt kódot, észreveheti, hogy mit is csinál 491 00:26:51,870 --> 00:26:54,900 is-- közben, ez a fajta ad nekem egy furcsa hibát. 492 00:26:54,900 --> 00:26:59,730 Azt kell, hogy adja át egy pár egészek, mint egy parancssori argumentum. 493 00:26:59,730 --> 00:27:06,220 Tehát lássuk, 150 és 80, és nyomd meg az Entert hogy megtudja, milyen is valójában csinál. 494 00:27:06,220 --> 00:27:09,890 Ez elfogadó minden egyes ezek az értékek egész számok. 495 00:27:09,890 --> 00:27:12,040 Ez bevitelére őket egy Gradebook. 496 00:27:12,040 --> 00:27:14,470 És akkor teljesít, hogy az átlagszámítás 497 00:27:14,470 --> 00:27:16,650 és a kimenetre, hogy ahogy várnánk. 498 00:27:16,650 --> 00:27:19,950 >> De nyilván van valami megy ezzel elutasította valamit 499 00:27:19,950 --> 00:27:23,300 valami olyan egész szám. 500 00:27:23,300 --> 00:27:27,300 Amint lehet előhívni, amikor mi voltunk foglalkozó parancssori paramétereket 501 00:27:27,300 --> 00:27:32,640 C és más nyelveken, a legelső 0-edik elem, hogy a parancssori argumentum 502 00:27:32,640 --> 00:27:35,774 listán a neve a parancsot hogy mi is végeztek. 503 00:27:35,774 --> 00:27:38,690 Tehát ebben az esetben, én csak hurok az egész parancssori paramétereket. 504 00:27:38,690 --> 00:27:41,650 De én nem csinálok semmiféle képzelet ellenőrizze, hogy átugorják, hogy első. 505 00:27:41,650 --> 00:27:45,920 Én csak nyíltan vagy burkoltan vagyok ellenőrzésére, amely az ilyen típusú 506 00:27:45,920 --> 00:27:49,900 egészek mielőtt valóban Ezen számítás végrehajtására. 507 00:27:49,900 --> 00:27:52,420 >> És ez alapvetően mi történik itt. 508 00:27:52,420 --> 00:27:55,860 Minden érv A folyamat érveit, 509 00:27:55,860 --> 00:27:59,210 Megyek végezni néhány ellenőrzést. 510 00:27:59,210 --> 00:28:01,970 És ebben az esetben, megyek hogy megpróbálja első megtért 511 00:28:01,970 --> 00:28:07,620 Ez az érv egy egész által hajt végre közvetlen betűöntő, 512 00:28:07,620 --> 00:28:12,310 mert, a bemenet, egy string és valójában nem egy egész szám. 513 00:28:12,310 --> 00:28:18,140 >> De ez a fajta furcsa szintaxist, Ha hagyja, hogy beosztásnyi Int (érv). 514 00:28:18,140 --> 00:28:21,120 Mi is történik Itt rendkívül 515 00:28:21,120 --> 00:28:24,390 Fontos, hogy a használó Swift. 516 00:28:24,390 --> 00:28:27,610 Ez a mi úgynevezett opcionális típusú. 517 00:28:27,610 --> 00:28:34,790 >> Szóval ezt a funkciót, Int (argumentum), vissza nem csak egész szám azonban visszatér 518 00:28:34,790 --> 00:28:37,470 az úgynevezett opcionális egész. 519 00:28:37,470 --> 00:28:41,200 És így ez a fajta típusú tetején egy típus. 520 00:28:41,200 --> 00:28:45,900 Akkor valami elképzelni, mint ez visszatérő, mint egy csomagot. 521 00:28:45,900 --> 00:28:47,750 És amikor megnyitja hogy csomagot, vagy 522 00:28:47,750 --> 00:28:53,930 van egy egész, ami annak az eredménye, vagy ez egyáltalán semmi nem volt egyáltalán. 523 00:28:53,930 --> 00:28:58,140 És ez hasznos, mint egy hibaellenőrzés mechanizmus, mert ebben az esetben 524 00:28:58,140 --> 00:29:02,080 találunk ki, ez volt típusú átalakítás sikeres? 525 00:29:02,080 --> 00:29:05,810 Ha ez volt, akkor valójában megy, hogy egy egész szám belsejében. 526 00:29:05,810 --> 00:29:08,750 Egyébként ez megy, hogy néhány értéke, hogy fogjuk hívni nulla, ami 527 00:29:08,750 --> 00:29:10,920 reprezentatív nincs egész egyáltalán. 528 00:29:10,920 --> 00:29:13,270 Ez tényleg képviselője sem. 529 00:29:13,270 --> 00:29:18,130 >> És így ez ha az építési lehetővé teszi számunkra, hogy bontsa fel azt a csomagot, 530 00:29:18,130 --> 00:29:19,850 hogy nem kötelező erejű. 531 00:29:19,850 --> 00:29:25,560 És ha képesek vagyunk kicsomagolni, hogy csomagolására és talál egy egész szám belsejében, 532 00:29:25,560 --> 00:29:27,720 akkor azt mondjuk itt az, hogy mi lesz majd 533 00:29:27,720 --> 00:29:33,090 lehetővé teszik, hogy az értéket kell beállítani a ez az állandó nevezett fokozat. 534 00:29:33,090 --> 00:29:36,590 És ez a része az if, A felső része az if 535 00:29:36,590 --> 00:29:40,390 fog futni, mert ez Csomagolja sikeres volt. 536 00:29:40,390 --> 00:29:43,290 >> Ha ez csak azért történik, hogy hiba volt talán 537 00:29:43,290 --> 00:29:47,040 ebben az explicit típus-átalakítás egy húr egy egész, talán 538 00:29:47,040 --> 00:29:49,160 ez az érték az ABC például. 539 00:29:49,160 --> 00:29:52,120 És ez tényleg nem megy átalakítani, hogy egy egész szám. 540 00:29:52,120 --> 00:29:55,520 Aztán visszatér nulla, ami nem egész szám. 541 00:29:55,520 --> 00:29:57,570 És ez a kijelentés is, ha majd sikerül. 542 00:29:57,570 --> 00:30:01,930 évfolyam nem fog létezni, mert nincs egész tartalmat. 543 00:30:01,930 --> 00:30:06,391 És akkor megy ez mást blokk helyett. 544 00:30:06,391 --> 00:30:06,890 Igen? 545 00:30:06,890 --> 00:30:09,652 >> Közönség: Nil N-I-L? 546 00:30:09,652 --> 00:30:11,110 DAN AMRMENDARIZ: nulla N-I-L, igen. 547 00:30:11,110 --> 00:30:14,970 548 00:30:14,970 --> 00:30:20,310 >> Tehát ez talán az egyik legnehezebb dolog a Swift, 549 00:30:20,310 --> 00:30:23,690 különösen akkor, ha te vagy a A gyomok egy iOS app 550 00:30:23,690 --> 00:30:27,442 és te tényleg próbál hogy némi fejlődés is. 551 00:30:27,442 --> 00:30:29,400 Ez lesz kiabált rád mintegy opcionális. 552 00:30:29,400 --> 00:30:33,050 Meg fog kérni, hogy kérdőjelek és felkiáltójelek. 553 00:30:33,050 --> 00:30:37,100 De ha egyszer a out-- ha szenteljen egy kis időt, hogy kitaláljuk, 554 00:30:37,100 --> 00:30:41,990 mi folyik opcionális típusú, akkor mentse magát sok fejfájást 555 00:30:41,990 --> 00:30:46,040 ahogy próbál írj egy app Swift. 556 00:30:46,040 --> 00:30:47,660 >> Ez valójában egy nagyon erőteljes funkció. 557 00:30:47,660 --> 00:30:49,826 És akkor csak meg kell Szavamat adom, hogy most. 558 00:30:49,826 --> 00:30:52,620 De majd meglátjuk ez a konstrukció és mások tetszik 559 00:30:52,620 --> 00:30:56,740 egyes, a másik forráskódot, hogy mi megmutatjuk, mindössze egy kicsit. 560 00:30:56,740 --> 00:31:00,440 >> Vannak-e a kezdeti kérdéseket itt? 561 00:31:00,440 --> 00:31:03,790 562 00:31:03,790 --> 00:31:08,690 Tehát a fontos az, hogy egy elvihető opcionális típusú egyfajta metatype. 563 00:31:08,690 --> 00:31:12,500 Ez akár egy értéket, és ha igen, akkor 564 00:31:12,500 --> 00:31:18,110 talán van, hogy kapcsolódó értéket vele, vagy nincs érték nélkül, 565 00:31:18,110 --> 00:31:19,620 és ez által képviselt nulla. 566 00:31:19,620 --> 00:31:24,210 567 00:31:24,210 --> 00:31:28,870 A többi ezt talán ahogy az elvárható. 568 00:31:28,870 --> 00:31:32,900 >> Úgyhogy futtatják fel a nehézség ismét. 569 00:31:32,900 --> 00:31:37,070 És ezúttal, vessünk egy pillantást néhány más adattípusok, hogy valóban léteznek. 570 00:31:37,070 --> 00:31:41,290 Az egyik a szótárak, amely nagyon hasonlít a Python szótárak. 571 00:31:41,290 --> 00:31:48,270 Ez némileg hasonlít a hash tábla C. Ez lényegében egy feltérképezése kulcsok 572 00:31:48,270 --> 00:31:49,820 ahol a gombok lehet szálakat. 573 00:31:49,820 --> 00:31:52,670 És ha megnézed azokat a kulcsokat, azok a gombok lesz értéke. 574 00:31:52,670 --> 00:31:56,020 Tehát nem elég egy tömbben, hanem ahelyett, szorosabb kapcsolatba 575 00:31:56,020 --> 00:31:58,810 hogy egy hash-térképet, vagy egy hash tábla. 576 00:31:58,810 --> 00:32:02,420 >> Lássuk, hogyan kellene dolgozni, mielőtt ténylegesen 577 00:32:02,420 --> 00:32:05,210 bemegy a forráskódot is. 578 00:32:05,210 --> 00:32:07,680 Ha én csak futtatni ezt, semmi különös nem történik. 579 00:32:07,680 --> 00:32:12,430 Azt mondja nekem, hogy várok néhány paraméter a következő típusú. 580 00:32:12,430 --> 00:32:16,050 Így fogok nyújtani, hogy ez valami probléma beállított nevek, 581 00:32:16,050 --> 00:32:18,490 így pset0, talán van 100. 582 00:32:18,490 --> 00:32:20,790 És pset1, kaptam egy 5. 583 00:32:20,790 --> 00:32:24,630 És akkor a vizsgán, én tette igazán jól, és van 30. 584 00:32:24,630 --> 00:32:27,180 És hoppá, elütöttem egy helyet itt. 585 00:32:27,180 --> 00:32:30,940 >> Mikor nyomja le az Entert, akkor láthatjuk, teljesít néhány számítást. 586 00:32:30,940 --> 00:32:33,740 Azt mondja Gradebook három évfolyamon, pset1, pset0, vizsga. 587 00:32:33,740 --> 00:32:36,120 És a Gradebook van Az egyedi átlag. 588 00:32:36,120 --> 00:32:38,370 Tehát újra, dolgozunk ezzel Gradebook ötlet, 589 00:32:38,370 --> 00:32:44,650 de megyünk tovább iterációjával összetettsége a funkciót. 590 00:32:44,650 --> 00:32:47,650 >> Tehát ha kialakul, mi csak létre fog hozni egy olyan funkciót 591 00:32:47,650 --> 00:32:49,390 felelős nyomtatás használatát. 592 00:32:49,390 --> 00:32:51,920 És itt van ez a kilépési funkció, amely csak 593 00:32:51,920 --> 00:32:53,710 erőszakkal kilép az alkalmazásból. 594 00:32:53,710 --> 00:32:56,530 Ez nem olyan dolog, fogja használni iOS app. 595 00:32:56,530 --> 00:32:59,750 Ez csak, ebben az esetben, egy parancssori argumentum. 596 00:32:59,750 --> 00:33:01,990 Tovább fogjuk kezdeni felé halad Xcode. 597 00:33:01,990 --> 00:33:07,760 De ez kifejezetten egy parancs vonal stílusa program Swift. 598 00:33:07,760 --> 00:33:11,490 >> Vessünk egy pillantást néhány Az érdekes dolog van. 599 00:33:11,490 --> 00:33:15,150 Lássuk, csak egy pár érdekes dolgokat is beszélve talán 600 00:33:15,150 --> 00:33:19,930 az, hogy az én funkciója nyomtatás az évfolyamok száma, 601 00:33:19,930 --> 00:33:26,090 talán felidézni, hogy volt, hogy a listát A items-- pset1, pset0, és vizsga. 602 00:33:26,090 --> 00:33:29,130 Tudod valójában gyorsan és könnyen ezt 603 00:33:29,130 --> 00:33:34,490 azáltal, hogy a Gradebook, amely egy Szótár amely kulcsokat és értékeket. 604 00:33:34,490 --> 00:33:38,730 Keresse meg az összes kulcs segítségével A dot kulcsok módszer van, 605 00:33:38,730 --> 00:33:43,180 majd ezt joinWithSeparator, ami majd elviszi az összes funkció 606 00:33:43,180 --> 00:33:48,590 hogy mi már beírt, pset1-- vagy Sajnálom, pset0, pset1, és exam-- 607 00:33:48,590 --> 00:33:53,030 és összefűzni őket egy vessző és szóköz 608 00:33:53,030 --> 00:33:55,400 hogy hozzon létre egy hosszú sora. 609 00:33:55,400 --> 00:34:00,190 Ez csatlakozzon művelet csak tüneményes hasznos a különböző összefüggésekben. 610 00:34:00,190 --> 00:34:03,450 És ez így van ez joinWithSeparator. 611 00:34:03,450 --> 00:34:06,939 >> És ez az egyik dolog, ami változott Swift 1 Swift 2. 612 00:34:06,939 --> 00:34:08,730 Ott szokott lenni Python style-- ha 613 00:34:08,730 --> 00:34:13,219 ismerik Python-- Python stílus csatlakozni módszer húrok. 614 00:34:13,219 --> 00:34:15,699 De ez már nem áll Az eset Swift 2. 615 00:34:15,699 --> 00:34:19,400 Szeretné használni ezt, ha akarod összefűzni egy sor dolgot 616 00:34:19,400 --> 00:34:23,380 együtt egy string. 617 00:34:23,380 --> 00:34:27,889 >> Így talán majd mi tárgyalása előtt átlagosan, 618 00:34:27,889 --> 00:34:32,659 ez teszi egy kicsit több értelme számunkra, hogy állítsa az átlagos funkció 619 00:34:32,659 --> 00:34:36,610 hogy adott esetben kettős inkább mint egy explicit kettős. 620 00:34:36,610 --> 00:34:39,239 Mert mi volt, hogy szokatlan állapot, amelyben, 621 00:34:39,239 --> 00:34:41,550 mi van, ha tényleg Gradebook nincs belüli értékeket is? 622 00:34:41,550 --> 00:34:44,280 Mit kell az átlagos hozam? 623 00:34:44,280 --> 00:34:46,350 >> Nos, talán a C Önnek volna valamit 624 00:34:46,350 --> 00:34:50,040 mint amennyiben egy őrszem érték, mint 0.0, vagy esetleg egy negatív szám, 625 00:34:50,040 --> 00:34:53,690 vagy valami, csak ami a tényt, hogy volt néhány hiba történt 626 00:34:53,690 --> 00:34:57,910 és akkor talán valójában nem is képes kiszámolni, hogy az átlagos. 627 00:34:57,910 --> 00:35:05,590 Nos a szépség megadásával opcionális típusú lenne erre. 628 00:35:05,590 --> 00:35:09,540 És én most azt mondja, ezeket a szavakat, de ez valójában nem használja OPCIÓK. 629 00:35:09,540 --> 00:35:12,970 De majd meglátjuk, hogy csak perc, ahol tudunk állítani átlagos 630 00:35:12,970 --> 00:35:17,230 hogy egy opcionális adatok típusát, hogy ha valóban visszatér egyes adatokat, akkor 631 00:35:17,230 --> 00:35:18,470 térjünk vissza az adatokat. 632 00:35:18,470 --> 00:35:20,570 Ellenkező esetben vissza fogunk térni nulla, mondván, hogy ez 633 00:35:20,570 --> 00:35:22,200 nincs értelmes számítás. 634 00:35:22,200 --> 00:35:25,650 635 00:35:25,650 --> 00:35:28,570 >> Térjünk át valami másra. 636 00:35:28,570 --> 00:35:35,910 Tehát itt, mi már néztem Mindezen példák a parancssorban. 637 00:35:35,910 --> 00:35:39,470 De tényleg, mit fogsz hogy dolgunk Xcode. 638 00:35:39,470 --> 00:35:43,720 És az egyik szép dolog Xcode van, és különösen a Swift, 639 00:35:43,720 --> 00:35:47,450 hogy van ez a nevezett dolog egy játszótér. 640 00:35:47,450 --> 00:35:51,470 És egy játszótér is Egyáltalán nem egy iOS app. 641 00:35:51,470 --> 00:35:54,751 De ez lehetővé teszi, hogy a kísérlet A Swift egy nagyon egyszerű módja. 642 00:35:54,751 --> 00:35:56,000 Akkor írja az összes kódot. 643 00:35:56,000 --> 00:35:58,140 Ez szépen Syntax emeltük ki. 644 00:35:58,140 --> 00:36:01,600 Amikor létrehoz egy új fájlt, akkor kérjen ha azt szeretnénk, hogy hozzon létre egy játszótér. 645 00:36:01,600 --> 00:36:08,720 De a szép dolog a Playground az, hogy a jobb oldalon az ablak, 646 00:36:08,720 --> 00:36:12,020 is jelent ez valójában megmutatja, kimenetét a kódot. 647 00:36:12,020 --> 00:36:16,110 Szóval ha lépjünk le, láthatjuk, hogy mi A termelés különböző sornyi kódot 648 00:36:16,110 --> 00:36:17,200 ténylegesen történetesen. 649 00:36:17,200 --> 00:36:19,850 650 00:36:19,850 --> 00:36:26,790 >> Tehát ebben az esetben, megyünk irányt változtatni csak egy kicsit 651 00:36:26,790 --> 00:36:30,960 és beszélni valamit, ami igazán Fontos, hogy ez a magas szintű utat 652 00:36:30,960 --> 00:36:34,020 hogy Swift működik, és ez Ez a gondolat a lezárások. 653 00:36:34,020 --> 00:36:36,960 És akkor valószínűleg látta ezt egy kicsit a JavaScript. 654 00:36:36,960 --> 00:36:40,770 Azoknak, hogy vannak CS50, bezárások 655 00:36:40,770 --> 00:36:47,240 nagyon népszerű, nagyon jó módja a magas szintű dolgokat a modern nyelvek. 656 00:36:47,240 --> 00:36:50,270 De ez is egyfajta nehéz tekerje a fejét először. 657 00:36:50,270 --> 00:36:52,269 Tehát, ha nézi ezt először, hogy rendben. 658 00:36:52,269 --> 00:36:56,740 Csak nézd meg a forráskódot, és látni ha lehet kitalálni otthon. 659 00:36:56,740 --> 00:37:01,050 >> Tehát ebben az esetben, mondjuk, hogy mi szeretnénk létrehozni egy csomó hatványkitevők 660 00:37:01,050 --> 00:37:04,134 néhány fix érték. 661 00:37:04,134 --> 00:37:05,800 Tehát ebben az esetben tudok létrehozni egy funkciót. 662 00:37:05,800 --> 00:37:09,270 Megyek nevezni ereje 2, melynek egyetlen célja az életben 663 00:37:09,270 --> 00:37:15,770 az, hogy néhány bemeneti és kétágyas azt, és térjen vissza az értéket. 664 00:37:15,770 --> 00:37:21,210 Figyeljük meg, hogy itt vagyok elfogadó egyik típusú adatok. 665 00:37:21,210 --> 00:37:23,137 Ez lesz a változó nevű x. 666 00:37:23,137 --> 00:37:23,970 Ez a típusú kétszemélyes. 667 00:37:23,970 --> 00:37:26,190 És fogok visszatérni egy kétszemélyes itt. 668 00:37:26,190 --> 00:37:29,100 És én csak csinálni nagyon, őszintén szólva, elég 669 00:37:29,100 --> 00:37:32,650 naiv módon, hogy megduplázza ezt az értéket. 670 00:37:32,650 --> 00:37:35,600 És én megmutatom, hogy ez miért Hasznos pillanatok alatt. 671 00:37:35,600 --> 00:37:40,418 >> Figyeljük meg, hogy itt van ez a tartomány már megint. Valami 1, pont 672 00:37:40,418 --> 00:37:44,130 dot dot, 2, ami azt jelenti, hogy Ez a hurok fog futni kétszer. 673 00:37:44,130 --> 00:37:46,480 De ez azt jelenti, dummy változó. 674 00:37:46,480 --> 00:37:49,650 Ez azt jelenti, én nem igazán fog használja a változó sehova 675 00:37:49,650 --> 00:37:51,070 belül ez a hurok. 676 00:37:51,070 --> 00:37:55,380 Csak azt akarom ezt a sort A kód futtatására kétszer, 677 00:37:55,380 --> 00:37:58,980 anélkül, hogy tudni az értéke, hogy a tartományban. 678 00:37:58,980 --> 00:38:02,570 >> Tehát ebben az esetben rohanok eredmény alkalommal kétszer ax, amely lényegében 679 00:38:02,570 --> 00:38:06,560 azt jelenti, hogy én vagyok négyszögesítése ezt az értéket. 680 00:38:06,560 --> 00:38:10,230 És ez történik dolgozni, mint várnánk. 681 00:38:10,230 --> 00:38:16,410 Power of 2, átadva értéke 2.0 ad nekünk egy kimenet 4. 682 00:38:16,410 --> 00:38:18,810 3.2 munkák 10.24. 683 00:38:18,810 --> 00:38:22,660 >> Most nem tehetünk egy hasonló dolog ereje 3. 684 00:38:22,660 --> 00:38:25,330 De most változás csak a tartományban. 685 00:38:25,330 --> 00:38:28,840 Mert dummy változó 1 a 3, szaporodnak 3-szor, 686 00:38:28,840 --> 00:38:29,830 és ugyanezt csinálja. 687 00:38:29,830 --> 00:38:32,240 >> Tehát ez talán egy kicsit kiagyalt. 688 00:38:32,240 --> 00:38:34,270 De van egy fontos dolog itt, amelyek 689 00:38:34,270 --> 00:38:37,770 az, hogy nézi ezeket két funkció, van 690 00:38:37,770 --> 00:38:43,600 csak egy dolog, hogy ez más, amely ezt az értéket a tartományban. 691 00:38:43,600 --> 00:38:46,910 Minden mást a két funkciók, teljesítmény 3 és hatalma 2, 692 00:38:46,910 --> 00:38:50,440 vannak, sőt, azonosak, mert működnek azonos módon. 693 00:38:50,440 --> 00:38:53,460 >> Tehát ezen a ponton, egy kicsit vészcsengő kell megy le. 694 00:38:53,460 --> 00:38:56,200 Remélhetőleg, amit mondasz, Tudod, ez úgy érzi, egy kicsit 695 00:38:56,200 --> 00:38:59,250 mint a párhuzamos tevékenységeket. 696 00:38:59,250 --> 00:39:02,950 Talán van rá mód, hogy én is hogy képes legyen beágyazására mindezt 697 00:39:02,950 --> 00:39:06,630 és egy függvény vagy hozzon létre egy függvényt, 698 00:39:06,630 --> 00:39:11,550 pontosan mit akarok, anélkül szoruló hogy írja ki kifejezetten. 699 00:39:11,550 --> 00:39:15,732 És ez az, amit a hatalom A lezárás lehetővé teszi számunkra, hogy nem. 700 00:39:15,732 --> 00:39:16,940 Szóval vessünk egy pillantást erre. 701 00:39:16,940 --> 00:39:18,700 És én kiad egy pár percet ezen, mert ez a 702 00:39:18,700 --> 00:39:20,310 nagyon fontos a Swift. 703 00:39:20,310 --> 00:39:22,900 Látjuk ezt minden alkalommal. 704 00:39:22,900 --> 00:39:24,550 Fogunk egy függvény definiálása. 705 00:39:24,550 --> 00:39:26,380 Meg fog nevezni powerOf. 706 00:39:26,380 --> 00:39:29,470 Meg fog elfogadni nevű paramétert y típusú Int. 707 00:39:29,470 --> 00:39:32,220 De vessünk egy pillantást a visszatérési típus. 708 00:39:32,220 --> 00:39:38,730 A visszatérési típus, a zárójelben, dupla nyíl Dupla. 709 00:39:38,730 --> 00:39:43,370 Ami azt jelenti, hogy ezt a funkciót, Ez a funkció powerOf, 710 00:39:43,370 --> 00:39:46,550 visszatér a funkciót. 711 00:39:46,550 --> 00:39:50,845 Hogy elfogad egy kétszemélyes és a visszatérő egy duplát. 712 00:39:50,845 --> 00:39:53,720 Tehát, hogy hangzik olyan őrült, de nézzük lépjünk le egy kicsit 713 00:39:53,720 --> 00:39:55,060 és nézd meg, mi történik. 714 00:39:55,060 --> 00:39:57,910 Bent vagyunk ennek a funkciónak powerOf. 715 00:39:57,910 --> 00:40:00,760 Hozunk létre egy új funkció nevű exponentiator, 716 00:40:00,760 --> 00:40:02,900 de ez nem számít, mi az. 717 00:40:02,900 --> 00:40:06,410 >> Figyeljük meg, hogy ennek bemeneti értéke x. 718 00:40:06,410 --> 00:40:09,910 És vesz egy kétszemélyes és a visszatérő egy duplát. 719 00:40:09,910 --> 00:40:16,320 És ez ugyanaz a kód, amit látta fent, kivéve, hogy az értéke 2 720 00:40:16,320 --> 00:40:20,060 vagy a értéke 3, hogy felső határértéket abban a tartományban, 721 00:40:20,060 --> 00:40:23,210 váltotta fel ez az érték az y, amely 722 00:40:23,210 --> 00:40:27,230 volt az első paraméter A mi powerOf funkciót. 723 00:40:27,230 --> 00:40:31,700 És ezen a ponton, mi visszatér exponentiator. 724 00:40:31,700 --> 00:40:33,345 Mi vissza a függvény. 725 00:40:33,345 --> 00:40:36,300 726 00:40:36,300 --> 00:40:39,550 >> Ez olyan, mint egy kis észbontó. 727 00:40:39,550 --> 00:40:44,360 De képzeljük el, mi történik, amikor hívom ezt a funkciót powerOf 728 00:40:44,360 --> 00:40:47,610 és add bele valamilyen érték, mint a 2. 729 00:40:47,610 --> 00:40:50,020 Ez azt jelenti, hogy Én most már az értéke 730 00:40:50,020 --> 00:40:55,130 2 y, ami azt jelenti, hogy ez az érték y e exponentiator funkció 731 00:40:55,130 --> 00:40:56,410 lesz ez az érték 2. 732 00:40:56,410 --> 00:41:01,290 De én ezt vissza exponentiator funkciót. 733 00:41:01,290 --> 00:41:05,900 >> Tehát észre, mi Swift azt mondja, teremtettek ebben az esetben. 734 00:41:05,900 --> 00:41:10,550 hadd tér fogalmának, ez egy függvény, amely elfogadja a Double 735 00:41:10,550 --> 00:41:12,610 és vissza Double. 736 00:41:12,610 --> 00:41:16,590 Létrehoztam egy funkciót hogy négyzetek valamit 737 00:41:16,590 --> 00:41:19,782 Ezzel a mechanizmussal itt. 738 00:41:19,782 --> 00:41:22,490 És tényleg az történik hogy visszatér ez a funkció 739 00:41:22,490 --> 00:41:26,390 exponentiator, de ez az érték y csomagolva belsejébe. 740 00:41:26,390 --> 00:41:31,080 És így most minden alkalommal, amikor használni ezt változó vagy ez az állandó nevezett 741 00:41:31,080 --> 00:41:35,180 négyzet, akkor ez lesz viselkedjen függvényében. 742 00:41:35,180 --> 00:41:39,960 És így tudok majd hívni, hogy a változó mint hívnám függvényében, 743 00:41:39,960 --> 00:41:43,830 és add bele több, mint ebben az esetben 3. 744 00:41:43,830 --> 00:41:45,910 És akkor tér ez az érték. 745 00:41:45,910 --> 00:41:53,340 Tehát 3 a négyzeten majd válnak 9, mint látjuk itt. 746 00:41:53,340 --> 00:41:56,530 >> Tényleg őrült, de ez most lehetővé teszi számomra a lehetőséget 747 00:41:56,530 --> 00:41:59,040 létrehozni más powerOf funkciókat. 748 00:41:59,040 --> 00:42:03,680 Mint azt tudom mondani, OK, nos most szeretnék hogy hozzon létre egy új funkció, powerOf (3), 749 00:42:03,680 --> 00:42:06,290 és tárolja, hogy egy állandó nevű kocka. 750 00:42:06,290 --> 00:42:10,220 És most kocka lesz külön funkció, amely akkor 751 00:42:10,220 --> 00:42:14,800 hogy néhány érték a bemeneti és kocka, hogy értéket látjuk az alsó sorban 752 00:42:14,800 --> 00:42:16,420 itt. 753 00:42:16,420 --> 00:42:18,590 kocka 2 fog eredményezni 8. 754 00:42:18,590 --> 00:42:21,330 755 00:42:21,330 --> 00:42:22,680 >> Remélhetőleg elég ügyes dolgokat. 756 00:42:22,680 --> 00:42:25,920 Még sosem láttam ilyet. 757 00:42:25,920 --> 00:42:29,990 Azt javasoljuk, hogy nézzen a bezárások és vizsgálja meg ezt egy kicsit. 758 00:42:29,990 --> 00:42:33,570 Ez tényleg nagy dolog azt látjuk, sok A JavaScript és néhány más nyelveken. 759 00:42:33,570 --> 00:42:37,160 Ez valóban fontos megértése API-k is 760 00:42:37,160 --> 00:42:38,620 hogy mi lesz pillanatok alatt. 761 00:42:38,620 --> 00:42:39,456 Igen? 762 00:42:39,456 --> 00:42:43,740 >> Közönség: Ha ezt powerOf (2), zárójelben, majd 763 00:42:43,740 --> 00:42:48,764 Egy másik zárójelben, a másik input-- te alapvetően helyett a téren. 764 00:42:48,764 --> 00:42:50,930 DAN AMRMENDARIZ: Így néz a legutolsó sort itt. 765 00:42:50,930 --> 00:42:55,930 Ez valójában teljesen lehetséges Ehhez láncolt ahogy javasolta. 766 00:42:55,930 --> 00:43:00,990 Tehát powerOf (5) azt jelenti, hogy megyünk hogy egy exponentiator 5 itt. 767 00:43:00,990 --> 00:43:04,160 Tehát ez lényegében lesz a ugyanaz, mint 4 az ötödik erő, 768 00:43:04,160 --> 00:43:07,200 mert már létrehozott egy hatványozása működni az ötödik erő, 769 00:43:07,200 --> 00:43:09,920 és mi halad át hogy működik a 4-es érték. 770 00:43:09,920 --> 00:43:12,619 És azt kapjuk, hogy értéket hogy mi várható, 1024. 771 00:43:12,619 --> 00:43:14,785 Közönség: És ez nem egy Íme, így könnyebbé teszi 772 00:43:14,785 --> 00:43:16,570 olvasni, a tér mindegy. 773 00:43:16,570 --> 00:43:17,903 >> DAN AMRMENDARIZ: Jobb, pontosan. 774 00:43:17,903 --> 00:43:21,120 Szóval mielőtt csak tedd egy állandó itt, így 775 00:43:21,120 --> 00:43:23,808 hogy könnyen át lehetett használni ezt a nevet. 776 00:43:23,808 --> 00:43:24,308 Igen? 777 00:43:24,308 --> 00:43:26,942 >> Közönség: Ebben az összefüggésben powerOf, ez része 778 00:43:26,942 --> 00:43:30,774 A programozási nyelv szemben, ahogy 779 00:43:30,774 --> 00:43:33,952 gondolni powerOf az [hallhatatlan]? 780 00:43:33,952 --> 00:43:35,660 DAN AMRMENDARIZ: Tehát Ebben az esetben, powerOf 781 00:43:35,660 --> 00:43:39,280 egyszerűen a neve a funkciót, amit meghatározott ide. 782 00:43:39,280 --> 00:43:41,801 Tehát ez nem jellemző hogy maga a nyelv, 783 00:43:41,801 --> 00:43:43,550 hanem, hogy ez csak egy függvény, amely 784 00:43:43,550 --> 00:43:45,628 ezt a nevet, mert adok neki ezt a nevet. 785 00:43:45,628 --> 00:43:48,770 786 00:43:48,770 --> 00:43:51,920 Más kérdés? 787 00:43:51,920 --> 00:43:52,800 Minden rendben. 788 00:43:52,800 --> 00:43:54,750 >> Most ez nagyszerű. 789 00:43:54,750 --> 00:43:58,170 De nem fogod látni Sok lezárás funkciókat, 790 00:43:58,170 --> 00:44:03,440 mint ez, ahol meghatározhatja, belül Egy funkció, egy másik funkció. 791 00:44:03,440 --> 00:44:04,320 És meg tudod csinálni. 792 00:44:04,320 --> 00:44:06,430 De ez a fajta nem valóban szükséges, nem igaz? 793 00:44:06,430 --> 00:44:09,189 Mint miért határozza meg ezt nevezett funkció exponentiator 794 00:44:09,189 --> 00:44:10,480 majd azonnal vissza. 795 00:44:10,480 --> 00:44:15,220 Miért nem tudok csak közvetlenül vissza ezt a funkciót? 796 00:44:15,220 --> 00:44:18,890 >> És valóban, ez pontosan Az ötlet mögött a koncepció nevezett 797 00:44:18,890 --> 00:44:22,410 névtelen függvényt, ahol névtelen függvények valójában nem 798 00:44:22,410 --> 00:44:25,270 Van egy nevet, mert Nem kell, hogy legyen. 799 00:44:25,270 --> 00:44:28,700 És így ebben az esetben, a 7B, találunk pontosan ezt teszi. 800 00:44:28,700 --> 00:44:31,470 Ez mind ugyanazt a kódot, pontosan ugyanaz a dolog, 801 00:44:31,470 --> 00:44:35,570 de most már megváltozott kissé, így hogy ez a funkció azonnal powerOf 802 00:44:35,570 --> 00:44:37,750 visszaad egy funkciót. 803 00:44:37,750 --> 00:44:44,150 Figyeljük meg, hogy a visszatérés utáni, van egy nyitott zárójel. 804 00:44:44,150 --> 00:44:46,410 Ez vár ez a bemenet Kétágyas. 805 00:44:46,410 --> 00:44:48,560 Ez annak reményében, hogy kimeneti Kétágyas. 806 00:44:48,560 --> 00:44:52,175 És akkor a kulcsszó a elválasztja a kódját. 807 00:44:52,175 --> 00:44:53,550 Tehát ez egy névtelen függvényt. 808 00:44:53,550 --> 00:44:57,030 Ez valójában nem egy név, mivel előtt hívták exponentiator. 809 00:44:57,030 --> 00:45:00,229 De mint láttuk, csak nagyon nem utalt exponentiator 810 00:45:00,229 --> 00:45:01,270 kívül, hogy a funkció. 811 00:45:01,270 --> 00:45:02,470 Tehát ez nem számít. 812 00:45:02,470 --> 00:45:06,300 Tehát ez a névtelen függvény úgynevezett, mert a névtelen, 813 00:45:06,300 --> 00:45:09,107 De ez még mindig használják összefüggésben ezt a kódot. 814 00:45:09,107 --> 00:45:13,690 815 00:45:13,690 --> 00:45:16,079 >> A következő pár is vagyok folytatódni fog remélhetőleg 816 00:45:16,079 --> 00:45:17,370 fúj az agyad egy kicsit. 817 00:45:17,370 --> 00:45:20,410 Mi lehet egyszerűsíteni ez még. 818 00:45:20,410 --> 00:45:24,490 Mert ahogy okosan korábban jelezte, 819 00:45:24,490 --> 00:45:29,100 Talán, akikről tudjuk, a következtetnek arra, hogy ezt a kódot, hogy mit 820 00:45:29,100 --> 00:45:31,750 A kimenő e-kód lesz. 821 00:45:31,750 --> 00:45:38,180 És valóban, ebben a névtelen függvényt, mi is valójában következtetni a típusú adatok. 822 00:45:38,180 --> 00:45:41,650 >> Tehát ebben az egy, már nem kell külön meghatározni 823 00:45:41,650 --> 00:45:44,850 Az adatok típusa, amit most bemeneti és kimeneti ezt a funkciót 824 00:45:44,850 --> 00:45:45,890 egy pár oka. 825 00:45:45,890 --> 00:45:51,390 Az egyik az, hogy már meghatározott, akár a prototípus a befoglaló függvény, 826 00:45:51,390 --> 00:45:55,770 milyen típusú adatot a névtelen funkciót bemeneti és kimeneti. 827 00:45:55,770 --> 00:45:57,900 És a másik, mi arra lehet következtetni a kódot 828 00:45:57,900 --> 00:46:01,930 idelent, hogy fogadunk bemeneti, hogy a típusa Kétágyas 829 00:46:01,930 --> 00:46:03,670 és a visszatérő egy duplát. 830 00:46:03,670 --> 00:46:07,890 >> Figyeljük meg, hogy itt mi nem kifejezetten meghatározta a nevét érvek 831 00:46:07,890 --> 00:46:11,220 hogy ezt a funkciót elfogadja. 832 00:46:11,220 --> 00:46:16,180 És így látjuk mi lehet hivatkozni E paraméterek segítségével $ 0, $ 1, 833 00:46:16,180 --> 00:46:20,140 így tovább és így tovább, attól függően, száma, amely használt paraméter 834 00:46:20,140 --> 00:46:20,850 ebben a funkcióban. 835 00:46:20,850 --> 00:46:23,370 836 00:46:23,370 --> 00:46:29,740 >> Ez olyan dolog, hogy fogsz hogy egy csomó ez nyitott zárójel 837 00:46:29,740 --> 00:46:32,797 meghatározás követte $ 0, majd néhány műveletet, 838 00:46:32,797 --> 00:46:34,130 majd zárt kapcsos zárójel. 839 00:46:34,130 --> 00:46:38,630 Azaz egy névtelen függvényt végzi el ezt a műveletet. 840 00:46:38,630 --> 00:46:42,940 Ennek ez a paraméter, ahol ez a típus kikövetkeztetett. 841 00:46:42,940 --> 00:46:44,860 Ez az első paraméter 0 $. 842 00:46:44,860 --> 00:46:49,010 És néhány művelet történik a $ 0. 843 00:46:49,010 --> 00:46:52,100 >> Közönség: Tehát a dollár jel azt jelenti paraméter alapvetően, 844 00:46:52,100 --> 00:46:53,429 0: az első? 845 00:46:53,429 --> 00:46:54,720 DAN Armendariz: Így van. 846 00:46:54,720 --> 00:46:59,100 Így a dollár jel lényegében azt jelenti, paraméter, és 0: az elsőt. 847 00:46:59,100 --> 00:47:02,760 De működik kifejezetten Ebben az esetben, ha még nem elemzi 848 00:47:02,760 --> 00:47:07,940 Az érvek az én névtelen függvényt. 849 00:47:07,940 --> 00:47:11,119 >> Közönség: Vajon Perl vagy valami van ez a dollár jel, dollár 0 odabent? 850 00:47:11,119 --> 00:47:12,702 DAN Armendariz: Vajon melyik, hogy sajnálom? 851 00:47:12,702 --> 00:47:15,360 Közönség: Vajon Perl van ez a dollárral 0, dollár 1-- 852 00:47:15,360 --> 00:47:17,318 DAN Armendariz: Nem vagyok túlságosan is ismerős Perl, 853 00:47:17,318 --> 00:47:21,340 de a PHP mi határozza meg a változók alapuló dollár jeleket. 854 00:47:21,340 --> 00:47:26,120 És lehet, hogy néhány nyelv amelyek funkciók, mint ez. 855 00:47:26,120 --> 00:47:28,240 Tény, Swift kölcsönzi csomó funkciók, mint ez 856 00:47:28,240 --> 00:47:29,489 egy csomó más nyelveken. 857 00:47:29,489 --> 00:47:32,380 Látjuk tippeket a Python benne. 858 00:47:32,380 --> 00:47:35,800 Ez a meghatározás típusú Úgy tűnik, hogy jöjjön a OCaml. 859 00:47:35,800 --> 00:47:38,932 És mi van, csak egy csomó cucc a sok különböző nyelven. 860 00:47:38,932 --> 00:47:40,640 Ez az egyik a szép dolog Swift 861 00:47:40,640 --> 00:47:43,390 hogy tart egy csomó a legjobb ötletek egy csomó nyelvet 862 00:47:43,390 --> 00:47:47,229 és shoehorns őket együtt egyetlen szuper nyelven. 863 00:47:47,229 --> 00:47:49,520 Sőt, ha megengedik, hogy továbbra is fúj a fejedben, 864 00:47:49,520 --> 00:47:51,000 ezért csináltam ezt az egészet. 865 00:47:51,000 --> 00:47:56,690 Mi talán leegyszerűsítik ezt egy kicsit bit felismerve, hogy, természetesen, 866 00:47:56,690 --> 00:48:02,120 Swift egy hatványozása funkciót építettek be. 867 00:48:02,120 --> 00:48:04,660 Ha importálni Darwin, amely csak a könyvtár, amely 868 00:48:04,660 --> 00:48:09,680 funkciók Ezt a funkciót az úgynevezett puff, most Én egyszerűsítheti az erőmet funkció 869 00:48:09,680 --> 00:48:11,830 hogy a következő. 870 00:48:11,830 --> 00:48:15,860 Meg fog visszatérni ez a névtelen függvényt. 871 00:48:15,860 --> 00:48:17,950 >> De nézd meg, milyen egyszerű ez most. 872 00:48:17,950 --> 00:48:22,780 Ez egy névtelen függvény, amely fogad bizonyos típusú adat, 873 00:48:22,780 --> 00:48:26,600 és ez lesz az egyik okfejtést, amely kifejezetten, 874 00:48:26,600 --> 00:48:29,320 jelzőszáma $ 0, hogy a típusa Kétágyas. 875 00:48:29,320 --> 00:48:32,680 Meg fog visszatérni típusú kétszemélyes. 876 00:48:32,680 --> 00:48:35,760 De a return Most implicit. 877 00:48:35,760 --> 00:48:39,990 >> És ez az a stílus, amely pontosan Nagyon, nagyon elterjedt a Swift, 878 00:48:39,990 --> 00:48:40,790 mindenhol. 879 00:48:40,790 --> 00:48:43,190 Fogunk látni ezt minden alkalommal a Swift. 880 00:48:43,190 --> 00:48:46,150 Úgyhogy mutatja mindezt, hogy , mert ennek a szintaxis. 881 00:48:46,150 --> 00:48:49,070 Ez nagyon gyakori látni, ami azt jelenti, hogy 882 00:48:49,070 --> 00:48:51,420 egy névtelen függvényt hogy teljesít 883 00:48:51,420 --> 00:48:54,640 Néhány művelet ezeket az érveket. 884 00:48:54,640 --> 00:48:56,940 És van egy implicit vissza. 885 00:48:56,940 --> 00:49:01,850 Tehát ez teljesen ugyanaz a dolog számunkra, hogy ezt mondom, itt van. 886 00:49:01,850 --> 00:49:05,730 887 00:49:05,730 --> 00:49:08,150 >> Mivel ez a göndör konzol egy olyan funkció, 888 00:49:08,150 --> 00:49:10,480 mi vagyunk a művelet elvégzéséhez Az első érv. 889 00:49:10,480 --> 00:49:12,170 Megyünk vissza, hogy. 890 00:49:12,170 --> 00:49:14,815 De ez a külső visszatérés vissza, hogy az egész funkció, 891 00:49:14,815 --> 00:49:19,855 hogy az egész névtelen függvényt hogy éppen most létrehozott. 892 00:49:19,855 --> 00:49:21,689 Más kérdés? 893 00:49:21,689 --> 00:49:23,980 Rendben, nem tudom, ha srácok készen áll erre, 894 00:49:23,980 --> 00:49:27,455 de mehetünk még őrültebb Swift. 895 00:49:27,455 --> 00:49:28,560 Készen állsz? 896 00:49:28,560 --> 00:49:29,930 OK, ez nagyszerű. 897 00:49:29,930 --> 00:49:35,310 >> Most valóban képesek hogy, a Swift, mert hogyan moduláris 898 00:49:35,310 --> 00:49:39,650 és hogyan protokoll alapú azt jelenti, hogy definiálhatunk saját rohadt szereplők. 899 00:49:39,650 --> 00:49:44,060 Mint ebben az esetben nem volt üzemeltető exponentiation-- is, 900 00:49:44,060 --> 00:49:47,990 elvégzésére hatásköre valamit. 901 00:49:47,990 --> 00:49:53,632 De tudom, a Swift, meg egy új üzemben, amely nem pontosan ezt teszi. 902 00:49:53,632 --> 00:49:55,590 Tehát ebben az esetben van egy csomó szintaxis itt. 903 00:49:55,590 --> 00:49:59,980 És én majd lehetővé teszi, hogy nézd meg otthon, amikor megnézi ezt. 904 00:49:59,980 --> 00:50:06,890 De mi definiáljuk, hogy ez infix üzemeltetője, **, amely majd lehetővé teszi számunkra, 905 00:50:06,890 --> 00:50:09,840 meghatározásával, hogy mi funkció ** ténylegesen 906 00:50:09,840 --> 00:50:15,010 nak, hogy elfogadja a bal oldalon és a jobb oldalon, 907 00:50:15,010 --> 00:50:21,190 majd vissza a kitevő, hogy bal oldali, hogy a jobb oldalon. 908 00:50:21,190 --> 00:50:24,850 >> És így most hirtelen én létrehoztunk egy új számláló. 909 00:50:24,850 --> 00:50:29,490 Tehát 2 ** 3 azt jelenti 2 a köbön. 910 00:50:29,490 --> 00:50:34,420 [Észbontó SOUND] Ez az Maga kell, hogy úgy legyen, mint a, 911 00:50:34,420 --> 00:50:37,960 OK, csavaros C. megyek Swift egészen. 912 00:50:37,960 --> 00:50:38,740 Ez nagyszerű. 913 00:50:38,740 --> 00:50:40,140 Ez elég fantasztikus. 914 00:50:40,140 --> 00:50:42,240 >> Bár ez egy nagyszerű példa. 915 00:50:42,240 --> 00:50:45,570 De egyszer sem kívül Ennek a példának a ténylegesen 916 00:50:45,570 --> 00:50:46,800 meghatározott saját üzemben. 917 00:50:46,800 --> 00:50:49,710 De mégis, ez azt mutatja, Sok a hatalom Swift 918 00:50:49,710 --> 00:50:54,050 és miért ez valójában Tényleg nagyon klassz. 919 00:50:54,050 --> 00:50:55,832 OK, igaz? 920 00:50:55,832 --> 00:50:57,790 Közönség: Ha meghatározó a saját üzemben, 921 00:50:57,790 --> 00:51:02,940 honnan tudod, hogy nem véletlenül próbálj létrehozni egy operátor, ami 922 00:51:02,940 --> 00:51:06,040 A valahol C, mint rejtett valahol Swift, 923 00:51:06,040 --> 00:51:12,210 mint egy homályos egyik, hogy Lehet, hogy nem látott. 924 00:51:12,210 --> 00:51:15,050 >> DAN Armendariz: Szóval, ha akarsz hogy meghatározza a saját gazdasági, 925 00:51:15,050 --> 00:51:20,970 fennáll a veszélye meghatározásának Egy több mint egy meglévő üzemeltető. 926 00:51:20,970 --> 00:51:24,870 Hogy bemegy egy részletességgel, hogy Nem hiszem, hogy van ideje, hogy menjen át. 927 00:51:24,870 --> 00:51:27,620 De ez egy kockázat. 928 00:51:27,620 --> 00:51:31,320 És ez a tény az oka, amiért Én nem használja a kalap szimbólum, amely 929 00:51:31,320 --> 00:51:36,210 amikor írsz a hatalmat, amit általában Használja 4 kis kalap 5 vagy valami 930 00:51:36,210 --> 00:51:40,560 ilyesmi, éppen akkor, amikor mi vagyunk Gchatting bimbózó vagy bármi. 931 00:51:40,560 --> 00:51:43,660 De ebben az esetben, hogy ténylegesen okozott volna az ütközés. 932 00:51:43,660 --> 00:51:46,450 És így elkerülhető, hogy csak azért, mert Azt történt, hogy tudom, ebben az esetben 933 00:51:46,450 --> 00:51:50,430 hogy hogy okozna, hogy az ütközések. 934 00:51:50,430 --> 00:51:52,270 >> Minden rendben. 935 00:51:52,270 --> 00:51:55,080 Most sajnos, az Az elmúlt hét perc, 936 00:51:55,080 --> 00:51:57,410 Meg kell tartani fúj gondolataitokat egy kicsit. 937 00:51:57,410 --> 00:52:00,230 Ezért engedje meg, hogy mutassa meg, néhány más dolgot is. 938 00:52:00,230 --> 00:52:03,710 >> Megmutattuk akkor ez a gondolat a miután ezek a névtelen függvények, 939 00:52:03,710 --> 00:52:07,040 ezek a bezárások, amelyek lehetővé teszik, hogy fajta át funkciók körül. 940 00:52:07,040 --> 00:52:08,100 Akkor vissza őket. 941 00:52:08,100 --> 00:52:09,490 Tudod manipulálni őket. 942 00:52:09,490 --> 00:52:11,790 Meg tudod csinálni mindenféle marhaságot. 943 00:52:11,790 --> 00:52:14,850 >> De egy másik dolog, hogy előfordul, hogy hasznos 944 00:52:14,850 --> 00:52:19,740 az a képesség, hogy, szemben a visszatérő azok a funkciók 945 00:52:19,740 --> 00:52:25,146 egy funkció, hogy adja át a funkciót mint paramétert másik funkció. 946 00:52:25,146 --> 00:52:30,430 Lehet, hogy gondoltam is, hogy miért a Földön akarnék ilyesmit? 947 00:52:30,430 --> 00:52:33,660 >> Nos, mondjuk, hogy szeretnék hogy ez a szolgáltató, hogy én 948 00:52:33,660 --> 00:52:40,260 olyan keményen dolgozott, hogy hozzon létre és alkalmazzon hogy egy csomó különböző számok 949 00:52:40,260 --> 00:52:41,770 egy tömbben. 950 00:52:41,770 --> 00:52:46,700 Tehát ebben az esetben van egy sor integers-- 1, 4, 7, 2, 5, 10, 56. 951 00:52:46,700 --> 00:52:48,080 És azt akarom, hogy megduplázza őket. 952 00:52:48,080 --> 00:52:50,430 Az hogy mi lenne tipikusan csinálni, hogy csak írni 953 00:52:50,430 --> 00:52:53,440 egy egyszerű hurok, hogy megismétli felett mindet 954 00:52:53,440 --> 00:52:57,140 és végre valamiféle négyzet működését felettük, 955 00:52:57,140 --> 00:53:02,700 bevitele ezeket az új értékeket egy új változó, vagy inkább egy új tömböt itt. 956 00:53:02,700 --> 00:53:07,370 És az értéke a kimeneti eredmény akkor az összes ilyen tömbök, 957 00:53:07,370 --> 00:53:10,200 vagy inkább az összes ilyen elemek most négyzeten. 958 00:53:10,200 --> 00:53:12,680 >> És mi is ugyanígy dolog kocka meg, 959 00:53:12,680 --> 00:53:15,360 de egy kicsit vészharangot mennem kell le 960 00:53:15,360 --> 00:53:17,360 mondván, hogy talán van valamilyen módon, hogy mi lenne 961 00:53:17,360 --> 00:53:19,860 képes, hogy egyszerűsítse ezt egy kicsit. 962 00:53:19,860 --> 00:53:21,130 És valójában van. 963 00:53:21,130 --> 00:53:25,320 Mi lenne, ha tudnánk létrehozni hogy a funkció lehetővé teszi számunkra, 964 00:53:25,320 --> 00:53:28,350 elfogadni, mint egy ragadozó, egy funkció? 965 00:53:28,350 --> 00:53:30,350 Tehát ebben az esetben, hogy egy nézd meg ezeket az érveket. 966 00:53:30,350 --> 00:53:33,220 Megyünk, hogy elfogadja a fenti páros. 967 00:53:33,220 --> 00:53:35,030 Aztán megyünk hogy elfogadja a funkciót 968 00:53:35,030 --> 00:53:40,990 a változó nevű f hogy folyik hogy egy kétszemélyes és vissza egy duplát. 969 00:53:40,990 --> 00:53:43,320 És az egész kimeneti A teljes funkció 970 00:53:43,320 --> 00:53:47,310 nevű leképező fog tömböt ad vissza az úgynevezett kettős. 971 00:53:47,310 --> 00:53:52,380 >> Mi ez, akkor engedje meg, hogy tennie, hogy végighaladni, hogy a listát 972 00:53:52,380 --> 00:53:56,350 és nem ugyanaz a dolog, de most alkalmazni, hogy a funkció az egyes 973 00:53:56,350 --> 00:53:58,970 Az egyes értékek ebben a listában. 974 00:53:58,970 --> 00:54:00,750 Szóval nem igazán tudom, mi f. 975 00:54:00,750 --> 00:54:02,010 Nem számít nekem. 976 00:54:02,010 --> 00:54:06,530 De ameddig tart egy kétszemélyes, végez valamilyen műveletet rajta, 977 00:54:06,530 --> 00:54:08,640 majd visszaadja Kétágyas, azt majd lesz 978 00:54:08,640 --> 00:54:13,415 képes leképezni, hogy a funkció szerte minden egyes elemet a listában. 979 00:54:13,415 --> 00:54:16,270 980 00:54:16,270 --> 00:54:20,930 >> És ez a fajta programozás az úgynevezett magasabb rendű funkciókat, 981 00:54:20,930 --> 00:54:24,440 ahol mi vagyunk halad funkciók körül, mint paraméterek 982 00:54:24,440 --> 00:54:26,430 és a dolgokat a funkciókat. 983 00:54:26,430 --> 00:54:29,640 Ez a fajta, mint hogy minden ilyen ötletek, hogy megtanultuk a CS50 984 00:54:29,640 --> 00:54:31,390 és figyelembe őket egyfajta Az, hogy a következő szintre. 985 00:54:31,390 --> 00:54:34,140 És ez mind CS51 stílusú dolgokat. 986 00:54:34,140 --> 00:54:37,080 És így fogunk menni mélyreható Több osztályokban, mint ezt. 987 00:54:37,080 --> 00:54:38,930 >> De ez is Fontos itt, mert 988 00:54:38,930 --> 00:54:42,010 egy csomó funkciók , amelyek használják a Swift 989 00:54:42,010 --> 00:54:45,590 hogy lényegében nem Ennek ahol van 990 00:54:45,590 --> 00:54:48,300 Egyes számok, néhány tömb számokat. 991 00:54:48,300 --> 00:54:50,850 Megyünk át, hogy tömböt a leképező. 992 00:54:50,850 --> 00:54:55,770 És mi is lesz a átadni néhány funkció, amely 993 00:54:55,770 --> 00:54:57,950 mi már definiált itt. 994 00:54:57,950 --> 00:54:59,690 Ez lesz téren. 995 00:54:59,690 --> 00:55:02,220 És mi lesz majd Szögletes Minden ezeket a számokat 996 00:55:02,220 --> 00:55:04,710 és tárolja, hogy ebbe eredmény itt. 997 00:55:04,710 --> 00:55:07,280 998 00:55:07,280 --> 00:55:11,000 >> Tehát ebben az esetben mi már definiáltuk saját nevezett funkció leképező. 999 00:55:11,000 --> 00:55:15,370 De ez a pontos dolog, sőt, beépített Swift. 1000 00:55:15,370 --> 00:55:18,960 Vannak különféle funkciókat úgynevezett térképet. 1001 00:55:18,960 --> 00:55:21,520 Van egy térkép funkció, van egy csökkentik funkciót, 1002 00:55:21,520 --> 00:55:25,630 és van egy szűrő funkció, amely lényegében alkalmazni funkciók 1003 00:55:25,630 --> 00:55:30,782 minden egyes eleme egy felsorolni módosítani őket valamilyen módon. 1004 00:55:30,782 --> 00:55:34,510 >> Közönség: Szóval mivel átalakítják Az adatok más formátumba 1005 00:55:34,510 --> 00:55:36,134 keresztül function-- 1006 00:55:36,134 --> 00:55:37,050 DAN Armendariz: Így van. 1007 00:55:37,050 --> 00:55:39,420 Igen, így a funkció hogy mi elfogadó 1008 00:55:39,420 --> 00:55:41,790 átalakítja az adatokat valamilyen módon. 1009 00:55:41,790 --> 00:55:44,700 Ebben az esetben, voltunk akár négyszögesítése, vagy mi volt forgatáskor meg, 1010 00:55:44,700 --> 00:55:50,060 vagy tényleg, mi is végre Nincs művelet egyáltalán. 1011 00:55:50,060 --> 00:55:54,150 >> De hadd mutassam meg, akkor ez hogyan fog nézni a gyakorlatban. 1012 00:55:54,150 --> 00:55:56,681 És ismét, rohanok a kis időt. így nem vagyok 1013 00:55:56,681 --> 00:55:59,430 lesz képes, hogy menjen át minden A forráskód itt részletesen. 1014 00:55:59,430 --> 00:56:00,721 De azt javasoljuk, hogy ezt tegyük. 1015 00:56:00,721 --> 00:56:03,850 Tesszük közzé azt, amint követően a lehető ezt a beszédet. 1016 00:56:03,850 --> 00:56:07,610 >> De ha megnézzük ezt, fel, hogy van egy lista a számok, 1017 00:56:07,610 --> 00:56:10,260 egy sor számok ebben a változó hívott számokat. 1018 00:56:10,260 --> 00:56:16,670 Aztán szeretnénk elvégezni ezt Keresés a műveletet az említett számokat. 1019 00:56:16,670 --> 00:56:19,730 Tehát szűrő egy magasabb érdekében, hogy a funkció 1020 00:56:19,730 --> 00:56:24,660 elfogadja tömb és függvénye is. 1021 00:56:24,660 --> 00:56:28,760 És minden eleme, hogy tömbbel, e feladatot ellátja. 1022 00:56:28,760 --> 00:56:31,990 >> Ha ez a funkció visszatér Igaz, ez tartja azt az elemet. 1023 00:56:31,990 --> 00:56:36,100 Ha ez függvény false, eldobja azt az elemet. 1024 00:56:36,100 --> 00:56:40,480 És akkor ad egy listát hogy ezután épül fel minden 1025 00:56:40,480 --> 00:56:44,360 Ezen elemek, amelyeket leszűrjük. 1026 00:56:44,360 --> 00:56:47,150 >> Tehát egy másik szóval, ez ugyanezt a gondolatot, a Gradebook. 1027 00:56:47,150 --> 00:56:50,800 Lehet, hogy a különböző fokozatok ebbe az érték hívott számokat. 1028 00:56:50,800 --> 00:56:55,590 Lehet, hogy 100, illetve 70 és 40, így tovább és így tovább. 1029 00:56:55,590 --> 00:56:59,110 Mi ez a szűrő nem észrevennünk hogy ez az, hogy a szintaktikus cukor 1030 00:56:59,110 --> 00:57:01,310 Egy névtelen függvényt. 1031 00:57:01,310 --> 00:57:05,980 Ez egy névtelen függvényt mondván hogy a paraméter, hogy én elfogadva 1032 00:57:05,980 --> 00:57:09,690 lesz, ha nagyobb, mint 70, 1033 00:57:09,690 --> 00:57:15,837 akkor ez igaz értéket ad vissza, ami azt jelenti, hogy ez az elem fogja tartani ezt a szűrőt. 1034 00:57:15,837 --> 00:57:17,920 Úgyhogy egy kicsit konkrétabb erről. 1035 00:57:17,920 --> 00:57:25,760 Ha én ezt a tömböt a számok és ez áll a 100, 70, és 40, 1036 00:57:25,760 --> 00:57:29,730 Én végre ezt a szűrőt műveletet minden egyes ilyen. 1037 00:57:29,730 --> 00:57:33,270 Annak érdekében, hogy első ez az érték 100. 1038 00:57:33,270 --> 00:57:36,770 100-nél nagyobb vagy azzal egyenlő 70 Igaz, ami 1039 00:57:36,770 --> 00:57:41,950 azt jelenti, hogy a 100 őrzik Az új másolatot a tömb. 1040 00:57:41,950 --> 00:57:44,290 70 átadja. 1041 00:57:44,290 --> 00:57:46,020 De 40 nem. 1042 00:57:46,020 --> 00:57:54,290 Szóval mit ad vissza a passingCount a tömb elemeinek 100 és 70-- 1043 00:57:54,290 --> 00:57:57,410 100, vessző, 70. 1044 00:57:57,410 --> 00:57:59,870 Ezek voltak az egyedüli két tárgyakat, tartották. 1045 00:57:59,870 --> 00:58:03,740 És így az ok, amiért gyorsan ment keresztül, egy csomó ilyen fajta magas érdekében 1046 00:58:03,740 --> 00:58:08,680 a dolgok, mert ez az, hogy a közös dolog, hogy látni fogja a Swift elég 1047 00:58:08,680 --> 00:58:16,810 Gyakran, valamilyen funkciót végez Ezzel a névtelen függvény szintaxisa. 1048 00:58:16,810 --> 00:58:18,450 >> Van néhány jó cucc. 1049 00:58:18,450 --> 00:58:24,730 A kapcsolók nagyon erős a Swift, Úgy értem, csak, mint egy őrült, őrült erős. 1050 00:58:24,730 --> 00:58:28,250 Használhatja kapcsolót, és akkor valóban alkalmazzák őket 1051 00:58:28,250 --> 00:58:33,160 a tartományok, ami elég őrült, és nem szép, ilyesmi. 1052 00:58:33,160 --> 00:58:37,540 >> De az elmúlt néhány percben, Azt akarom, hogy ugorjon elég messze 1053 00:58:37,540 --> 00:58:46,940 és mutassa meg egy konkrét példa arra, hogy mi is létrehozhatunk iOS app segítségével Swift. 1054 00:58:46,940 --> 00:58:49,040 Tehát ha csinálsz Ennek akkor van, hogy 1055 00:58:49,040 --> 00:58:51,990 egy pillantást at-- az Apple dokumentációban, ezeket 1056 00:58:51,990 --> 00:58:56,084 Van egy csomó igazán jó oktató létrehozására az első alkalmazás. 1057 00:58:56,084 --> 00:58:58,250 És azt javasoljuk, hogy ezt hogy azért, mert elviszi 1058 00:58:58,250 --> 00:59:04,110 az összes lépést, hogy pontosan mi az kattintson létrehozni egy iOS alkalmazás. 1059 00:59:04,110 --> 00:59:07,290 >> De itt van ez a iOS app. 1060 00:59:07,290 --> 00:59:10,960 És ez egy nagyon egyszerű alkalmazás igazán. 1061 00:59:10,960 --> 00:59:13,840 Ha futok ez, hadd mutassam Ön hogyan néz ki. 1062 00:59:13,840 --> 00:59:19,480 Minden lényegében nem az, hogy húzza az internetről a JSON fájlban 1063 00:59:19,480 --> 00:59:22,300 hogy én a szerveren tárolt. 1064 00:59:22,300 --> 00:59:26,310 És hogy JSON fájlok meghatározza a képeket, amelyek lehetővé teszik 1065 00:59:26,310 --> 00:59:31,680 nekem akkor lépkedni, az én app, képeket a webszerver. 1066 00:59:31,680 --> 00:59:32,880 >> Szóval van itt getNextImage. 1067 00:59:32,880 --> 00:59:37,100 Betölti a képet az interneten, majd megjeleníti a képernyőn. 1068 00:59:37,100 --> 00:59:38,200 >> Szóval ez elég egyszerű. 1069 00:59:38,200 --> 00:59:41,550 De a cél itt az, hogy megmutassa Ön hogyan tudjuk kombinálni a dolgokat 1070 00:59:41,550 --> 00:59:47,820 az utóbbi néhány hét CS50 a tényleges iOS alkalmazás. 1071 00:59:47,820 --> 00:59:53,140 Más szóval, talán az egyik dolog, amit meg szeretnék csinálni 1072 00:59:53,140 --> 00:59:56,340 az, hogy van egy iOS alkalmazás, amely lehet húzni az adatokat a Internet 1073 00:59:56,340 --> 00:59:59,070 és mutassuk meg a felhasználó bizonyos információkat. 1074 00:59:59,070 --> 01:00:03,130 Ez teljes mértékben a lényeg a forráskód itt. 1075 01:00:03,130 --> 01:00:07,890 >> Tehát van egy csomó kell mondani hogyan kell csinálni a tényleges iOS fejlesztés. 1076 01:00:07,890 --> 01:00:12,860 Van egy csomó őrült szintaxis hogy nem láttunk még elég 1077 01:00:12,860 --> 01:00:15,580 mint egy osztály, amit egy osztály valójában. 1078 01:00:15,580 --> 01:00:19,470 Mi lehet figyelmen kívül hagyni nagyrészt hogy egyelőre. 1079 01:00:19,470 --> 01:00:23,250 >> De észre, hogy már foglalt ezen belül a különböző dolgokat 1080 01:00:23,250 --> 01:00:27,720 hogy már láttuk, mint funkciók, amelyek konkrét neveket. 1081 01:00:27,720 --> 01:00:32,650 És amikor azt átadni ezeket funkcionál a helyes neveket 1082 01:00:32,650 --> 01:00:36,530 amelyek várhatóan iOS, sőt ez úgy érzi, egy kicsit varázslatos. 1083 01:00:36,530 --> 01:00:40,300 De amikor létrehoz egy iOS alkalmazás, ott 1084 01:00:40,300 --> 01:00:47,590 specifikus funkciót nevek hívja el magát a telefont 1085 01:00:47,590 --> 01:00:52,440 mivel az alkalmazás betöltése próbálni hogy megteremtse a folyamat, amely ténylegesen 1086 01:00:52,440 --> 01:00:54,787 fut az alkalmazás. 1087 01:00:54,787 --> 01:00:58,120 Tehát megint van egy csomó dolog, hogy én Van elkendőz ide, hogy a számunkra 1088 01:00:58,120 --> 01:01:00,570 erről beszélni konkrétan. 1089 01:01:00,570 --> 01:01:06,050 De azt javasoljuk, hogy nézd meg talán a másik iOS szeminárium, hanem néhány 1090 01:01:06,050 --> 01:01:09,290 Az oktatóanyagok online amely nem sokkal jobb munkát leírására 1091 01:01:09,290 --> 01:01:11,030 A konkrét információk. 1092 01:01:11,030 --> 01:01:15,760 >> De látjuk egy pár dolog, hogy Érdekes a kódot itt. 1093 01:01:15,760 --> 01:01:17,950 Figyeljük meg, hogy mi van, ha kimutatásokat. 1094 01:01:17,950 --> 01:01:20,400 Mellesleg, az egyik fontos dolog, ha nyilatkozatok 1095 01:01:20,400 --> 01:01:24,860 hogy zárójelbe kell tenni a Logikai kifejezést nem kötelező. 1096 01:01:24,860 --> 01:01:30,800 De a kapcsos zárójelek nem kötelező, nem számít, milyen kevés vagy sok sornyi kódot 1097 01:01:30,800 --> 01:01:32,360 Van egy if. 1098 01:01:32,360 --> 01:01:38,670 Nem lehet egy utasításból anélkül kapcsoszárójele a Swift. 1099 01:01:38,670 --> 01:01:41,000 >> És ez, nos, valami buta. 1100 01:01:41,000 --> 01:01:43,910 De van történelmi oka van. 1101 01:01:43,910 --> 01:01:46,180 Állítólag ez mentheti meg magát. 1102 01:01:46,180 --> 01:01:49,899 Ilyenek például, akkor nem megszünteti a kapcsos zárójelek körül, hogy 1103 01:01:49,899 --> 01:01:50,440 if. 1104 01:01:50,440 --> 01:01:52,730 Azok ugyanis szükség. 1105 01:01:52,730 --> 01:01:54,480 Így azt javasoljuk, hogy nézd meg ezt. 1106 01:01:54,480 --> 01:01:56,230 De van még egy megépíteni, hogy szeretnék 1107 01:01:56,230 --> 01:02:02,640 hogy mutassa meg arról, hogy a Swift az új Swift 2.0 képest 1108 01:02:02,640 --> 01:02:08,460 a régebbi verziójú Swift, amely a következő. 1109 01:02:08,460 --> 01:02:11,620 Lássuk, hol tettem itt? 1110 01:02:11,620 --> 01:02:16,630 >> Tehát ebben a nevezett funkció fetchJSON, ez a funkció 1111 01:02:16,630 --> 01:02:23,450 felelős húzás, hogy a JSON fájlt egy URL-t, ami csak azért történik, 1112 01:02:23,450 --> 01:02:26,310 hogy fut-e a CS50 IDE. 1113 01:02:26,310 --> 01:02:28,580 Én csak most kezdtem Apache, tette a JSON fájlban van, 1114 01:02:28,580 --> 01:02:32,110 és képes vagyok húzza, hogy adatokat az internet segítségével 1115 01:02:32,110 --> 01:02:36,430 Ezt a funkciót és ezt az URL, amely biztosítja a telefont. 1116 01:02:36,430 --> 01:02:40,490 Ez által nyújtott könyvtárat, amit használni 1117 01:02:40,490 --> 01:02:43,140 csinálsz néhány iOS app fejlődését. 1118 01:02:43,140 --> 01:02:49,690 >> Figyeljük meg, hogy itt van ez a szokatlan szintaktikai konstrukció nevű őr. 1119 01:02:49,690 --> 01:02:53,530 És tényleg ez mind a Swift egy módja annak ellenőrzése 1120 01:02:53,530 --> 01:02:56,870 hogy bizonyos dolgok teljesültek, mielőtt 1121 01:02:56,870 --> 01:03:00,000 folytassa a többi funkció. 1122 01:03:00,000 --> 01:03:04,260 Így tudtam volna, a ez opcionális típusú 1123 01:03:04,260 --> 01:03:10,530 Én találhatott volna az URL- fut ez NSURL funkció 1124 01:03:10,530 --> 01:03:16,640 és tárolása, hogy egy URL konstans, majd ellenőrzése 1125 01:03:16,640 --> 01:03:20,820 hogy ha URL nulla volt, mert fog visszatérni opcionális típusú. 1126 01:03:20,820 --> 01:03:25,660 És ha ez nulla volt, akkor azt nyomtassa ki a hibát, majd visszatér. 1127 01:03:25,660 --> 01:03:29,970 >> De ahelyett, hogy mi őr segítségével ránk az, hogy a dolog, 1128 01:03:29,970 --> 01:03:34,550 de annak biztosítása, hogy valójában a helyzet, hogy url 1129 01:03:34,550 --> 01:03:38,020 megfelelően lett beállítva a NSURL. 1130 01:03:38,020 --> 01:03:41,810 És ha ez, akkor átugorja ezt, és ez 1131 01:03:41,810 --> 01:03:46,110 lehetővé teszi, hogy folytassa url miután pontosan határozzák meg. 1132 01:03:46,110 --> 01:03:48,830 De ha ez a helyzet, hogy URL nem megfelelő meghatározása, 1133 01:03:48,830 --> 01:03:52,550 Ha a függvény hibát vagy más váratlan dolog 1134 01:03:52,550 --> 01:03:58,030 igaz, akkor ez az őr konstrukció lehetővé teszi számunkra, hogy majd a kimenetet, hogy hiba 1135 01:03:58,030 --> 01:04:00,390 és haladéktalanul térjen vissza. 1136 01:04:00,390 --> 01:04:00,890 Igen? 1137 01:04:00,890 --> 01:04:04,839 >> Közönség: Szóval ez a fajta A mint egy, ha majd mást? 1138 01:04:04,839 --> 01:04:07,130 DAN Armendariz: Elég mint egy, ha majd mást, igen, 1139 01:04:07,130 --> 01:04:14,200 kivéve, hogy ezen a cimen van, akkor meghatározott mindent ez alá. 1140 01:04:14,200 --> 01:04:20,420 Ha átmegy ez az őr, akkor majd ténylegesen tele adatok 1141 01:04:20,420 --> 01:04:29,500 és használható a fennmaradó forrás kódot a funkciót. 1142 01:04:29,500 --> 01:04:33,790 Szóval gyanítom, hogy meg fogsz kezdeni, hogy ez az őr is. 1143 01:04:33,790 --> 01:04:36,670 És tudatában kell lenniük, hogy. 1144 01:04:36,670 --> 01:04:46,270 >> Szóval csak néztem egy pár más dolgokat, ez itt a mi, 1145 01:04:46,270 --> 01:04:53,377 Mit gondol, csak az alapján, amit beszéltünk korábban? 1146 01:04:53,377 --> 01:04:56,650 >> Közönség: hiszem, hogy lesz futtatni a listán? 1147 01:04:56,650 --> 01:04:59,100 >> DAN Armendariz: Szóval ez közel. 1148 01:04:59,100 --> 01:05:02,360 Ez a funkció, hogy mi vagyunk meghatározó. 1149 01:05:02,360 --> 01:05:07,240 És mi megadásával, hogy a funkció érvként ezt a funkciót itt. 1150 01:05:07,240 --> 01:05:09,120 >> Közönség: [hallható], ha nem nulla. 1151 01:05:09,120 --> 01:05:11,470 Szóval ez a lista, ugye? 1152 01:05:11,470 --> 01:05:15,450 >> DAN Armendariz: Ha a hiba nem nulla, így is-- így kell görgetni. 1153 01:05:15,450 --> 01:05:18,060 Nos, lássuk, nem igazán tudok lapozzunk jobbra itt. 1154 01:05:18,060 --> 01:05:23,161 Hiba olyan érv, amely folyamatban van átadni ennek a névtelen függvényt. 1155 01:05:23,161 --> 01:05:24,410 Ez egy névtelen függvényt. 1156 01:05:24,410 --> 01:05:25,480 Nincs neve. 1157 01:05:25,480 --> 01:05:29,850 De fogadunk el ezt a három érvek, adatok, válasz, és a hiba. 1158 01:05:29,850 --> 01:05:33,590 És ez fog visszatérni nincsen, így ez nem fog visszatérni semmit. 1159 01:05:33,590 --> 01:05:37,910 És ez a tartalmát Az, hogy a funkció. 1160 01:05:37,910 --> 01:05:41,961 És akkor mi van belül, hogy hozzáférést függvény mindegyik érvet. 1161 01:05:41,961 --> 01:05:45,650 1162 01:05:45,650 --> 01:05:48,679 >> Szóval ez a forgószél túra a nyelvet. 1163 01:05:48,679 --> 01:05:50,470 De remélem, hogy ennek, remélhetőleg, ha megteszik 1164 01:05:50,470 --> 01:05:54,490 egy pillantást néhány tutorials jellemző iOS fejlesztés Swift, 1165 01:05:54,490 --> 01:05:57,481 különösen, ha elmész Apple fejlesztői web page-- 1166 01:05:57,481 --> 01:05:59,980 van egy csomó nagyon jó oktatóanyagok a kezdéshez. 1167 01:05:59,980 --> 01:06:05,010 De remélhetőleg csak ebben az órájában beszél a szintaxis maga adta 1168 01:06:05,010 --> 01:06:08,760 ha elég az induláshoz ezzel. 1169 01:06:08,760 --> 01:06:12,950 >> Fogunk elküldeni mindezt forrás kódot a szeminárium honlapján 1170 01:06:12,950 --> 01:06:17,800 a lehető leghamarabb, és szintén a tárgylemezeket így van egy hivatkozást mindazoknak. 1171 01:06:17,800 --> 01:06:20,530 De sok sikert a projekteket. 1172 01:06:20,530 --> 01:06:23,640 És köszönöm mindenkinek szépen jön. 1173 01:06:23,640 --> 01:06:26,990 >> [TAPS] 1174 01:06:26,990 --> 01:06:28,026