1 00:00:00,000 --> 00:00:03,332 >> [Mūzikas atskaņošanai] 2 00:00:03,332 --> 00:00:06,200 3 00:00:06,200 --> 00:00:09,590 >> DAN AMRMENDARIZ: Ikvienam, welcome uz CS50 seminārā, 4 00:00:09,590 --> 00:00:11,690 iOS App Development ar Swift. 5 00:00:11,690 --> 00:00:15,690 Es esmu Dan Armendariz, un es esmu skolotājs datorzinātņu šeit Hārvardā. 6 00:00:15,690 --> 00:00:21,510 >> Un nākamā stunda būs viesulis tūre tik daudz sīkumi 7 00:00:21,510 --> 00:00:25,160 par šo tēmu, kā mēs varam fit. 8 00:00:25,160 --> 00:00:29,170 Es post visas pirmkodu ka jūs redzēsiet šodien tiešsaistē. 9 00:00:29,170 --> 00:00:31,990 Mēs varētu nebūt spējīgs faktiski iet pāri visam 10 00:00:31,990 --> 00:00:34,810 ka es esmu, kas es esmu parādot jums šajā stundā. 11 00:00:34,810 --> 00:00:37,580 Bet vismaz cerams cauri komentāri par pirmkodu, 12 00:00:37,580 --> 00:00:40,830 jūs varēsiet mēģināt izdomāt, ko tieši notiek ar šīm lietām 13 00:00:40,830 --> 00:00:42,950 ka mums nav gluži nokļūt. 14 00:00:42,950 --> 00:00:46,970 >> Kopumā, struktūra šodienas diskusija būs šāda. 15 00:00:46,970 --> 00:00:52,820 Mēs sāksim ārā darīt dažas pamata sintakse ar Swift valodu, 16 00:00:52,820 --> 00:00:56,290 nonākšana daži no vairāk uzlabotas sintakse no Swift valodā. 17 00:00:56,290 --> 00:00:59,560 Jo valodā ir patiešām mūsdienīgs un to 18 00:00:59,560 --> 00:01:02,110 ir daudz augsta līmeņa funkcijas, lietas, kas mums ir ne 19 00:01:02,110 --> 00:01:06,600 redzams C visā CS50, vai Pat daži citās valodās 20 00:01:06,600 --> 00:01:09,310 ka mēs esam sākuši lietot CS50 piemēram PHP, 21 00:01:09,310 --> 00:01:12,670 tāpēc es esmu nāksies mēģināt ieviest arī dažas tēmas, kas 22 00:01:12,670 --> 00:01:18,580 ir saistīti ar augstāka līmeņa valodām ka jums nevar redzēt padziļināti CS50, 23 00:01:18,580 --> 00:01:21,380 bet jūs redzēsiet vēlāk datorzinātnes nodarbības. 24 00:01:21,380 --> 00:01:25,290 Tātad tas būs cieši saspiesti stundu. 25 00:01:25,290 --> 00:01:28,897 Un, lūdzu, let me zināt, ja jums ir kādi jautājumi. 26 00:01:28,897 --> 00:01:30,730 Tātad, ja jūs interesē darot attīstību 27 00:01:30,730 --> 00:01:34,442 ar Swift, vai tiešām jebkurš iOS app attīstība, 28 00:01:34,442 --> 00:01:35,900 tur ir pāris prasībām. 29 00:01:35,900 --> 00:01:39,940 Pirmkārt, jums ir jābūt, izmantojot Mac, darbojas piemēriem 30 00:01:39,940 --> 00:01:43,880 ka mēs gribam būt, izmantojot šodien, salīdzinoši jauna versija, OS 31 00:01:43,880 --> 00:01:46,580 X. Šajā gadījumā, es skrienu X 10.5. 32 00:01:46,580 --> 00:01:48,600 Jūs var darboties 10.11, ja vēlaties. 33 00:01:48,600 --> 00:01:52,430 Bet viss, kas jūs gatavojas skatīt iesaista Xcode 7 un vēlāk, 34 00:01:52,430 --> 00:01:56,271 kas ir jaunākā versija SWIFT, kas ir Swift 2.0. 35 00:01:56,271 --> 00:01:58,270 Tas ir faktiski diezgan būtiska atšķirība. 36 00:01:58,270 --> 00:02:01,510 A sintakse daudz ir mainījies diezgan būtiski 37 00:02:01,510 --> 00:02:05,890 dažos gadījumos no Swift 1,0, kas tika izlaists pagājušajā gadā, 38 00:02:05,890 --> 00:02:08,514 uz Swift 2.0, kas tikko iznāca šoruden. 39 00:02:08,514 --> 00:02:09,889 Tātad mēs ejam, lai parādītu Swift 2.0. 40 00:02:09,889 --> 00:02:13,020 Vairāki lietām daudz kas jūs meklēt tiešsaistē 41 00:02:13,020 --> 00:02:18,040 kad jūs mēģināt iegūt papildu informācija par dažādām lietām, 42 00:02:18,040 --> 00:02:20,710 Jūs varat skaidri meklēt Swift 2 43 00:02:20,710 --> 00:02:24,950 nevis tikai plain veco Swift, lai padarītu pārliecināts, ka jūs saņemsiet sintakse pareiza. 44 00:02:24,950 --> 00:02:26,920 >> Faktiski, tas parasti ir taisnība. 45 00:02:26,920 --> 00:02:31,210 Tur ir ātra daudzums attīstības notiek Swift valodā 46 00:02:31,210 --> 00:02:35,110 kopš Apple izlaida to, es domāju, ka ko, tas ir bijis nedaudz vairāk kā gadu 47 00:02:35,110 --> 00:02:36,370 tagad. 48 00:02:36,370 --> 00:02:39,080 Un viss ir mainījies dramatiski šajā laikā. 49 00:02:39,080 --> 00:02:42,160 Un tāpēc nevajag neapmierinātas ja, ja jūs meklējat apkārt 50 00:02:42,160 --> 00:02:48,310 par tēmām, par SWIFT vai kā paveikt kaut kas, izmantojot kādu piemēru kodu 51 00:02:48,310 --> 00:02:51,210 vai kaut ka tā nav faktiski strādā pie Swift 2.0. 52 00:02:51,210 --> 00:02:53,790 Pārliecinieties, ka jūs meklējat īpaši šim versiju 53 00:02:53,790 --> 00:02:58,690 lai mēģinātu samazināt ietekmi atšķirīgs versijas un tie veidu lietas. 54 00:02:58,690 --> 00:03:02,470 >> Es mēģināšu norādīt tikai dažas lietas kas atšķiras ar vecākām versijām. 55 00:03:02,470 --> 00:03:03,970 Bet tas ir kaut kas, lai noskatītos, kas paredzēti. 56 00:03:03,970 --> 00:03:06,770 Tas droši vien būs viena no lielākajām galvassāpēm 57 00:03:06,770 --> 00:03:11,010 ka jums būs ar Swift ir atrast piemērs kods, kas ir vecāka, pat tikai 58 00:03:11,010 --> 00:03:14,050 pēc dažiem mēnešiem, mēģinot izmantot tā savā modernāka projektu. 59 00:03:14,050 --> 00:03:15,430 Un tas vienkārši nedarbojas. 60 00:03:15,430 --> 00:03:18,530 Jūs saņemat kompilators kļūdas, sintakse kļūdas, visādi trakas lietas. 61 00:03:18,530 --> 00:03:21,580 Tik vienkārši esiet pacietīgi ar ka, un jums būs, cerams 62 00:03:21,580 --> 00:03:24,200 ir diezgan jauka pieredze ar Swift kopvērtējumā. 63 00:03:24,200 --> 00:03:28,430 >> Tagad jūs varat faktiski join-- un es ceru mēs faktiski joprojām ir šī šī year-- 64 00:03:28,430 --> 00:03:30,910 CS 50-Apple app attīstības komanda, kas 65 00:03:30,910 --> 00:03:34,680 ļaus Jums uzstādīt jebkuru progr kas jums izveidot jūsu iOS ierīcēm. 66 00:03:34,680 --> 00:03:39,190 Tātad to apskatīt šo URL, ja Jūs interesē darot to. 67 00:03:39,190 --> 00:03:41,450 >> Tātad tikai pāris lietas par Swift pati. 68 00:03:41,450 --> 00:03:43,580 Tas ir apkopota valoda. 69 00:03:43,580 --> 00:03:45,870 Bet jūs redzēsiet, ka daži no iezīmēm, ka mēs izmantojam 70 00:03:45,870 --> 00:03:50,650 ļauj to izmantot arī mazliet tāpat interpretēts veidā, kā arī. 71 00:03:50,650 --> 00:03:56,350 >> A sintakse daudz ir aizgūts no C. Tā ir balstīta un uzrakstīts C. 72 00:03:56,350 --> 00:04:00,400 Un tā mēs redzam, ka tur ir daudz takeaways 73 00:04:00,400 --> 00:04:04,450 no savas esošās zināšanas no C, ka mēs varam ostas SWIFT. 74 00:04:04,450 --> 00:04:07,290 >> Bet ir lietas, kas padara to ļoti atšķiras no C. 75 00:04:07,290 --> 00:04:08,860 Tas ir ļoti stingri drukāti. 76 00:04:08,860 --> 00:04:10,380 Tur ir automātiska atmiņas pārvaldība. 77 00:04:10,380 --> 00:04:13,170 Jūs neesat nāksies izmantot malloc vai bezmaksas visā. 78 00:04:13,170 --> 00:04:15,110 Tā ir paredzēta vispār. 79 00:04:15,110 --> 00:04:19,480 Tātad citiem vārdiem sakot, jūs varat izmantot to visu veidu kontekstos, no Apple Watch 80 00:04:19,480 --> 00:04:26,290 iPhone visu ceļu līdz OS X, un pat daži serveri, pat daži skriptu. 81 00:04:26,290 --> 00:04:28,400 Bet mēs redzam, ka atbalsts skriptu 82 00:04:28,400 --> 00:04:31,360 nav gluži tur vēl par tas ir arī citās valodās. 83 00:04:31,360 --> 00:04:34,930 Tātad, visticamāk, jūs izmantojat Tas vienīgi attīstībai 84 00:04:34,930 --> 00:04:37,060 uz jūsu Mac vai jūsu iPhone. 85 00:04:37,060 --> 00:04:40,150 >> Un tas ir daudz mūsdienīgas funkcijas. 86 00:04:40,150 --> 00:04:43,380 Un daudz no šīm lietām ir sīkumi, kas mēs ejam, lai mēģinātu risināt šodien, 87 00:04:43,380 --> 00:04:47,590 bet arī mūsu tēmas, kas atklāti, mēs varam veltīt visu kursu. 88 00:04:47,590 --> 00:04:50,140 Faktiski, CS 51, kas ir piedāvāja nākamajā semestrī, 89 00:04:50,140 --> 00:04:53,990 koncentrējas daudz par šīm tēmām kas ir aprakstīti zemāk. 90 00:04:53,990 --> 00:04:56,781 Tātad jūs varat pavadīt visu semestri izprast šīs lietas. 91 00:04:56,781 --> 00:04:58,530 Bet mēs esam gatavojas izmēģināt nokļūt caur tiem 92 00:04:58,530 --> 00:05:00,800 vismaz tik daudz, ka jums var saprast, kas ir 93 00:05:00,800 --> 00:05:03,700 notiek, ja paskatās pie Swift programmas 94 00:05:03,700 --> 00:05:07,310 un varēs kapāt savu ceļu caur to galīgajā projektā. 95 00:05:07,310 --> 00:05:10,780 >> Tagad viens no labākajiem veidiem, ka jūs varat iegūt papildu informāciju par šo 96 00:05:10,780 --> 00:05:14,700 ir atklāti tikai caur Apple nosacījumu dokumentāciju Swift. 97 00:05:14,700 --> 00:05:16,930 Tur ir daudz API kas ir pieejami. 98 00:05:16,930 --> 00:05:21,170 Un tas ir labs mājas bāzi par jums meklēt, konkrētām lietām, kas jums 99 00:05:21,170 --> 00:05:23,020 gribu darīt ar API iesaistot iOS. 100 00:05:23,020 --> 00:05:26,350 Ja vēlaties izmantot kameru Piemēram, jūs varat sākt meklēt šeit, 101 00:05:26,350 --> 00:05:32,540 un arī izmantot Google un kaudze Pārplūdes, kā Jūs parasti. 102 00:05:32,540 --> 00:05:36,670 >> Kādi jautājumi par šo pirms mēs lēkt tiesības? 103 00:05:36,670 --> 00:05:37,880 Viss kārtībā. 104 00:05:37,880 --> 00:05:38,700 Pieņemsim pāriet. 105 00:05:38,700 --> 00:05:42,620 >> Tātad, pirmkārt, man ir skaits piemēram failus. 106 00:05:42,620 --> 00:05:46,040 Un es esmu gatavojas, lai mēģinātu soli caur tiem salīdzinoši ātri. 107 00:05:46,040 --> 00:05:49,190 Tas ir Hello World fails Swift. 108 00:05:49,190 --> 00:05:51,050 Tas ir ļoti vienkārši. 109 00:05:51,050 --> 00:05:54,360 Tur ir daudz vairāk komentāri kā tur ir faktiskais kods. 110 00:05:54,360 --> 00:05:57,100 Ievērojiet faktiskais kods ir ļoti apakšējā rindā 14. 111 00:05:57,100 --> 00:05:57,980 Tajā teikts, drukāt. 112 00:05:57,980 --> 00:05:59,820 Un tad tas ir funkcija zvans. 113 00:05:59,820 --> 00:06:03,010 Mēs iet uz to stīgu sauc Sveiki CS50. 114 00:06:03,010 --> 00:06:04,750 Ievērojiet, ka tur nav semikoliem. 115 00:06:04,750 --> 00:06:07,010 Ievērojiet, ka tur nav int galvenais. 116 00:06:07,010 --> 00:06:10,392 Tur neviens no koda atlikumiem, kas mums bija ar C. 117 00:06:10,392 --> 00:06:15,020 Kad mēs izmantojam Swift šādā veidā, kas ir tikai uzrakstīts teksta failā 118 00:06:15,020 --> 00:06:18,340 un glabājas manā datorā, tad Es varu sastādīt un palaist to. 119 00:06:18,340 --> 00:06:20,920 >> Ievērojiet, ka šeit es esmu neizmantojot CS50 IDE. 120 00:06:20,920 --> 00:06:24,460 Tas paredz, ka es esmu darbojas un ka es esmu par OS X, 121 00:06:24,460 --> 00:06:27,870 un ka man ir Xcode jau uzstādītas par šo mašīnu, lai tas 122 00:06:27,870 --> 00:06:29,080 faktiski funkciju. 123 00:06:29,080 --> 00:06:33,349 Bet tas ir tikai normāla teksta failu ka mēs pēc tam var sastādīt un rediģēt. 124 00:06:33,349 --> 00:06:34,890 Tātad, pieņemsim redzēt, kā tas reāli darbojas. 125 00:06:34,890 --> 00:06:37,430 Ko darīt, ja es gribu, lai apkopotu to? 126 00:06:37,430 --> 00:06:40,450 swiftc 1.swift. 127 00:06:40,450 --> 00:06:42,960 Pēc brīža vai diviem, tas redzēs, ka mēs esam tagad 128 00:06:42,960 --> 00:06:45,360 apkopoti šī failā ar nosaukumu 1. 129 00:06:45,360 --> 00:06:51,090 Un tagad mēs esam uzdrukāts mūsu CS50, Mūsu Hello World pieteikums drīzāk. 130 00:06:51,090 --> 00:06:54,690 >> Ievērojiet viena cita lieta, jo labi ir tas, ka pēc noklusējuma, 131 00:06:54,690 --> 00:07:00,090 mums nebija ievade A / n izdrukāt jaunu līniju. 132 00:07:00,090 --> 00:07:05,315 Pēc noklusējuma, drukas funkcija Swift izdrukās jaunu līniju jums. 133 00:07:05,315 --> 00:07:09,284 Jūs varat nodot izvēles papildu parametrs pateikt to nedarīt. 134 00:07:09,284 --> 00:07:10,950 Bet Google, lai iegūtu vairāk informācijas par to. 135 00:07:10,950 --> 00:07:13,450 Pēc noklusējuma, tas būs jādara drukas līniju. 136 00:07:13,450 --> 00:07:16,420 >> Labi, tāpēc pieņemsim pāriet uz tad uz dažām citām lietām. 137 00:07:16,420 --> 00:07:18,620 Tātad, kā mēs varam faktiski definēt mainīgos? 138 00:07:18,620 --> 00:07:21,960 Mēs varam darīt, ir, izmantojot viena no divām metodēm. 139 00:07:21,960 --> 00:07:26,122 Un viens, ka es gribu jums pastāstīt Par pirmais ir tas pieņemsim definīcija. 140 00:07:26,122 --> 00:07:27,830 Un tas ir svarīgi jo efektīvi 141 00:07:27,830 --> 00:07:30,240 tas, ko mēs darām, ir definēt konstants. 142 00:07:30,240 --> 00:07:34,010 Mēs gatavojamies izveidot mainīgo, vai drīzāk konstante sauc vārds, 143 00:07:34,010 --> 00:07:38,200 nodrošināt to daži data-- in Šajā gadījumā, stīgu Dan. 144 00:07:38,200 --> 00:07:40,630 Taču, izmantojot šo let atslēgvārds, mēs sakām 145 00:07:40,630 --> 00:07:43,860 ka šis variable-- vai atkal constant-- sauc 146 00:07:43,860 --> 00:07:46,220 vārds nekad nebūs jāmaina. 147 00:07:46,220 --> 00:07:50,120 Tas būs jābūt nemainīgām visā ilgums šīs programmas 148 00:07:50,120 --> 00:07:53,100 vai visā ilgums kontekstā 149 00:07:53,100 --> 00:07:55,390 ka šis mainīgais ir pieejams. 150 00:07:55,390 --> 00:08:00,096 >> Tas ir ļoti svarīgi, ka tad, kad Jums ir daži dati, kas nav 151 00:08:00,096 --> 00:08:02,970 gatavojas mainīt savu programmu, un jūs redzēsiet dažādus piemērus 152 00:08:02,970 --> 00:08:06,790 par to, kad mēs vēlamies izmantot ļaujiet pret otras sintaksi, 153 00:08:06,790 --> 00:08:11,040 tas ir svarīgi, ka jūs izmantojat ļaut kur vien iespējams, jo šī Brīdina 154 00:08:11,040 --> 00:08:13,740 valodas, ka tas ir netiks mainīta, 155 00:08:13,740 --> 00:08:16,590 un tas faktiski var veikt daudz optimizācijas 156 00:08:16,590 --> 00:08:19,560 lai uzlabotu ātrumu un drošība jūsu programmā. 157 00:08:19,560 --> 00:08:24,480 Un ar drošību, es domāju ne let tas crash ar crazy kļūdām 158 00:08:24,480 --> 00:08:27,910 ka mēs varētu būt pieraduši redzēt C 159 00:08:27,910 --> 00:08:32,460 >> Tad mēs varam izmantot string interpolāciju rezumēju šo ietvaros virkni. 160 00:08:32,460 --> 00:08:35,200 Tātad, mēs varam redzēt šajā print līnija, drukāt hello, 161 00:08:35,200 --> 00:08:38,950 un tad, izmantojot slīpsvītru atvērtos parens, un tad nosaukums mana mainīgo, 162 00:08:38,950 --> 00:08:41,809 šajā gadījumā konstanti, aizveriet iekavas. 163 00:08:41,809 --> 00:08:46,400 Es esmu būtībā tad liekot saturs ir mainīgā sauc nosaukuma 164 00:08:46,400 --> 00:08:50,240 no virknes iekšā un pēc tam drukāšanas rezultātu tur. 165 00:08:50,240 --> 00:08:54,070 >> Ir viens otru izmaiņas šajā failā kas ir, ka man ir, pašā augšā, 166 00:08:54,070 --> 00:08:57,340 īstenot zaņķis līniju, kas būtībā tikai precizēts 167 00:08:57,340 --> 00:09:00,180 ka es vēlos izmantot Swift tulks, kas 168 00:09:00,180 --> 00:09:04,190 nozīmē, ka man vairs nav apkopot šo konkrēto programmu. 169 00:09:04,190 --> 00:09:06,567 Es varu tikai palaist to kā savu skriptu. 170 00:09:06,567 --> 00:09:09,400 Bet tas ir, šajā gadījumā, aiz ainas tiek apkopoti un pēc tam 171 00:09:09,400 --> 00:09:10,030 to palaist. 172 00:09:10,030 --> 00:09:13,540 Tas ir tikai neredzama mums. 173 00:09:13,540 --> 00:09:15,880 >> Labi, tāpēc pieņemsim pāriet. 174 00:09:15,880 --> 00:09:19,650 Tātad tur ir mazliet blēdība kas tikko notika pirms tam. 175 00:09:19,650 --> 00:09:23,230 Man parādīja, ka es varētu noteikt konstantu. 176 00:09:23,230 --> 00:09:25,490 Un es varētu sniegt dažus datus, lai to izdarītu. 177 00:09:25,490 --> 00:09:29,240 Bet šajā gadījumā, paziņojums, ka man nav faktiski norāda datu veidu 178 00:09:29,240 --> 00:09:29,820 ka tas ir. 179 00:09:29,820 --> 00:09:32,780 Un tas ir tāpēc, ka kompilatoru, Swift var 180 00:09:32,780 --> 00:09:36,910 secināt datu veidu tikai, pamatojoties uz datiem, kas man par to. 181 00:09:36,910 --> 00:09:41,760 Jo tas zina, ka, izvērtējot šo mainīgs tepat, šie dati tiesības 182 00:09:41,760 --> 00:09:43,370 šeit, tas zina, ka tas ir string. 183 00:09:43,370 --> 00:09:48,690 Un tā tas konstante nosaukums tādēļ ir būs virkni kā labi. 184 00:09:48,690 --> 00:09:52,730 >> Bet mēs varam būt arī skaidri par veidu, kas ir 185 00:09:52,730 --> 00:09:55,790 mēs gatavojamies izmantot konstantes vai mainīgie 186 00:09:55,790 --> 00:10:01,590 izmantojot šo sintaksi instead-- ļaujiet nosaukums resnās String vienāds 187 00:10:01,590 --> 00:10:05,530 Dan, kas šajā gadījumā nozīmē, ka mēs esam gatavojas noteikt nemainīgu sauc vārdu. 188 00:10:05,530 --> 00:10:07,150 Tas būs tipa String. 189 00:10:07,150 --> 00:10:10,550 Un vērtība būs Dan. 190 00:10:10,550 --> 00:10:12,550 Tagad cits veids, kas mēs varam izveidot variables-- 191 00:10:12,550 --> 00:10:15,549 un tie ir mainīgs mainīgie, kas nozīmē, ka mēs esam, patiesībā, dodoties 192 00:10:15,549 --> 00:10:19,670 mainīt to saturu dažkārt ilgumu, saistībā 193 00:10:19,670 --> 00:10:23,890 ka mainīgais defined-- mēs izmantot VAR atslēgvārdu nevis ļaut. 194 00:10:23,890 --> 00:10:27,400 Bet atkal, pēc noklusējuma, ja vien jūs zināt kas jums ir nepieciešams, lai manipulēt, ka dati, 195 00:10:27,400 --> 00:10:30,510 mēģināt izmantot ļaut, lai veiktspējas uzlabojumi. 196 00:10:30,510 --> 00:10:33,740 >> Šajā gadījumā, es var pēc tam norādīt datu tipu 197 00:10:33,740 --> 00:10:37,650 ka mēs sagaidām, ka iekšpusē Šī jaunā mainīgais sauc etiķete. 198 00:10:37,650 --> 00:10:38,800 Tas būs virkne. 199 00:10:38,800 --> 00:10:43,030 Un mēs ejam, lai pēc tam saķēdēt divas stīgas kopā, string hello, 200 00:10:43,030 --> 00:10:48,070 un string pārstāvēta ar mainīgs, vai drīzāk konstante nosaukums. 201 00:10:48,070 --> 00:10:50,660 >> Tātad, tas ir jauki, jo tas ir nedaudz PHP, piemēram, to, ka mums 202 00:10:50,660 --> 00:10:52,250 ir ļoti viegli string konkatenācija. 203 00:10:52,250 --> 00:10:56,350 Mums nav automātiski izmantot jebkāda veida atmiņas pārvaldība 204 00:10:56,350 --> 00:11:00,580 lai palielinātu izmēru un darīt jebkāda veida funny lietas tur. 205 00:11:00,580 --> 00:11:05,040 Tas darbojas kā mēs varētu reāli sagaidīt. 206 00:11:05,040 --> 00:11:09,370 >> Labi, kādi jautājumi par šo? 207 00:11:09,370 --> 00:11:12,520 >> Tagad cits iemesls, ka mums ir vajadzīga jums ir iespēja 208 00:11:12,520 --> 00:11:15,490 lai varētu noteikt, ko Datu mainīgo tips ir 209 00:11:15,490 --> 00:11:18,170 ir tāpēc, ka dažreiz mēs to nedarīsim vēlaties, lai sāktu mainīgos 210 00:11:18,170 --> 00:11:21,080 ar dažiem datiem tajā punkts definīcijas. 211 00:11:21,080 --> 00:11:23,500 Tātad šajā gadījumā, teiksim ka es vēlos sākt ievadījusi 212 00:11:23,500 --> 00:11:25,040 dažas pakāpes integrācijai klases grāmatu. 213 00:11:25,040 --> 00:11:27,530 Nu es zinu, ka viens no mainīgie, kas es gribu būt 214 00:11:27,530 --> 00:11:30,280 ir būs mainīgs pakāpes. 215 00:11:30,280 --> 00:11:33,010 Un mēs arī zinām, ka mēs vēlaties, lai to veselam skaitlim. 216 00:11:33,010 --> 00:11:36,030 Bet varbūt mēs to vēl nav ir pieejams, kas pakāpē. 217 00:11:36,030 --> 00:11:39,570 >> In Swift, jums ir definēt datu veidu 218 00:11:39,570 --> 00:11:44,000 kas ir saistīta ar mainīgais vai ļaut konstante 219 00:11:44,000 --> 00:11:47,840 Pirms jūs faktiski var izmantot šo mainīgo. 220 00:11:47,840 --> 00:11:51,170 Jo tas ir stipri drukāti, Jums ir saistīt tipa 221 00:11:51,170 --> 00:11:52,890 ar šiem mainīgajiem. 222 00:11:52,890 --> 00:11:56,120 >> Tātad šajā gadījumā, ja man nav pareizi inicializēts pirmais ar kādu vērtību, 223 00:11:56,120 --> 00:12:00,520 tad man ir nepieciešams, lai pastāstītu, ko Swift Es ceru, ka datu tips būt. 224 00:12:00,520 --> 00:12:02,650 Un tas notiek, lai paliek ka pats datu tips 225 00:12:02,650 --> 00:12:05,780 Visā vēsturē šīs programmas. 226 00:12:05,780 --> 00:12:10,050 >> Tagad jūs varētu būt kārdinājums, tiklīdz Esmu izveidojis šo klases mainīgo 227 00:12:10,050 --> 00:12:13,530 un ja tas ir skaitlis 100, tagad, ja I 228 00:12:13,530 --> 00:12:18,540 gribu mēģināt saķēdēt virkne ar šo skaitlim, 229 00:12:18,540 --> 00:12:21,610 varētu būt kārdinājums joprojām izmanto ka string konkatenācija operators 230 00:12:21,610 --> 00:12:24,500 tāpat kā mēs to darījām tikai dažas rindiņas pirms. 231 00:12:24,500 --> 00:12:26,460 Bet, diemžēl, Tas faktiski nav 232 00:12:26,460 --> 00:12:29,270 strādāt, jo jūs esat būtībā veicot 233 00:12:29,270 --> 00:12:32,380 darbība uz diviem dažādiem veidiem. 234 00:12:32,380 --> 00:12:36,856 >> Tagad tas ir ļoti atšķirīgs no citiem valodas, piemēram, PHP, kas ir patiešām 235 00:12:36,856 --> 00:12:38,480 loosey dumjš ar savu veida veidiem. 236 00:12:38,480 --> 00:12:40,030 Viņi tāpat kā, jā, kāds, man vienalga. 237 00:12:40,030 --> 00:12:42,710 Dāvini man vienu veidu, un varbūt es darīšu pareizi. 238 00:12:42,710 --> 00:12:46,060 >> Šajā gadījumā, Swift ļoti stingri par veidiem 239 00:12:46,060 --> 00:12:47,350 ka jums ir darīšana ar. 240 00:12:47,350 --> 00:12:50,700 Summēšanu operators vai konkatenācija operators 241 00:12:50,700 --> 00:12:54,400 ir būtībā pāris dažādas iespējas. 242 00:12:54,400 --> 00:12:56,970 Jūs varat darīt summēšanas ar veseliem skaitļiem, vai arī jūs 243 00:12:56,970 --> 00:13:00,870 var izdarīt virkni konkatenācija, un varbūt dažas citas lietas, kā arī. 244 00:13:00,870 --> 00:13:05,550 Bet, ja tas operators neatzīst to, kas ir uz katru pusi no tā, 245 00:13:05,550 --> 00:13:10,452 vai drīzāk uz tiem apvienošanas divi veidi, nav tas, ko tā gaida, 246 00:13:10,452 --> 00:13:11,910 tad tas būs radīt neveiksmes. 247 00:13:11,910 --> 00:13:16,690 >> Tātad šajā gadījumā, ko tas nozīmē lai būtu virkni plus vesels skaitlis? 248 00:13:16,690 --> 00:13:18,880 Nu kontekstā Tas, mēs, iespējams, vēlas 249 00:13:18,880 --> 00:13:21,990 darīt string konkatenācija darbību. 250 00:13:21,990 --> 00:13:26,420 Bet, protams, dators nav šāda veida kontekstā. 251 00:13:26,420 --> 00:13:29,950 Un tāpēc mums ir nepieciešams, lai nodrošinātu ka papildu informācija 252 00:13:29,950 --> 00:13:32,390 lai ļautu tai zināt, ko tas ir tā, ka mēs vēlamies darīt. 253 00:13:32,390 --> 00:13:36,860 >> Tātad citiem vārdiem sakot, to, ka Swift ir stipri drukāti 254 00:13:36,860 --> 00:13:39,520 nozīmē, ka jums ir jādara Mazliet papildu darbu 255 00:13:39,520 --> 00:13:42,100 lai saņemtu to, lai darbinātu veids, ka jūs vēlaties. 256 00:13:42,100 --> 00:13:43,710 Bet, kā rezultātā, tā ir drošāk. 257 00:13:43,710 --> 00:13:46,290 Un, kad jums ir jāņem vērā šiem tipiem, 258 00:13:46,290 --> 00:13:49,300 lietas vienkārši atklāti sākt strādāt diezgan labi. 259 00:13:49,300 --> 00:13:52,520 >> Tātad šajā gadījumā, mēs tad būtu veikt virkni konkatenācija 260 00:13:52,520 --> 00:13:56,040 nepārprotami liešana vesels skaitlis uz virkni 261 00:13:56,040 --> 00:13:58,490 ar ietīšanas to šajā kapitāls S String funkcija, 262 00:13:58,490 --> 00:14:03,510 un tad, izmantojot string konkatenācija operators, lai mainītu mūsu etiķetes mainīgo, 263 00:14:03,510 --> 00:14:06,280 un pēc tam to izdrukāt. 264 00:14:06,280 --> 00:14:08,420 >> Līdz šim tik labi? 265 00:14:08,420 --> 00:14:12,020 Labi, pieņemsim virzīties tālāk. 266 00:14:12,020 --> 00:14:16,300 >> Tagad tur ir dažādas datu veidi, ka mēs varam izmantot, jo SWIFT. 267 00:14:16,300 --> 00:14:21,620 Kā jūs esat pieraduši, mēs varam radīt mainīgu masīvu. 268 00:14:21,620 --> 00:14:26,140 Un tas masīvs var tikai satur viena veida. 269 00:14:26,140 --> 00:14:30,360 >> Tātad šajā gadījumā, mēs ejam, lai radītu a mainīgs bloki veseli skaitļi, kas 270 00:14:30,360 --> 00:14:34,800 mēs sauksim atzīmes, un mēs varēsim uzglabāt ka šajā kvadrātiekava 271 00:14:34,800 --> 00:14:38,650 formātu, kā jūs esat pieraduši uz dažādiem citiem valodu. 272 00:14:38,650 --> 00:14:41,150 Bet paziņo, ka šeit mēs esam definējot pāris lietas. 273 00:14:41,150 --> 00:14:45,350 pakāpes ir mainīgs variable-- mēs neizmanto Let atslēgvārdu. 274 00:14:45,350 --> 00:14:49,620 Tātad tas nozīmē, ka mēs varam, tad mainīt saturs šī masīva. 275 00:14:49,620 --> 00:14:53,420 Tas ir tipa Array Int, un mēs varam pateikt, ka 276 00:14:53,420 --> 00:14:56,260 pamatojoties uz šiem kvadrātiekavās šeit. 277 00:14:56,260 --> 00:14:58,930 >> Tagad viens no jaukas lietas par šo ir tas, ka mēs 278 00:14:58,930 --> 00:15:02,310 ir pieejams daudz Papildus informācija 279 00:15:02,310 --> 00:15:07,110 par masīva tikai izmantojot daži vienkārši dot apzīmējumu. 280 00:15:07,110 --> 00:15:10,500 Tā, piemēram, grades.count sniedz mums 281 00:15:10,500 --> 00:15:14,820 Vienību skaits, kas pastāv, ka masīvs, kuru mēs pēc tam var piekļūt diezgan 282 00:15:14,820 --> 00:15:19,090 viegli vienkārši izmantojot šo dot notācija. 283 00:15:19,090 --> 00:15:21,830 >> Ja vēlaties pievienot papildu priekšmeti uz šo masīva, 284 00:15:21,830 --> 00:15:27,220 Jūs nevarat darīt PHP stils kur tu tikko skaidri definēt, 285 00:15:27,220 --> 00:15:30,910 pie noteikta indeksa, daži vērtība ka vēlaties ievietot. 286 00:15:30,910 --> 00:15:37,210 Tā vietā, izmantojiet pievienošanu metode masīva tipa 287 00:15:37,210 --> 00:15:40,920 lai pievienotu šo posteni, 95, šim sarakstam. 288 00:15:40,920 --> 00:15:45,990 >> Tāpēc tagad šis masīvs ir šāds contents-- 100, 0, 90, 85. 289 00:15:45,990 --> 00:15:49,270 Un tagad mēs esam pievienoti 95. ka labi. 290 00:15:49,270 --> 00:15:51,830 >> Ir arī citi veidi mēs varam pievienot lietas. 291 00:15:51,830 --> 00:15:55,030 Jūs faktiski var izmantot sasummēt operators, 292 00:15:55,030 --> 00:15:59,200 kas tiks interpretēts kā masīvs Append operācija. 293 00:15:59,200 --> 00:16:04,680 Un jūs varat pievienot otru masīvs, kuru saturs ir 70 un 80, 294 00:16:04,680 --> 00:16:05,560 šai masīvs. 295 00:16:05,560 --> 00:16:08,250 Tāpēc tagad mums ir saturs šajā mainīgā 296 00:16:08,250 --> 00:16:17,220 grades-- 100, 0, 90, 85, 95, 70 un 80. 297 00:16:17,220 --> 00:16:21,850 Tas ir tikai jauka maz sintaktisko cukurs, ka Swift sniedz mums. 298 00:16:21,850 --> 00:16:23,850 >> Tātad, ja mēs gribam, lai summai pakāpes, mēs esam varbūt 299 00:16:23,850 --> 00:16:27,340 gatavojas vēlaties atkārtot pār katru posteni šajā cilpa. 300 00:16:27,340 --> 00:16:32,150 Un mums ir, jo Swift, jēdziens kādas cilpa, kā jūs varētu gaidīt. 301 00:16:32,150 --> 00:16:35,350 Bet tā, ka mēs norādītu diapazons ir nedaudz atšķirīgs. 302 00:16:35,350 --> 00:16:37,790 Tātad, šajā gadījumā, lai Rezumējot visu, mēs 303 00:16:37,790 --> 00:16:40,650 gatavojas izveidot pagaidu mainīgais sauc summa, lai par mums 304 00:16:40,650 --> 00:16:42,580 saglabāt šo skaitu. 305 00:16:42,580 --> 00:16:44,430 >> Un paziņojums mūsu för cilpa celtniecība šeit. 306 00:16:44,430 --> 00:16:46,820 Par indekss 0 .. 00:16:51,480 308 00:16:51,480 --> 00:16:57,390 Tātad šī konstrukcija, 0 .. 00:17:01,860 sakot, ka mēs gatavojamies radīt diapazons veseli skaitļi no 0 līdz 310 00:17:01,860 --> 00:17:05,750 neieskaitot grades.count. 311 00:17:05,750 --> 00:17:09,577 Tāpēc tas ir 0, 1, 2, 3, 4, 5, līdz tomēr daudzās vienu 312 00:17:09,577 --> 00:17:10,410 Pirms grades.count. 313 00:17:10,410 --> 00:17:14,160 >> Tātad tas ir savādāki nekā to, kā mēs būtu parasti izmanto cilpas 314 00:17:14,160 --> 00:17:18,569 kur jūs varētu būt dažas indekss mainīgais, kas to ir vienāda ar 0 sākumā, 315 00:17:18,569 --> 00:17:25,480 un tad integrēt ka līdz daži vērtība ir mazāka nekā elementu skaitu 316 00:17:25,480 --> 00:17:27,140 šajā masīvā. 317 00:17:27,140 --> 00:17:29,820 >> Tāpēc ir modifikācija tam, faktiski, 318 00:17:29,820 --> 00:17:35,010 kas ļauj ļoti viegli noteikt dažādu veidu diapazonu. 319 00:17:35,010 --> 00:17:40,570 Ja jūs mainīt šo diapazonu līdz trīs punkti, 0 ... grade.count, 320 00:17:40,570 --> 00:17:45,120 Tas ir diapazonā no 0 līdz grades.count ieskaitot, 321 00:17:45,120 --> 00:17:49,260 tas nozīmē, ka šis skaitlis ir arī tad iekļauta šajā diapazonā. 322 00:17:49,260 --> 00:17:52,110 >> Bet tas ir ļoti ērts Šo precīzu lietām, 323 00:17:52,110 --> 00:17:54,590 kad mums ir jāveic iterācijas nekā cilpa 324 00:17:54,590 --> 00:17:59,630 jo šie indeksi ir nulle indeksētas, kā mēs redzējām arī citās valodās 325 00:17:59,630 --> 00:18:02,360 arī. 326 00:18:02,360 --> 00:18:05,210 Visus jautājumus par šo par cilpu? 327 00:18:05,210 --> 00:18:10,660 >> Tātad tur ir netiešs definīcija Šā indeksa mainīgo, 328 00:18:10,660 --> 00:18:14,350 kuru vērtība sākas ar 0, un turpina ik cilpa atkārtojuma 329 00:18:14,350 --> 00:18:17,950 palielināt ar 1 līdz brīdim, kas ir vienāds ar grades.count, 330 00:18:17,950 --> 00:18:20,380 kurā brīdī, cilpa aborts. 331 00:18:20,380 --> 00:18:23,730 >> Ievērojiet, ka mūsu virknē interpolācija šeit, 332 00:18:23,730 --> 00:18:26,910 mēs faktiski var veikt dažas vienkāršas manipulācijas uz šīm vērtībām. 333 00:18:26,910 --> 00:18:31,230 Tātad indekss plus 1 patiešām veikt sasummēt šīs vērtības 334 00:18:31,230 --> 00:18:34,780 jo indekss ir, šajā gadījumā, vesels skaitlis. 335 00:18:34,780 --> 00:18:37,810 Un tajā brīdī, tā būs pēc tam pārvērš virkni 336 00:18:37,810 --> 00:18:42,230 un interpolē šajā virknē šeit, un izdrukāt, kā mēs varētu gaidīt. . 337 00:18:42,230 --> 00:18:44,520 >> Un jauka lieta par masīvu šeit ir 338 00:18:44,520 --> 00:18:50,730 ka mēs arī varētu būt Notiek vērtības un nosakot vērtības 339 00:18:50,730 --> 00:18:54,080 izmantojot kvadrātiekava notācija kā mēs esam redzējuši arī citās valodās, kā arī. 340 00:18:54,080 --> 00:18:57,130 341 00:18:57,130 --> 00:19:01,030 >> Labi, tāpēc no šejienes, mēs tagad aprēķināt mūsu summa visiem mūsu pakāpes. 342 00:19:01,030 --> 00:19:02,780 Tagad veida nākamais loģisks solis būtu 343 00:19:02,780 --> 00:19:07,580 darīt sadalīšanas darbību, lai atrastu out vidējo šīm atzīmēm. 344 00:19:07,580 --> 00:19:10,150 Bet kaut kas svarīgs Šeit notiek kas 345 00:19:10,150 --> 00:19:15,020 ir tas, ka šī summa ir varbūt vesels skaitlis. 346 00:19:15,020 --> 00:19:18,020 Bet mums ir nepieciešams veikt dažus kārtot dubultā sadalījumu. 347 00:19:18,020 --> 00:19:20,600 Un tas būs ārkārtīgi svarīgi, ja 348 00:19:20,600 --> 00:19:24,140 mēs gribam, lai veiktu šo darbību, jo tas, ko mēs sakām 349 00:19:24,140 --> 00:19:28,430 ir tas, ka mums ir nepieciešams, lai faktiski veikt sadalīšanu divos dubultspēlē. 350 00:19:28,430 --> 00:19:31,370 Un atkal, jo Swift ir ļoti stingri drukāti, 351 00:19:31,370 --> 00:19:36,760 mums ir skaidri noteikti visi priekšmeti līdz dubultspēlē Pirms mēs faktiski 352 00:19:36,760 --> 00:19:38,300 veikt šo darbību. 353 00:19:38,300 --> 00:19:40,550 >> Tātad, lai mums veikt dubultā sadalījumu, 354 00:19:40,550 --> 00:19:43,730 tas nav pietiekami, lai tikai viens Šo posteņu būt dubultā. 355 00:19:43,730 --> 00:19:46,400 Abas no tām ir jābūt dubultā Lai ātra 356 00:19:46,400 --> 00:19:50,860 lai pārliecinātos, ka tas ir tas, ko mēs vēlamies darīt. 357 00:19:50,860 --> 00:19:54,360 Tātad, mēs tam skaidri typecast summa, ko mēs esam aprēķināts iepriekš 358 00:19:54,360 --> 00:19:58,970 un skaits pakāpes līdz dubultspēlē, un tad veikt šo darbību un veikalu 359 00:19:58,970 --> 00:20:02,390 ka šajā jaunajā mainīgo, vai drīzāk Šī jaunā konstante sauc vidēji, 360 00:20:02,390 --> 00:20:06,810 kas būs kāda veida, jūs varat iedomāties? 361 00:20:06,810 --> 00:20:07,587 Double, jā. 362 00:20:07,587 --> 00:20:09,420 Tātad, šajā gadījumā, mēs nav norādīt to 363 00:20:09,420 --> 00:20:13,450 jo to var secināt no darbība, ko datu vidējā veids 364 00:20:13,450 --> 00:20:14,730 būs. 365 00:20:14,730 --> 00:20:19,025 Un Swift parasti ir diezgan laba Par to var secināt veidus. 366 00:20:19,025 --> 00:20:22,116 367 00:20:22,116 --> 00:20:24,200 >> Vai vēlaties redzēt šo palaist, vai es varu doties tālāk? 368 00:20:24,200 --> 00:20:25,640 Es gribu, lai saglabātu turpinās. 369 00:20:25,640 --> 00:20:28,130 Visus jautājumus par kādu no šo? 370 00:20:28,130 --> 00:20:28,630 Liels. 371 00:20:28,630 --> 00:20:31,160 372 00:20:31,160 --> 00:20:35,010 >> Tagad mēs esam gatavojas sākt, lai nokļūtu labie stuff-- definēšana funkcijas, 373 00:20:35,010 --> 00:20:39,090 un pāris citu veidu, kas ir unikāls Swift, ka jums ir ne 374 00:20:39,090 --> 00:20:41,620 redzams citās valodās līdz šim punktam, 375 00:20:41,620 --> 00:20:46,290 bet tās ir sastopamas citi valodas, kas jūs varētu atrast vēlāk. 376 00:20:46,290 --> 00:20:48,210 Tātad, pirmkārt, ja jūs vēlaties lai noteiktu funkciju, 377 00:20:48,210 --> 00:20:52,170 jūs definētu to ar bailīgs vārdu funkcija, un tad funkcija nosaukums, 378 00:20:52,170 --> 00:20:56,710 un tad iekavās argumenti ka jūs vēlaties, ka funkcija pieņemt. 379 00:20:56,710 --> 00:21:00,280 Šie argumenti ir arī specify-- generally-- 380 00:21:00,280 --> 00:21:05,010 jānorāda arī datu veidu, kas tie ir, ja tos var izsecināt. 381 00:21:05,010 --> 00:21:07,500 Un mēs redzam, ka maz caveat tikai mazliet. 382 00:21:07,500 --> 00:21:09,920 >> Tātad, šajā gadījumā mums ir funkcija sauc printGradeCount. 383 00:21:09,920 --> 00:21:12,840 Mēs ejam, lai pieņemt variable-- vai drīzāk šajā gadījumā, 384 00:21:12,840 --> 00:21:14,450 constant-- sauc gradebook. 385 00:21:14,450 --> 00:21:18,517 Un tas būs no tips masīvs integers. 386 00:21:18,517 --> 00:21:20,600 Tagad tur ir kaut kas tas ir patiešām svarīgi šeit 387 00:21:20,600 --> 00:21:21,849 ka es gribu, lai jūs saprastu,. 388 00:21:21,849 --> 00:21:27,560 Tas ir, ka pēc noklusējuma, šie argumenti kas dod ieguldījumu šīs funkcijas tiek 389 00:21:27,560 --> 00:21:34,380 definētas ar netiešu let atslēgvārdu, kas nozīmē, ka es nevaru mainīt šo 390 00:21:34,380 --> 00:21:39,850 gradebook mainīgais šeit. 391 00:21:39,850 --> 00:21:43,360 Un ka veida jēga, jo jūs iet dati. 392 00:21:43,360 --> 00:21:45,860 Un jūs, iespējams, nevēlaties to jānomaina no saskaņā ar jums. 393 00:21:45,860 --> 00:21:50,800 Tas ir iespējams skaidri minēt ka tas ir mainīgs lielums, liekot 394 00:21:50,800 --> 00:21:52,070 VAR atslēgvārds šeit. 395 00:21:52,070 --> 00:21:56,832 Bet tas ir gotcha ka mēs esam pamanījuši cilvēki ir darījuši pagātnē 396 00:21:56,832 --> 00:21:59,790 ir tas, ka viņi pieņēma, ka tas notiek būt mainīgs, kad, patiesībā, to 397 00:21:59,790 --> 00:22:02,640 ir nemainīgs. 398 00:22:02,640 --> 00:22:07,340 >> Visi pa labi, tā šeit tad, šajā gadījumā, mēs nenorādot nekādus atgriešanās veidu. 399 00:22:07,340 --> 00:22:09,460 Mēs jums parādīsim, kā to izdarīt ka tikai brīdi. 400 00:22:09,460 --> 00:22:12,340 Bet paziņo, ka šeit mēs esam tikai vienkāršs, ja stāvoklī. 401 00:22:12,340 --> 00:22:14,560 Ja gradebook ir tukšs, kas šajā gadījumā 402 00:22:14,560 --> 00:22:19,310 ir tikai īpašums šī skaitlim masīvs, tad mēs izdrukāt kaut ko. 403 00:22:19,310 --> 00:22:23,100 Pretējā gadījumā mēs darām kaut ko citu. 404 00:22:23,100 --> 00:22:25,000 >> Diezgan vienkārši līdz šim es domāju. 405 00:22:25,000 --> 00:22:27,960 Bet mani apturēt, ja jums ir kādi jautājumi. 406 00:22:27,960 --> 00:22:33,350 >> Tagad šī funkcija, vidējais, arī ņem daži argumenti, vai drīzāk viens arguments, 407 00:22:33,350 --> 00:22:37,507 kas ir gradebook, un šis laiks gatavojas atgriezties dubultu veidu. 408 00:22:37,507 --> 00:22:39,340 Jo tas ir skaitļošanas vidējā un tas ir 409 00:22:39,340 --> 00:22:45,010 gatavojas faktiski atgriezties ka aprēķinātā vidējā uz izsaucēja līnijas. 410 00:22:45,010 --> 00:22:50,070 >> Šajā gadījumā mēs norādīt atgriešanās veidu pēc bultiņu. 411 00:22:50,070 --> 00:22:53,260 Un tas varētu justies veida dīvaini sākumā. 412 00:22:53,260 --> 00:22:55,610 Jūs esat pieraduši lai nosakot peļņu 413 00:22:55,610 --> 00:22:57,720 ierakstiet pirms nosaukuma funkciju. 414 00:22:57,720 --> 00:23:00,310 Bet, ja jūs domājat par šo izteiksmē matemātikā, 415 00:23:00,310 --> 00:23:03,320 kā tad, kad jums ir matemātika kas definētu funkciju, 416 00:23:03,320 --> 00:23:06,807 Jums ir funkcija ar dažiem ieejas, un tā ražo produkciju. 417 00:23:06,807 --> 00:23:08,890 Un tas ir tieši tas Tas ir paredzēts, lai atdarinātu. 418 00:23:08,890 --> 00:23:12,460 Un tur ir pāris citās valodās kas ir līdzīga sintakse, kā arī, 419 00:23:12,460 --> 00:23:15,674 bet, iespējams, ka neviens jūs esat redzējuši CS50. 420 00:23:15,674 --> 00:23:17,090 Bet tomēr nevajag jaukt ar to. 421 00:23:17,090 --> 00:23:21,650 Bulta nozīmē to, kas notiek nosūta atpakaļ šajā gadījumā. 422 00:23:21,650 --> 00:23:23,650 Labi, tā kā mēs nokļūsim lai aprēķinātu šo vidējo? 423 00:23:23,650 --> 00:23:25,649 Nu, ja gradebook ir tukšs, arī tad mēs esam 424 00:23:25,649 --> 00:23:30,731 gatavojas atgriezties 0, kas varbūt saprātīgs veids, lai ārstētu to. 425 00:23:30,731 --> 00:23:32,980 Es nezinu, pieņemsim nākt atpakaļ, ka mazliet. 426 00:23:32,980 --> 00:23:34,688 Tas var reāli būt saprātīgs veids 427 00:23:34,688 --> 00:23:38,310 lai aprēķinātu vidēji ja mums ir tukša gradebook. 428 00:23:38,310 --> 00:23:41,260 >> Tad mēs vienkārši veikt mūsu summēšanas. 429 00:23:41,260 --> 00:23:43,900 Ievērojiet, ka šeit mēs faktiski ir aizstājēju versiju 430 00:23:43,900 --> 00:23:49,190 cilpa, kas ļauj mums atkārtot pār katru posteni masīva 431 00:23:49,190 --> 00:23:53,630 un novietot katru elementu savos mainīgo. 432 00:23:53,630 --> 00:23:56,200 Norādot uz pakāpē gradebook, ko mēs sakām 433 00:23:56,200 --> 00:24:00,560 ir tas, ka mēs ejam, lai netieši izveidot jaunu konstanti sauc 434 00:24:00,560 --> 00:24:05,180 pakāpe, kas gatavojas pārstāvēt katrs unikāls postenis gradebook 435 00:24:05,180 --> 00:24:06,769 katru reizi, ka par cilpa vairākkārt uzsvērts. 436 00:24:06,769 --> 00:24:08,560 Tātad pirmo reizi, ka tas ir palaist, grade būs 437 00:24:08,560 --> 00:24:09,800 ir pirmais postenis gradebook. 438 00:24:09,800 --> 00:24:12,300 Otro reizi tas būšu Otrais punkts, tā tālāk un tā tālāk 439 00:24:12,300 --> 00:24:15,970 līdz gradebook ir izsmēlusi sevi no elementiem. 440 00:24:15,970 --> 00:24:20,390 Tad mēs varēsim summa, kas grade mūsu summēts mainīgo 441 00:24:20,390 --> 00:24:22,570 un atgriezties mūsu vidējais kā mēs esam redzējuši iepriekš. 442 00:24:22,570 --> 00:24:25,670 443 00:24:25,670 --> 00:24:26,950 OK, kādi jautājumi? 444 00:24:26,950 --> 00:24:27,699 Jā? 445 00:24:27,699 --> 00:24:28,990 Mērķauditorija: Man ir divi jautājumi. 446 00:24:28,990 --> 00:24:33,586 Numur viens, hipotētiski, var palaižot skaitlim par šo vienu? 447 00:24:33,586 --> 00:24:35,604 Vai nav jābūt dubultā, ir tas, ka ir pareizi? 448 00:24:35,604 --> 00:24:37,520 DAN AMRMENDARIZ: Vai jūs varat atkārtot šo jautājumu? 449 00:24:37,520 --> 00:24:39,587 Mērķauditorija: Es varu darīt vesels skaitlis kā vidējo? 450 00:24:39,587 --> 00:24:41,670 DAN AMRMENDARIZ: Vai jūs varat darīt skaitlim kā vidēji? 451 00:24:41,670 --> 00:24:45,015 Tātad atgriezties vesels skaitlis vidējais nevis dubultā? 452 00:24:45,015 --> 00:24:48,204 >> Mērķauditorija: Return-- tevi ir, ka tieši tagad zemāk. 453 00:24:48,204 --> 00:24:49,870 DAN AMRMENDARIZ: Tepat, atgriezties 0,0? 454 00:24:49,870 --> 00:24:51,790 Mērķauditorija: Jā, vienkārši atgriezties 0. 455 00:24:51,790 --> 00:24:56,590 Tātad tas būs vai nu 80 vai 85, bet ne 85.2. 456 00:24:56,590 --> 00:24:59,465 >> DAN AMRMENDARIZ: Tātad šajā gadījumā, tāpēc tur ir pāris dažādos veidos 457 00:24:59,465 --> 00:25:00,090 atbildēt, ka. 458 00:25:00,090 --> 00:25:02,760 Ļaujiet man atbildēt tos kārtībā. 459 00:25:02,760 --> 00:25:06,740 Tātad, ja es tikai veikt šo deklarāciju 0, 0 ir vesels skaitlis vērtība. 460 00:25:06,740 --> 00:25:09,730 Un tā, ka būs izraisīt tips kļūda šajā lietā 461 00:25:09,730 --> 00:25:13,210 jo tas ir gaida dubultā bet pēc tam atgriežas vesels skaitlis. 462 00:25:13,210 --> 00:25:16,770 Ja es gribu, lai atgrieztos vesels skaitlis, es varu. 463 00:25:16,770 --> 00:25:20,450 Es varu noteikt atgriešanās veidu int, atgriezties 0 šeit, 464 00:25:20,450 --> 00:25:22,047 un neveic dubultu sadalījumu. 465 00:25:22,047 --> 00:25:23,880 Bet tad mēs būtu darot skaitlim sadalījumu. 466 00:25:23,880 --> 00:25:27,080 Un tā mēs tad nevarētu iegūt Vidējais ka mēs, iespējams, varētu sagaidīt. 467 00:25:27,080 --> 00:25:29,210 Bet jā, mēs varam mainīt veidi šādā veidā. 468 00:25:29,210 --> 00:25:32,598 >> Mērķauditorija: Un, otrkārt, jūs ir viens Double uz augšu. 469 00:25:32,598 --> 00:25:35,502 Bet lejā, kad jūs do atgriezties Double Double, 470 00:25:35,502 --> 00:25:38,280 tas jau automātiski atgriežoties Double formātā. 471 00:25:38,280 --> 00:25:42,278 Kāpēc jums joprojām ir nepieciešams definēt ar bultiņu uz augšu ar dubultu? 472 00:25:42,278 --> 00:25:45,010 >> DAN AMRMENDARIZ: So gadījumā, tā ir daļa 473 00:25:45,010 --> 00:25:50,580 no the-- tik atkārtot jautājumu, jo tas netieši no atgriešanās 474 00:25:50,580 --> 00:25:56,030 veidi šeit, kāda veida tas patiesībā ir, mums ir nepieciešams, lai būtu skaidri ar Swift 475 00:25:56,030 --> 00:25:59,970 par to, ko mēs gribam atgriezīsies no šīs funkcijas 476 00:25:59,970 --> 00:26:02,690 lai tad, kad tā pilda tips pārbaudi, tā var pārliecināties, 477 00:26:02,690 --> 00:26:05,850 ka tas, ko mēs esam patiesībā rakstīts lejā faktiski atbilst to. 478 00:26:05,850 --> 00:26:10,225 Tātad, tas ir sava veida kā čeka ar sevi veida situācijas. 479 00:26:10,225 --> 00:26:11,050 Bet tur are-- 480 00:26:11,050 --> 00:26:12,560 >> Mērķauditorija: [dzirdams] arrow? 481 00:26:12,560 --> 00:26:19,490 >> DAN AMRMENDARIZ: Ir gadījumi, kad mēs varam norādīt, ka mēs varam netieši 482 00:26:19,490 --> 00:26:21,550 iestatīt atgriešanās veidu. 483 00:26:21,550 --> 00:26:23,940 Bet šajā gadījumā, man nav domāju, ka varētu strādāt. 484 00:26:23,940 --> 00:26:26,190 Tur ir daži citi sintakse ka mēs redzēsim vēlāk. 485 00:26:26,190 --> 00:26:30,320 486 00:26:30,320 --> 00:26:35,280 >> Labi, tāpēc šī avota kods ir mazliet atšķirīgs 487 00:26:35,280 --> 00:26:41,839 jo šis parses argumentus no funkcija, ko mēs esam zvana. 488 00:26:41,839 --> 00:26:44,130 Ļaujiet man parādīs, kā tā darbojas pirms mēs faktiski pāriet uz 489 00:26:44,130 --> 00:26:48,050 lai dažas interesantas lietas kas notiek Swift. 490 00:26:48,050 --> 00:26:51,870 >> Tātad šajā gadījumā, ja es vienkārši palaist šo kods, ievērosiet, ka tas, ko tā dara 491 00:26:51,870 --> 00:26:54,900 is-- bet, tā veida dod man dīvaini kļūda. 492 00:26:54,900 --> 00:26:59,730 Man vajag, lai nodot to pāris skaitļu kā komandrindas argumentu. 493 00:26:59,730 --> 00:27:06,220 Tātad, pieņemsim redzēt, 150 un 80, un hit Enter lai uzzinātu, kas tas patiesībā dara. 494 00:27:06,220 --> 00:27:09,890 Tas ir pieņemot katra šīs vērtības kā veseli skaitļi. 495 00:27:09,890 --> 00:27:12,040 Tas ievadot tos gradebook. 496 00:27:12,040 --> 00:27:14,470 Un tad tas ir veic ka vidējais aprēķins 497 00:27:14,470 --> 00:27:16,650 un izvadi, ka mēs varētu gaidīt. 498 00:27:16,650 --> 00:27:19,950 >> Bet acīmredzot tur ir kaut kas notiek ar šo noraidīts kaut ko 499 00:27:19,950 --> 00:27:23,300 kaut kā veselam skaitlim. 500 00:27:23,300 --> 00:27:27,300 Kā jūs varētu atgādināt no brīža, kad mēs bijām nodarbojas ar komandrindas argumentus 501 00:27:27,300 --> 00:27:32,640 C un citās valodās, ļoti pirmais 0-th prece šajā komandrindas argumentu 502 00:27:32,640 --> 00:27:35,774 saraksts ir nosaukums komandu ka mēs faktiski izpildīts. 503 00:27:35,774 --> 00:27:38,690 Tātad šajā gadījumā, es esmu tikai looping pār visiem komandrindas argumentus. 504 00:27:38,690 --> 00:27:41,650 Bet es to nedaru jebkādu iedomātā pārbaudiet, izlaist, ka pirmo. 505 00:27:41,650 --> 00:27:45,920 Es esmu tikai tieši vai es esmu netieši pārbaudi, kas no šiem tipiem 506 00:27:45,920 --> 00:27:49,900 ir veseli skaitļi pirms es tiešām veikt šo aprēķinu. 507 00:27:49,900 --> 00:27:52,420 >> Un tas ir būtiski kas notiek šeit. 508 00:27:52,420 --> 00:27:55,860 Par katru argumentu Process argumenti, 509 00:27:55,860 --> 00:27:59,210 Es esmu gatavojas veikt kādu pārbaudi. 510 00:27:59,210 --> 00:28:01,970 Un šajā gadījumā, es esmu, mēģināt vispirms konvertēt 511 00:28:01,970 --> 00:28:07,620 ka arguments par skaitlim ar veicot skaidru typecast, 512 00:28:07,620 --> 00:28:12,310 jo tas ir, par ieejas, virkne un faktiski nav vesels skaitlis. 513 00:28:12,310 --> 00:28:18,140 >> Bet tas ir sava veida dīvaini sintaksi, ja pieņemsim grade vienāds Int (arguments). 514 00:28:18,140 --> 00:28:21,120 Kas patiesībā notiek šeit ir ārkārtīgi 515 00:28:21,120 --> 00:28:24,390 svarīgi, lai jūsu izmantojot SWIFT. 516 00:28:24,390 --> 00:28:27,610 Tas ir, izmantojot to, kas ir sauc izvēles veids. 517 00:28:27,610 --> 00:28:34,790 >> Tātad šī funkcija, Int (arguments), atgriež ne tikai skaitli, bet atgriežas 518 00:28:34,790 --> 00:28:37,470 ko sauc izvēles skaitlis. 519 00:28:37,470 --> 00:28:41,200 Un tā tas ir sava veida tipa virsū tipa. 520 00:28:41,200 --> 00:28:45,900 Jūs varat kārtot iedomāties to kā tas atgriežas kā paketi. 521 00:28:45,900 --> 00:28:47,750 Un, atverot ka paketi, tas nu 522 00:28:47,750 --> 00:28:53,930 ir vesels skaitlis, kas ir rezultāts, vai tas ir absolūti neko to visu. 523 00:28:53,930 --> 00:28:58,140 Un tas ir noderīgs kā kļūdu pārbaudi mehānisms, jo šajā gadījumā 524 00:28:58,140 --> 00:29:02,080 mēs varam uzzināt, bija tas tipu konvertēšanas veiksmīgs? 525 00:29:02,080 --> 00:29:05,810 Ja tas bija, tad tas ir faktiski nāksies vesels skaitlis iekšpusē. 526 00:29:05,810 --> 00:29:08,750 Pretējā gadījumā tas notiek, ir dažas vērtība, ka mēs saucam nulle, kas 527 00:29:08,750 --> 00:29:10,920 tiek uzrādīts nav skaitlim vispār. 528 00:29:10,920 --> 00:29:13,270 Tas ir patiešām pārstāvis neko. 529 00:29:13,270 --> 00:29:18,130 >> Un tā tas, ja būvniecība ļauj mums iztīt šo paketi, 530 00:29:18,130 --> 00:29:19,850 ka obligāts saistoši. 531 00:29:19,850 --> 00:29:25,560 Un, ja mēs varam iztīt ka paketes un atrast skaitli iekšā, 532 00:29:25,560 --> 00:29:27,720 tad ko mēs sakām šeit ir tas, ka mēs pēc tam 533 00:29:27,720 --> 00:29:33,090 pieļauj, ka vērtība, kas tiktu iekļauts šī konstante sauc pakāpes. 534 00:29:33,090 --> 00:29:36,590 Un šī daļa, ja paziņojums, augšējā daļa, ja paziņojums 535 00:29:36,590 --> 00:29:40,390 darbosies, jo tas Izņemiet bija veiksmīga. 536 00:29:40,390 --> 00:29:43,290 >> Ja tas tikai tā notiek, ka tur bija kļūda, iespējams, 537 00:29:43,290 --> 00:29:47,040 Šajā skaidri tipa pārveidi no virknes līdz veselam skaitlim, varbūt 538 00:29:47,040 --> 00:29:49,160 tas ir vērtība ABC piemēram. 539 00:29:49,160 --> 00:29:52,120 Un tas tiešām nav dodas pārvērst līdz veselam skaitlim. 540 00:29:52,120 --> 00:29:55,520 Tad tas atgriezīsies nulle, kas nav vesels skaitlis. 541 00:29:55,520 --> 00:29:57,570 Un tas, ja apgalvojums labi, tad neizdodas. 542 00:29:57,570 --> 00:30:01,930 grade nebūs, jo tas nav vesels skaitlis saturu. 543 00:30:01,930 --> 00:30:06,391 Un tas darbosies šis cits bloku vietā. 544 00:30:06,391 --> 00:30:06,890 Jā? 545 00:30:06,890 --> 00:30:09,652 >> AUDITORIJA: Nil ir N-I-L? 546 00:30:09,652 --> 00:30:11,110 DAN AMRMENDARIZ: nulle ir N-I-L, jā. 547 00:30:11,110 --> 00:30:14,970 548 00:30:14,970 --> 00:30:20,310 >> Tāpēc tas ir iespējams, viens no vissmagāk lietas par SWIFT, 549 00:30:20,310 --> 00:30:23,690 jo īpaši, ja tu esi nezāles uz iOS app 550 00:30:23,690 --> 00:30:27,442 un jūs faktiski cenšas darīt kādu attīstību tur. 551 00:30:27,442 --> 00:30:29,400 Tas būs kliegt pie jums par izvēles. 552 00:30:29,400 --> 00:30:33,050 Tas būs lūdzot jums jautājuma zīmes un izsaukuma zīmes. 553 00:30:33,050 --> 00:30:37,100 Bet tad, kad jūs skaitlis out-- ja jums veltīt kādu laiku, lai norādītas 554 00:30:37,100 --> 00:30:41,990 kas notiek ar papildu veidiem, jūs ietaupīsiet sev daudz galvassāpju 555 00:30:41,990 --> 00:30:46,040 kā jūs mēģināt uzrakstīt app Swift. 556 00:30:46,040 --> 00:30:47,660 >> Tas patiesībā ir ļoti spēcīgs līdzeklis. 557 00:30:47,660 --> 00:30:49,826 Un jums vienkārši ir ņem manu vārdu par to tagad. 558 00:30:49,826 --> 00:30:52,620 Bet mēs redzēsim šo būvniecību un daži citi tas patīk 559 00:30:52,620 --> 00:30:56,740 dažās no otras avota kodu, kas mēs jums parādīsim tikai mazliet. 560 00:30:56,740 --> 00:31:00,440 >> Vai ir kādi sākotnējie jautājumi šeit? 561 00:31:00,440 --> 00:31:03,790 562 00:31:03,790 --> 00:31:08,690 Tāpēc svarīgi takeaway ir tāds, ka izvēles veids ir sava veida metatype. 563 00:31:08,690 --> 00:31:12,500 Tā nu ir vērtība, un, ja tas tā ir, tad tas 564 00:31:12,500 --> 00:31:18,110 varbūt ir, ka vērtību, kas saistīta ar to, vai arī tam nav nekādas vērtības whatsoever, 565 00:31:18,110 --> 00:31:19,620 un to pārstāv nulli. 566 00:31:19,620 --> 00:31:24,210 567 00:31:24,210 --> 00:31:28,870 Šīs pārējais ir iespējams kā jūs varētu gaidīt. 568 00:31:28,870 --> 00:31:32,900 >> Tātad pieņemsim perona līdz grūtības atkal. 569 00:31:32,900 --> 00:31:37,070 Un šoreiz, pieņemsim to apskatīt dažus citi datu veidi, kas faktiski pastāv. 570 00:31:37,070 --> 00:31:41,290 Viens no tiem ir vārdnīcas, kas ir ļoti līdzīgs Python vārdnīcām. 571 00:31:41,290 --> 00:31:48,270 Tas ir nedaudz līdzīgs hash tabulu C. Tā būtībā ir kartēšana taustiņiem 572 00:31:48,270 --> 00:31:49,820 kur atslēgas var būt stīgas. 573 00:31:49,820 --> 00:31:52,670 Un, kad jūs meklēt šos taustiņus, šie taustiņi būs vērtība. 574 00:31:52,670 --> 00:31:56,020 Tātad, tas nav gluži masīvs, bet vietā, ciešāk saistīta 575 00:31:56,020 --> 00:31:58,810 uz hash karti vai hash tabulu. 576 00:31:58,810 --> 00:32:02,420 >> Let 's redzēt, kā tas ir paredzēts strādāt pirms mēs faktiski 577 00:32:02,420 --> 00:32:05,210 iedziļināties pirmkodu pati. 578 00:32:05,210 --> 00:32:07,680 Ja es vienkārši palaist šo, nekas īsti notiek. 579 00:32:07,680 --> 00:32:12,430 Tas stāsta man, ka es esmu gaidījis daži parametri šāda veida. 580 00:32:12,430 --> 00:32:16,050 Tāpēc es esmu gatavojas sniegt tas dažas problēma noteikti vārdi, 581 00:32:16,050 --> 00:32:18,490 tā pset0, varbūt es saņēmu 100. 582 00:32:18,490 --> 00:32:20,790 Un pset1, es saņēmu 5. 583 00:32:20,790 --> 00:32:24,630 Un tad uz eksāmenu, es bija tiešām labi un ieguva 30. 584 00:32:24,630 --> 00:32:27,180 Un Ups, es hit atstarpi šeit. 585 00:32:27,180 --> 00:32:30,940 >> Kad es hit Enter, jūs varat redzēt tā veic kādu aprēķinu. 586 00:32:30,940 --> 00:32:33,740 Tajā teikts gradebook ir trīs pakāpes, pset1, pset0, eksāmens. 587 00:32:33,740 --> 00:32:36,120 Un gradebook ir šo īpašo vidēji. 588 00:32:36,120 --> 00:32:38,370 Tātad atkal, mēs strādājam ar šo gradebook ideju, 589 00:32:38,370 --> 00:32:44,650 bet mēs ejam, lai turpinātu atkārtojot ar sarežģītību mūsu funkciju. 590 00:32:44,650 --> 00:32:47,650 >> Tātad pie sākuma, mēs esam tikai notiek, lai izveidotu funkciju, kas 591 00:32:47,650 --> 00:32:49,390 ir atbildīga par drukāšanu izmantošanu. 592 00:32:49,390 --> 00:32:51,920 Un tur ir tas iziet funkcija, kas tikko 593 00:32:51,920 --> 00:32:53,710 ar varu atmest pieteikumu. 594 00:32:53,710 --> 00:32:56,530 Tas nav kaut kas jūs izmantosiet iOS app. 595 00:32:56,530 --> 00:32:59,750 Tas ir tikai, šajā gadījumā, ar komandrindas argumentu. 596 00:32:59,750 --> 00:33:01,990 Tālāk mēs sāksim virzās uz Xcode. 597 00:33:01,990 --> 00:33:07,760 Bet tas ir īpašs ar komandu line style programma Swift. 598 00:33:07,760 --> 00:33:11,490 >> Pieņemsim to apskatīt dažas no interesantas lietas šeit. 599 00:33:11,490 --> 00:33:15,150 Let 's redzēt, tikai pāris interesantas lietas pieminēt varbūt 600 00:33:15,150 --> 00:33:19,930 ir tas, ka manā funkciju drukāšanas skaitu pakāpēm, 601 00:33:19,930 --> 00:33:26,090 jūs varētu atgādināt, ka man bija, ka sarakstu no items-- pset1, pset0 un eksāmenu. 602 00:33:26,090 --> 00:33:29,130 Jūs faktiski var ātri un viegli izdarīt 603 00:33:29,130 --> 00:33:34,490 , ņemot gradebook, kas ir vārdnīca, kas ir atslēgas un vērtības. 604 00:33:34,490 --> 00:33:38,730 Atrast visi no atslēgas ir caur Dot atslēgas metode šeit, 605 00:33:38,730 --> 00:33:43,180 un pēc tam izmantot šo joinWithSeparator, kas pēc tam veikt visas atslēgas 606 00:33:43,180 --> 00:33:48,590 ka mums bija drukāti, pset1-- vai sorry, pset0, pset1, un exam-- 607 00:33:48,590 --> 00:33:53,030 un saķēdēt tos kopā izmantojot komatu un atstarpi 608 00:33:53,030 --> 00:33:55,400 izveidot vienu garu virkni. 609 00:33:55,400 --> 00:34:00,190 Tas pievienoties operācija ir tikai fenomenāli noderīga dažādos kontekstiem. 610 00:34:00,190 --> 00:34:03,450 Un tā tas ir šajā joinWithSeparator. 611 00:34:03,450 --> 00:34:06,939 >> Un šī ir viena lieta, kas ir mainīts no Swift 1. līdz Swift 2. 612 00:34:06,939 --> 00:34:08,730 Tur izmanto, lai būtu Python style-- ja esat 613 00:34:08,730 --> 00:34:13,219 iepazinušies ar Python-- Python style pievienoties metodi stīgām. 614 00:34:13,219 --> 00:34:15,699 Bet kas vairs nav gadījums Swift 2. 615 00:34:15,699 --> 00:34:19,400 Jūs vēlaties izmantot šo, ja vēlaties saķēdēt masīvu sīkumi 616 00:34:19,400 --> 00:34:23,380 kopā ar virkni. 617 00:34:23,380 --> 00:34:27,889 >> Tāpēc varbūt tad mūsu diskusija par vidēji pirms, 618 00:34:27,889 --> 00:34:32,659 tas padara mazliet lielāka jēga mums noteikt vidējo funkciju 619 00:34:32,659 --> 00:34:36,610 būt iespējamu divkāršu drīzāk nekā tikai skaidri Double. 620 00:34:36,610 --> 00:34:39,239 Jo mums bija, ka neparasts stāvoklis, kad, 621 00:34:39,239 --> 00:34:41,550 Ko darīt, ja gradebook faktiski nav vērtības, tajā? 622 00:34:41,550 --> 00:34:44,280 Kas būtu vidējā peļņa? 623 00:34:44,280 --> 00:34:46,350 >> Nu varbūt C jūs būtu darījis kaut ko 624 00:34:46,350 --> 00:34:50,040 tāpat sniedza Sentinel vērtība, piemēram, 0.0, vai varbūt negatīvs skaitlis, 625 00:34:50,040 --> 00:34:53,690 vai kaut ko vienkārši pārstāv faktu ka tur bija dažas kļūdas stāvoklis 626 00:34:53,690 --> 00:34:57,910 un jūs, iespējams, nav faktiski ir spēja aprēķināt šo vidējo. 627 00:34:57,910 --> 00:35:05,590 Nu skaistums, kuros paredzēts izvēles veids būtu to darīt. 628 00:35:05,590 --> 00:35:09,540 Un es esmu tagad saka visus šos vārdus, bet tas faktiski neizmanto optionals. 629 00:35:09,540 --> 00:35:12,970 Bet mēs redzam, ka tikai minutes kur mēs varam noteikt vidējo 630 00:35:12,970 --> 00:35:17,230 būt obligāta datu tips, lai ja tas tiešām atgriež dažus datus, tad 631 00:35:17,230 --> 00:35:18,470 mēs atgriezīsimies, ka dati. 632 00:35:18,470 --> 00:35:20,570 Pretējā gadījumā mēs atgriezīsimies nulle, sakot, ka šis 633 00:35:20,570 --> 00:35:22,200 nav jēgpilna aprēķinu. 634 00:35:22,200 --> 00:35:25,650 635 00:35:25,650 --> 00:35:28,570 >> Pieņemsim pāriet uz kaut ko citu. 636 00:35:28,570 --> 00:35:35,910 Tātad no šejienes, mēs esam meklē Visi šie piemēri komandrindas. 637 00:35:35,910 --> 00:35:39,470 Bet tiešām, ko jūs gatavojas kas nodarbojas ar ir Xcode. 638 00:35:39,470 --> 00:35:43,720 Un viens no nice lietas par Xcode ir, un īpaši Swift, 639 00:35:43,720 --> 00:35:47,450 ir tas, ka mums ir šis lieta, ko sauc par rotaļlaukums. 640 00:35:47,450 --> 00:35:51,470 Un Playground ir nemaz iOS app. 641 00:35:51,470 --> 00:35:54,751 Bet tas ļauj eksperimentēt ar Swift ļoti viegli veidā. 642 00:35:54,751 --> 00:35:56,000 Jūs varat ierakstīt visu savu kodu. 643 00:35:56,000 --> 00:35:58,140 Tas ir labi sintakse izcelti šeit. 644 00:35:58,140 --> 00:36:01,600 Kad jūs izveidot jaunu failu, tā lūgs jūs, ja jūs vēlaties, lai izveidotu rotaļlaukums. 645 00:36:01,600 --> 00:36:08,720 Bet jauka lieta par Playground ir tas, ka par tiesībām uz sava loga, 646 00:36:08,720 --> 00:36:12,020 tas faktiski parādīs, izeja no jūsu kodu. 647 00:36:12,020 --> 00:36:16,110 Tātad, ja es ritiniet uz leju, mēs varam redzēt, ko izejas dažādu koda rindiņas 648 00:36:16,110 --> 00:36:17,200 patiesībā notiek, ir. 649 00:36:17,200 --> 00:36:19,850 650 00:36:19,850 --> 00:36:26,790 >> Tātad šajā gadījumā, mēs ejam, lai mainīt virzienu tikai mazliet 651 00:36:26,790 --> 00:36:30,960 un runāt par kaut ko, kas ir patiešām svarīgi, lai šajā augsta līmeņa veidā 652 00:36:30,960 --> 00:36:34,020 ka Swift darbojas, un to ir šī ideja slēgšanu. 653 00:36:34,020 --> 00:36:36,960 Un jūs droši vien esat redzējuši šo mazliet JavaScript. 654 00:36:36,960 --> 00:36:40,770 Attiecībā uz tiem no jums, kas ir CS50, slēgšana 655 00:36:40,770 --> 00:36:47,240 ir ļoti populāri, ļoti labs veids, kā to izdarīt augsta līmeņa lietas modernajās valodās. 656 00:36:47,240 --> 00:36:50,270 Bet tas ir arī sava veida grūti wrap galvu ap pirmo reizi. 657 00:36:50,270 --> 00:36:52,269 Tātad, ja jūs meklējat pie šo Pirmo reizi, tas ir OK. 658 00:36:52,269 --> 00:36:56,740 Paskatieties pirmkodu un redzēt ja jūs varat izdomāt to ārā mājās. 659 00:36:56,740 --> 00:37:01,050 >> Tātad šajā gadījumā, pieņemsim, ka mēs vēlas izveidot daudz eksponentiem 660 00:37:01,050 --> 00:37:04,134 ar kādu fiksētu vērtību. 661 00:37:04,134 --> 00:37:05,800 Tātad šajā gadījumā es varu izveidot funkciju. 662 00:37:05,800 --> 00:37:09,270 Es esmu gatavojas, lai izsauktu to jauda 2, kuras vienīgais mērķis dzīvē 663 00:37:09,270 --> 00:37:15,770 ir veikt dažas ievadi un dubultā tas, un atgriešanās šo vērtību. 664 00:37:15,770 --> 00:37:21,210 Ievērojiet, ka šeit es esmu pieņemot vienu datu veidu. 665 00:37:21,210 --> 00:37:23,137 Tas būs mainīgs sauc x. 666 00:37:23,137 --> 00:37:23,970 Tas ir tipa Double. 667 00:37:23,970 --> 00:37:26,190 Un es esmu gatavojas atgriezties dubultā šeit. 668 00:37:26,190 --> 00:37:29,100 Un es esmu tikai gatavojas darīt ļoti, atklāti sakot, diezgan 669 00:37:29,100 --> 00:37:32,650 naivs veids dubultot šo vērtību. 670 00:37:32,650 --> 00:37:35,600 Un es tev parādīšu, kāpēc šo noder tikai sekundi. 671 00:37:35,600 --> 00:37:40,418 >> Ievērojiet, ka šeit mums ir šo diapazonu vēlreiz. kaut 1, dot 672 00:37:40,418 --> 00:37:44,130 dot dot, 2, kas nozīmē, ka šī cilpa darbosies divas reizes. 673 00:37:44,130 --> 00:37:46,480 Bet tas nozīmē fiktīvu mainīgo. 674 00:37:46,480 --> 00:37:49,650 Tas nozīmē, ka es neesmu īsti gatavojas izmantos šo mainīgo jebkur 675 00:37:49,650 --> 00:37:51,070 iekšā šīs cilpas. 676 00:37:51,070 --> 00:37:55,380 Es tikai gribu šo līniju kodu, lai palaistu divreiz, 677 00:37:55,380 --> 00:37:58,980 bez nepieciešamības zināt vērtība šajā diapazonā. 678 00:37:58,980 --> 00:38:02,570 >> Tātad šajā gadījumā es skrienu rezultātu reizes x divreiz, kas būtībā 679 00:38:02,570 --> 00:38:06,560 nozīmē, ka es esmu squaring šo vērtību. 680 00:38:06,560 --> 00:38:10,230 Un tas notiek ar strādājam kā mēs varētu gaidīt. 681 00:38:10,230 --> 00:38:16,410 Power of 2, iet vērtību 2.0 dod mums izejas jaudu 4. 682 00:38:16,410 --> 00:38:18,810 3.2 strādā priekš 10.24. 683 00:38:18,810 --> 00:38:22,660 >> Tagad mēs varam darīt līdzīgu lieta jaudu 3. 684 00:38:22,660 --> 00:38:25,330 Bet tagad mainīt tikai diapazonu. 685 00:38:25,330 --> 00:38:28,840 Par fiktīvu mainīgais 1 pa 3, reizināt 3 reizes, 686 00:38:28,840 --> 00:38:29,830 un darīt to pašu. 687 00:38:29,830 --> 00:38:32,240 >> Tātad tas varētu justies mazliet izdomāts. 688 00:38:32,240 --> 00:38:34,270 Bet tur ir svarīgs lieta šeit, kas 689 00:38:34,270 --> 00:38:37,770 ir tas, ka skatoties uz šiem divas funkcijas, tur ir 690 00:38:37,770 --> 00:38:43,600 tikai viena lieta, kas ir atšķirīgs, kas ir šī vērtība ir diapazonā. 691 00:38:43,600 --> 00:38:46,910 Viss pārējais par šiem diviem funkcijas, no 3 spēks un jauda 2, 692 00:38:46,910 --> 00:38:50,440 ir, faktiski, ir identiski, jo tie strādā tādā pašā veidā. 693 00:38:50,440 --> 00:38:53,460 >> Tātad šajā brīdī, nedaudz trauksmes zvans būtu iet off. 694 00:38:53,460 --> 00:38:56,200 Cerams, ka tas, ko tu saki, jūs zināt, tas jūtas mazliet 695 00:38:56,200 --> 00:38:59,250 piemēram, dublēšanos. 696 00:38:59,250 --> 00:39:02,950 Varbūt tur ir tā, ka es būtu varētu rezumēju tas viss 697 00:39:02,950 --> 00:39:06,630 un nodrošināt funkciju vai izveidot funkciju, kas 698 00:39:06,630 --> 00:39:11,550 dara tieši to, ko es gribu, bez nepieciešamības ierakstiet to ārā skaidri. 699 00:39:11,550 --> 00:39:15,732 Un tas ir tas, ko vara no slēgšanas ļauj mums darīt. 700 00:39:15,732 --> 00:39:16,940 Tātad, pieņemsim to apskatīt šo. 701 00:39:16,940 --> 00:39:18,700 Un es pavadīt pāris minūtes par šo, jo tas 702 00:39:18,700 --> 00:39:20,310 ir diezgan svarīgi, lai Swift. 703 00:39:20,310 --> 00:39:22,900 Mēs to visu laiku. 704 00:39:22,900 --> 00:39:24,550 Mēs ejam, lai definētu funkciju. 705 00:39:24,550 --> 00:39:26,380 Tas notiek, lai varētu saukt powerOf. 706 00:39:26,380 --> 00:39:29,470 Tas būs īslaicīgi samierināties ar parametrs sauc y tipa Int. 707 00:39:29,470 --> 00:39:32,220 Bet ieskatieties atgriešanās veidam. 708 00:39:32,220 --> 00:39:38,730 Atgriešanās veids ir, iekavas, Double Double bultiņa. 709 00:39:38,730 --> 00:39:43,370 Kas nozīmē, ka šo funkciju, Šī funkcija powerOf, 710 00:39:43,370 --> 00:39:46,550 atgriežas funkciju. 711 00:39:46,550 --> 00:39:50,845 Tas ir pieņemot dubultā un atgriežas dubultā. 712 00:39:50,845 --> 00:39:53,720 Tā, ka var likties veida crazy, bet pieņemsim ritināt uz leju, mazliet 713 00:39:53,720 --> 00:39:55,060 un skatīties, lai redzētu, kas notiek. 714 00:39:55,060 --> 00:39:57,910 Mēs esam iekšā šo funkciju powerOf. 715 00:39:57,910 --> 00:40:00,760 Mēs esam radot jaunu funkciju sauc exponentiator, 716 00:40:00,760 --> 00:40:02,900 bet tas nav svarīgi, kas tas ir. 717 00:40:02,900 --> 00:40:06,410 >> Ievērojiet, ka šis ir ievades vērtība x. 718 00:40:06,410 --> 00:40:09,910 Un tas ir, ņemot dubultā un atgriežas dubultā. 719 00:40:09,910 --> 00:40:16,320 Un tas ir tas pats kods, kas mēs redzējām iepriekš, izņemot to, ka vērtības 2 720 00:40:16,320 --> 00:40:20,060 vai vērtība 3, kas augšējā robeža šajā diapazonā, 721 00:40:20,060 --> 00:40:23,210 ir aizstāta ar šī vērtība y, kas 722 00:40:23,210 --> 00:40:27,230 bija sākotnējā parametrs Mūsu powerOf funkciju. 723 00:40:27,230 --> 00:40:31,700 Un šajā brīdī, mēs atgriezties exponentiator. 724 00:40:31,700 --> 00:40:33,345 Mēs esam atgriešanās funkciju. 725 00:40:33,345 --> 00:40:36,300 726 00:40:36,300 --> 00:40:39,550 >> Tas ir veids, kā maz prātā putu. 727 00:40:39,550 --> 00:40:44,360 Bet pieņemsim iedomāties, kas notiek kad es aicinu šo funkciju powerOf 728 00:40:44,360 --> 00:40:47,610 un iet uz to kāda vērtība, piemēram, 2. 729 00:40:47,610 --> 00:40:50,020 Ko tas nozīmē, ka Man tagad ir vērtība 730 00:40:50,020 --> 00:40:55,130 2 y, kas nozīmē, ka šīs vērtības y šajā exponentiator funkcijas 731 00:40:55,130 --> 00:40:56,410 būs tas, ka vērtība 2. 732 00:40:56,410 --> 00:41:01,290 Bet es esmu atpakaļ šis exponentiator funkcija. 733 00:41:01,290 --> 00:41:05,900 >> Tātad paziņojums ko Swift saka, ka es ir izveidota šajā gadījumā. 734 00:41:05,900 --> 00:41:10,550 let kvadrāts ir definīcija, tas ir funkcija, kas pieņem dubultā 735 00:41:10,550 --> 00:41:12,610 un atgriež dubultā. 736 00:41:12,610 --> 00:41:16,590 Esmu izveidojis funkcija kas kvadrātu kaut 737 00:41:16,590 --> 00:41:19,782 izmantojot šo mehānismu tieši šeit. 738 00:41:19,782 --> 00:41:22,490 Un tiešām, kas notiek, ir ka tas ir atgriežas šo funkciju 739 00:41:22,490 --> 00:41:26,390 exponentiator, bet šī vērtība y ir iesaiņota iekšpusē no tā. 740 00:41:26,390 --> 00:41:31,080 Un tāpēc tagad katru reizi, kad es izmantot šo mainīgs vai šī konstante sauc 741 00:41:31,080 --> 00:41:35,180 kvadrātveida, tas tā notiek uzvesties kā funkcija. 742 00:41:35,180 --> 00:41:39,960 Un tā es pēc tam var zvanīt šo mainīgo tāpat kā es sauktu par funkciju, 743 00:41:39,960 --> 00:41:43,830 un iet uz to numuru, piemēram, šajā gadījumā 3. 744 00:41:43,830 --> 00:41:45,910 Un es tad kvadrātveida šo vērtību. 745 00:41:45,910 --> 00:41:53,340 Tātad 3 brusas pēc tam kļūt 9, jo mēs varam redzēt šeit. 746 00:41:53,340 --> 00:41:56,530 >> Tiešām traks, bet tas tagad ļauj man iespēju 747 00:41:56,530 --> 00:41:59,040 izveidot citas powerOf funkcijas. 748 00:41:59,040 --> 00:42:03,680 Tāpat kā es varu teikt, OK, arī tagad es gribu lai izveidotu jaunu funkciju, powerOf (3), 749 00:42:03,680 --> 00:42:06,290 un uzglabāt kas stājas konstante sauc kubs. 750 00:42:06,290 --> 00:42:10,220 Un tagad kubs ir būs atsevišķa funkcija, kas būs pēc tam 751 00:42:10,220 --> 00:42:14,800 aizņemt kādu vērtību kā ieejas un kubs ka vērtību, kā mēs varam redzēt apakšējā rindā 752 00:42:14,800 --> 00:42:16,420 šeit. 753 00:42:16,420 --> 00:42:18,590 kubs 2 gatavojas rezultātā 8. 754 00:42:18,590 --> 00:42:21,330 755 00:42:21,330 --> 00:42:22,680 >> Cerams, ka diezgan veikls sīkumi. 756 00:42:22,680 --> 00:42:25,920 Jūs nekad neesmu redzējis šo pirms. 757 00:42:25,920 --> 00:42:29,990 Es aicinu jūs ieskatīties slēgšanu un izpētīt šo mazliet vairāk. 758 00:42:29,990 --> 00:42:33,570 Tas ir patiešām spēcīgs stuff mēs redzam daudz JavaScript un dažās citās valodās. 759 00:42:33,570 --> 00:42:37,160 Tas ir patiešām svarīgi izprast API kā arī 760 00:42:37,160 --> 00:42:38,620 ka mēs sāksim tikai sekundē. 761 00:42:38,620 --> 00:42:39,456 Jā? 762 00:42:39,456 --> 00:42:43,740 >> Mērķauditorija: Kad jūs powerOf (2), iekavās, un pēc tam 763 00:42:43,740 --> 00:42:48,764 cits iekavas, cits input-- jūs būtībā aizstājot laukumā. 764 00:42:48,764 --> 00:42:50,930 DAN AMRMENDARIZ: Tā izskatās pašā pēdējā rindā šeit. 765 00:42:50,930 --> 00:42:55,930 Tas faktiski ir pilnīgi iespējams darīt, Ķēžu kā jūs ierosināts. 766 00:42:55,930 --> 00:43:00,990 Tātad powerOf (5) nozīmē to, ka mēs ejam lai būtu exponentiator no 5 līdz šeit. 767 00:43:00,990 --> 00:43:04,160 Tātad tas būtībā gribam būt pats kā 4 līdz piekto varas, 768 00:43:04,160 --> 00:43:07,200 jo mēs esam izveidojuši exponentiating darbojas uz piekto jaudu, 769 00:43:07,200 --> 00:43:09,920 un mēs iet uz kas darbotos vērtību 4. 770 00:43:09,920 --> 00:43:12,619 Un mēs šo vērtību ka mēs sagaidām, 1024. 771 00:43:12,619 --> 00:43:14,785 Mērķauditorija: Un tas nav nosaukt, tāpēc tas ir vieglāk 772 00:43:14,785 --> 00:43:16,570 lasīt, laukumu neatkarīgi. 773 00:43:16,570 --> 00:43:17,903 >> DAN AMRMENDARIZ: Pareizi, tieši tā. 774 00:43:17,903 --> 00:43:21,120 Tātad, pirms es vienkārši ielieciet to uz pastāvīgs šeit tik 775 00:43:21,120 --> 00:43:23,808 ka tā ir veikusi to viegli lietot šo nosaukumu. 776 00:43:23,808 --> 00:43:24,308 Jā? 777 00:43:24,308 --> 00:43:26,942 >> Mērķauditorija: Šajā kontekstā powerOf, tā ir daļa 778 00:43:26,942 --> 00:43:30,774 programmēšanas valoda pretstatā tam, kā jūs 779 00:43:30,774 --> 00:43:33,952 domā par powerOf in [dzirdams]? 780 00:43:33,952 --> 00:43:35,660 DAN AMRMENDARIZ: So Šajā gadījumā, powerOf 781 00:43:35,660 --> 00:43:39,280 ir vienkārši nosaukums no funkcija, kas es noteikti šeit. 782 00:43:39,280 --> 00:43:41,801 Tātad, tas nav raksturīgi ar pašu valodu, 783 00:43:41,801 --> 00:43:43,550 bet tā vietā, tas ir tikai funkcija, kas ir 784 00:43:43,550 --> 00:43:45,628 šis nosaukums, jo es arī tā šo nosaukumu. 785 00:43:45,628 --> 00:43:48,770 786 00:43:48,770 --> 00:43:51,920 Jebkuri citi jautājumi? 787 00:43:51,920 --> 00:43:52,800 Viss kārtībā. 788 00:43:52,800 --> 00:43:54,750 >> Tagad tas ir lieliski. 789 00:43:54,750 --> 00:43:58,170 Bet jūs neesat gatavojas redzēt Slēgšanas funkciju daudz kas 790 00:43:58,170 --> 00:44:03,440 Ir, piemēram, tas, kur jums noteikt, iekšā Vienas funkcijas, citu funkciju. 791 00:44:03,440 --> 00:44:04,320 Un jūs varat darīt to. 792 00:44:04,320 --> 00:44:06,430 Bet tas ir sava veida nav patiešām nepieciešams, vai ne? 793 00:44:06,430 --> 00:44:09,189 Tāpat kāpēc es definēt šo funkcija sauc exponentiator 794 00:44:09,189 --> 00:44:10,480 un pēc tam uzreiz atpakaļ. 795 00:44:10,480 --> 00:44:15,220 Kāpēc es nevaru vienkārši uzreiz atgriezt šo funkciju? 796 00:44:15,220 --> 00:44:18,890 >> Un patiesībā, tas ir tieši Ideja koncepciju sauc 797 00:44:18,890 --> 00:44:22,410 anonīmi funkcijas, kur anonīmie funkcijas nav reāli 798 00:44:22,410 --> 00:44:25,270 ir nosaukums, jo viņi nav nepieciešams, lai būtu viens. 799 00:44:25,270 --> 00:44:28,700 Un tā šajā gadījumā, 7. B, mēs varam atrast tieši to. 800 00:44:28,700 --> 00:44:31,470 Tas viss ir tas pats kods, dara tieši to pašu, 801 00:44:31,470 --> 00:44:35,570 bet tagad mēs esam nomainījuši nedaudz tik ka šis powerOf funkcija nekavējoties 802 00:44:35,570 --> 00:44:37,750 atgriež funkcija. 803 00:44:37,750 --> 00:44:44,150 Ievērojiet, ka pēc atgriešanās, tur ir atvērts figūriekava. 804 00:44:44,150 --> 00:44:46,410 Tas ir gaidījis šo ieguldījumu Double. 805 00:44:46,410 --> 00:44:48,560 Tas ir gaidījis, ka produkcija Double. 806 00:44:48,560 --> 00:44:52,175 Un tad ir atslēgvārds atdala pašu kodu. 807 00:44:52,175 --> 00:44:53,550 Tātad šī ir anonīma funkcija. 808 00:44:53,550 --> 00:44:57,030 Tas nav reāli ir vārds, turpretim pirms tā tika saukta exponentiator. 809 00:44:57,030 --> 00:45:00,229 Bet kā mēs redzējām, tikai tiešām neatsaucās uz exponentiator 810 00:45:00,229 --> 00:45:01,270 ārpus šīs funkcijas. 811 00:45:01,270 --> 00:45:02,470 Tātad tas nav jautājums. 812 00:45:02,470 --> 00:45:06,300 Tātad šis anonīma funkcija ir tā sauktais, jo tas ir anonīms, 813 00:45:06,300 --> 00:45:09,107 bet tas joprojām tiek izmantots saistībā ar šo kodu. 814 00:45:09,107 --> 00:45:13,690 815 00:45:13,690 --> 00:45:16,079 >> Nākamajos pāris Ones Esmu gatavojas turpināt cerams 816 00:45:16,079 --> 00:45:17,370 pūš jūsu prātā mazliet. 817 00:45:17,370 --> 00:45:20,410 Mēs varam vienkāršot tas pat vairāk. 818 00:45:20,410 --> 00:45:24,490 Jo kā bija astutely norādīts iepriekš, 819 00:45:24,490 --> 00:45:29,100 varbūt mēs tiešām zinām, ko secināt no šo kodu, ko 820 00:45:29,100 --> 00:45:31,750 produkcija šo kodu būs. 821 00:45:31,750 --> 00:45:38,180 Un patiesībā, šajā anonīma funkciju, mēs varam faktiski secināt, kāda veida datus. 822 00:45:38,180 --> 00:45:41,650 >> Tātad šajā vienā, mēs vairs nepieciešams skaidri definēt 823 00:45:41,650 --> 00:45:44,850 datu veidu, kas ir to ieejas un izejas no šīs funkcijas 824 00:45:44,850 --> 00:45:45,890 uz pāris iemeslu dēļ. 825 00:45:45,890 --> 00:45:51,390 Viens ir tas, ka mēs esam definēts, augšā prototips ietverošā funkciju, 826 00:45:51,390 --> 00:45:55,770 kāda veida dati šajā anonīmo funkcija būtu ieejas un izejas. 827 00:45:55,770 --> 00:45:57,900 Un no otras puses, mēs var secināt no kodu 828 00:45:57,900 --> 00:46:01,930 uz leju šeit, ka mēs pieņemam ieguldījums, kas ir tipa Double 829 00:46:01,930 --> 00:46:03,670 un atgriežas dubultā. 830 00:46:03,670 --> 00:46:07,890 >> Ievērojiet, ka šeit mums nav skaidri definēts nosaukumus argumentiem 831 00:46:07,890 --> 00:46:11,220 ka šī funkcija ir pieņemt. 832 00:46:11,220 --> 00:46:16,180 Un tā mēs redzam, mēs varam atsaukties uz tos parametrus, izmantojot $ 0, $ 1, 833 00:46:16,180 --> 00:46:20,140 tā tālāk, un tā tālāk, atkarībā no tā, Par šo parametru skaits izmantots 834 00:46:20,140 --> 00:46:20,850 Šajā funkciju. 835 00:46:20,850 --> 00:46:23,370 836 00:46:23,370 --> 00:46:29,740 >> Tas ir kaut kas, ka jūs dodaties redzēt daudz tas ir atvērts figūriekava 837 00:46:29,740 --> 00:46:32,797 definīcija kam seko $ 0, un tad daži darbība, 838 00:46:32,797 --> 00:46:34,130 un pēc tam slēgtā figūriekava. 839 00:46:34,130 --> 00:46:38,630 Tas ir anonīma funkcija kas veic šo darbību. 840 00:46:38,630 --> 00:46:42,940 Tā ir šo parametru, kur tas ir veids ir izsecināt. 841 00:46:42,940 --> 00:46:44,860 Tas pirmais parametrs ir $ 0. 842 00:46:44,860 --> 00:46:49,010 Un daži darbība ir notiek, ka $ 0. 843 00:46:49,010 --> 00:46:52,100 >> Mērķauditorija: Tātad dolāra zīmi nozīmē parametrs būtībā, 844 00:46:52,100 --> 00:46:53,429 un 0 nozīmē pirmā? 845 00:46:53,429 --> 00:46:54,720 DAN ARMENDARIZ: Tas ir pareizi. 846 00:46:54,720 --> 00:46:59,100 Tātad dolāra zīmi būtībā nozīmē parametrs, un 0 nozīmē pirmo. 847 00:46:59,100 --> 00:47:02,760 Bet tas darbojas īpaši tas gadījums, kad man nav nosaukts 848 00:47:02,760 --> 00:47:07,940 argumenti manā anonīmu funkciju. 849 00:47:07,940 --> 00:47:11,119 >> Mērķauditorija: Vai Perl vai kaut kas ir šis dolāra zīmi, dolārs 0 tur? 850 00:47:11,119 --> 00:47:12,702 DAN ARMENDARIZ: Vai kas, es atvainojos? 851 00:47:12,702 --> 00:47:15,360 Mērķauditorija: Vai Perl ir Tas dolāru 0, dolārs 1-- 852 00:47:15,360 --> 00:47:17,318 DAN ARMENDARIZ: es neesmu pārāk pazīstams ar Perl, 853 00:47:17,318 --> 00:47:21,340 bet PHP ko definē mainīgos pamatojoties uz dolāra zīmes. 854 00:47:21,340 --> 00:47:26,120 Un tur var būt dažas valodas ka ir iespējas, piemēram, šis. 855 00:47:26,120 --> 00:47:28,240 Patiesībā, Swift aizņemas funkcijas, piemēram, tas daudz 856 00:47:28,240 --> 00:47:29,489 no daudz citām valodām. 857 00:47:29,489 --> 00:47:32,380 Mēs redzam mājieni Python tajā. 858 00:47:32,380 --> 00:47:35,800 Šī tipa definīcija šķiet, nāk no OCaml. 859 00:47:35,800 --> 00:47:38,932 Un mums ir tikai veselu ķekars sīkumi no daudz dažādās valodās. 860 00:47:38,932 --> 00:47:40,640 Tas ir viens no jauks lietas par Swift 861 00:47:40,640 --> 00:47:43,390 ir tas, ka tas aizņem daudz labākā idejas no ķekars valodās 862 00:47:43,390 --> 00:47:47,229 un shoehorns tos visus kopā vienā super valodā. 863 00:47:47,229 --> 00:47:49,520 Patiesībā, ja jūs varētu man turpināt pūš savu prātu, 864 00:47:49,520 --> 00:47:51,000 tāpēc mēs esam bijuši dara visu. 865 00:47:51,000 --> 00:47:56,690 Mēs varam varbūt vienkāršot šo mazliet bit, saprotot, ka, protams, 866 00:47:56,690 --> 00:48:02,120 Swift ir exponentiating funkcija uzcelta. 867 00:48:02,120 --> 00:48:04,660 Ja es importēt Darwin, kas ir tikai bibliotēka, kas 868 00:48:04,660 --> 00:48:09,680 piedāvā šo funkciju sauc Pow, tagad Es varu vienkāršot savu spēku funkcijas 869 00:48:09,680 --> 00:48:11,830 būt šādi. 870 00:48:11,830 --> 00:48:15,860 Tas būs atpakaļ šis anonīma funkcija. 871 00:48:15,860 --> 00:48:17,950 >> Bet apskatīt, cik vienkārši tas ir tagad. 872 00:48:17,950 --> 00:48:22,780 Šī ir anonīma funkcija, kas ir pieņemot kādu datu veidu, 873 00:48:22,780 --> 00:48:26,600 un tas būs viens arguments īpaši, 874 00:48:26,600 --> 00:48:29,320 Minēts 0 $, kas ir tipa Double. 875 00:48:29,320 --> 00:48:32,680 Tas ir gatavojas atgriezties tipa Double. 876 00:48:32,680 --> 00:48:35,760 Bet atgriešanās paziņojums tagad ir netiešs. 877 00:48:35,760 --> 00:48:39,990 >> Un tā tas ir precīzs stils, kas ir ļoti, ļoti izplatīta Swift, 878 00:48:39,990 --> 00:48:40,790 visā vietā. 879 00:48:40,790 --> 00:48:43,190 Mēs ejam, lai redzētu šo visu laiku Swift. 880 00:48:43,190 --> 00:48:46,150 Tāpēc es esmu parādot visus to tu, jo šo sintaksi. 881 00:48:46,150 --> 00:48:49,070 Tas ir ļoti bieži lai redzētu, kas nozīmē, ka 882 00:48:49,070 --> 00:48:51,420 ir anonīma funkcija kas ir veic 883 00:48:51,420 --> 00:48:54,640 daži operācija uz šiem argumentiem. 884 00:48:54,640 --> 00:48:56,940 Un tur ir netiešs atgriešanās. 885 00:48:56,940 --> 00:49:01,850 Tātad tas ir pilnīgi tas pats mums to pateikt, tieši šeit. 886 00:49:01,850 --> 00:49:05,730 887 00:49:05,730 --> 00:49:08,150 >> Jo šī cirtaini kronšteins ir funkcija, 888 00:49:08,150 --> 00:49:10,480 mēs esam veikt šo darbību uz pirmo argumentu. 889 00:49:10,480 --> 00:49:12,170 Mēs ejam, lai atgrieztos, ka. 890 00:49:12,170 --> 00:49:14,815 Bet šis ārējais atgriešanās ir atgriežoties ka visu funkciju, 891 00:49:14,815 --> 00:49:19,855 ka viss anonīma funkcija ka mēs esam tikko izveidots. 892 00:49:19,855 --> 00:49:21,689 Jebkuri citi jautājumi? 893 00:49:21,689 --> 00:49:23,980 Labi, es nezinu, ja Jums puiši ir gatavi par šo, 894 00:49:23,980 --> 00:49:27,455 bet mēs varam iet vēl crazier ar Swift. 895 00:49:27,455 --> 00:49:28,560 Esat gatavi? 896 00:49:28,560 --> 00:49:29,930 OK, tas ir lieliski. 897 00:49:29,930 --> 00:49:35,310 >> Tagad mums tiešām ir iespēja to, kas ātri, jo, kā modulāra 898 00:49:35,310 --> 00:49:39,650 un cik protokols pamatā tas ir, definēt mūsu pašu freaking operatoriem. 899 00:49:39,650 --> 00:49:44,060 Piemēram, šajā gadījumā, mēs nebija operatoram exponentiation-- labi, 900 00:49:44,060 --> 00:49:47,990 veikšanai pilnvaras kaut ko. 901 00:49:47,990 --> 00:49:53,632 Bet es varu, jo Swift, noteikt jaunu Operators, kas dara tieši to. 902 00:49:53,632 --> 00:49:55,590 Tātad šajā gadījumā tur ķekars sintaksi šeit. 903 00:49:55,590 --> 00:49:59,980 Un es tev ļauj jums apskatīt to mājās, ja paskatās šo. 904 00:49:59,980 --> 00:50:06,890 Bet mēs definējot šo infikss operators, **, kas tam ļauj mums, 905 00:50:06,890 --> 00:50:09,840 nosakot, ko tas funkcija ** faktiski 906 00:50:09,840 --> 00:50:15,010 tas, pieņemt kreiso roku pusē un labajā pusē, 907 00:50:15,010 --> 00:50:21,190 un pēc tam atgriezties eksponents ka kreisajā pusē, lai labajā pusē. 908 00:50:21,190 --> 00:50:24,850 >> Un tagad tik pēkšņi I ir radījuši jaunu skaitītāju. 909 00:50:24,850 --> 00:50:29,490 Tā 2 ** 3 ir 2, uz trešo jaudu. 910 00:50:29,490 --> 00:50:34,420 [Prātā putu SOUND] Tas, ko pašai būtu jums būt, piemēram, 911 00:50:34,420 --> 00:50:37,960 OK, skrūves C. es eju Swift visu ceļu. 912 00:50:37,960 --> 00:50:38,740 Tas ir lieliski. 913 00:50:38,740 --> 00:50:40,140 Tas ir diezgan fantastisks. 914 00:50:40,140 --> 00:50:42,240 >> Lai gan šis ir lielisks piemērs. 915 00:50:42,240 --> 00:50:45,570 Bet es nekad reiz ārpus no šajā piemērā faktiski 916 00:50:45,570 --> 00:50:46,800 definē savu operatoru. 917 00:50:46,800 --> 00:50:49,710 Bet tomēr, tas rāda no jaudas Swift daudz 918 00:50:49,710 --> 00:50:54,050 un kāpēc tas ir faktiski tiešām ļoti foršs. 919 00:50:54,050 --> 00:50:55,832 OK, jā? 920 00:50:55,832 --> 00:50:57,790 Mērķauditorija: Ja jūs esat definējot savu operatoru, 921 00:50:57,790 --> 00:51:02,940 kā jūs zināt, jums nav nejauši mēģinātu izveidot operatoram, kas ir 922 00:51:02,940 --> 00:51:06,040 kaut kur C, piemēram, paslēpts kaut kur Swift, 923 00:51:06,040 --> 00:51:12,210 tāpat neskaidra viens, ka jūs nevar būt redzējis. 924 00:51:12,210 --> 00:51:15,050 >> DAN ARMENDARIZ: Tātad, ja jūs cenšaties definēt savu operatoru, 925 00:51:15,050 --> 00:51:20,970 pastāv risks, definējot viens pār esošu operatoru. 926 00:51:20,970 --> 00:51:24,870 Ka tērēta detalizācijas līmenī šī Es nedomāju, ka mums ir laiks, lai dotos pāri. 927 00:51:24,870 --> 00:51:27,620 Bet tas ir risks. 928 00:51:27,620 --> 00:51:31,320 Un tas ir patiesībā ļoti iemesls, kāpēc Es neizmantoja caret simbolu, kas 929 00:51:31,320 --> 00:51:36,210 kad mēs esam rakstīt out spēku, mēs parasti izmantot 4 maz caret 5 vai kaut ko 930 00:51:36,210 --> 00:51:40,560 piemēram, ka, tikai tad, kad mēs esam Gchatting draugiem vai neatkarīgi. 931 00:51:40,560 --> 00:51:43,660 Bet šajā gadījumā, kas faktiski būtu izraisījis sadursmi. 932 00:51:43,660 --> 00:51:46,450 Un tāpēc es jāizvairās to tikai tāpēc, ka Man gadījās zinu šajā gadījumā 933 00:51:46,450 --> 00:51:50,430 ka tas varētu izraisīt šo sadursmi. 934 00:51:50,430 --> 00:51:52,270 >> Viss kārtībā. 935 00:51:52,270 --> 00:51:55,080 Tagad diemžēl, par pēdējās septiņas minūtes, 936 00:51:55,080 --> 00:51:57,410 Man ir, lai saglabātu pūš jūsu domas mazliet. 937 00:51:57,410 --> 00:52:00,230 Tātad, ļaujiet man parādīs, dažas citas lietas, kā arī. 938 00:52:00,230 --> 00:52:03,710 >> Mēs esam parādīts jums šo ideju par ņemot šos anonīmos funkcijas, 939 00:52:03,710 --> 00:52:07,040 šie slēgšana, kas ļauj jums veida caurlaide funkcijas apkārt. 940 00:52:07,040 --> 00:52:08,100 Jūs varat atgriezties tos. 941 00:52:08,100 --> 00:52:09,490 Jūs varat manipulēt ar viņiem. 942 00:52:09,490 --> 00:52:11,790 Jūs varat darīt visu veidu trakas lietas. 943 00:52:11,790 --> 00:52:14,850 >> Bet viena cita lieta, kas notiek, ir noderīgi 944 00:52:14,850 --> 00:52:19,740 ir spēja, pretstatā atgriežoties šo funkciju 945 00:52:19,740 --> 00:52:25,146 in funkciju, nodot funkciju kā parametrs uz citu funkciju. 946 00:52:25,146 --> 00:52:30,430 Jūs varētu domāt, labi, kāpēc uz Zemes es gribētu darīt kaut ko līdzīgu, ka? 947 00:52:30,430 --> 00:52:33,660 >> Nu, pieņemsim, ka es gribu izmantot šo operatoru, ka es 948 00:52:33,660 --> 00:52:40,260 strādāja tik grūti izveidot un piemērot to ķekars dažādiem numuriem 949 00:52:40,260 --> 00:52:41,770 masīvā. 950 00:52:41,770 --> 00:52:46,700 Tātad šajā gadījumā man ir masīvs integers-- 1, 4, 7, 2, 5, 10, 56. 951 00:52:46,700 --> 00:52:48,080 Un es gribu dubultot tos visus. 952 00:52:48,080 --> 00:52:50,430 Tā, ka mēs būtu parasti to darīt, ir vienkārši uzrakstīt 953 00:52:50,430 --> 00:52:53,440 vienkāršs cilpa, kas uzsvērts, pār viņiem visiem 954 00:52:53,440 --> 00:52:57,140 un veikt kaut kādas veida kvadrātveida operācija pār tiem, 955 00:52:57,140 --> 00:53:02,700 ievadot šos jaunos vērtības uz jaunu mainīgs, vai drīzāk, jaunu masīvs šeit. 956 00:53:02,700 --> 00:53:07,370 Un vērtība produkcijas Rezultāts ir, tad visi šie bloki, 957 00:53:07,370 --> 00:53:10,200 vai drīzāk visiem tiem elementi tagad brusas. 958 00:53:10,200 --> 00:53:12,680 >> Un mēs varētu darīt to pašu lieta cubing to, 959 00:53:12,680 --> 00:53:15,360 bet nedaudz trauksmes zvans vajadzētu iet off 960 00:53:15,360 --> 00:53:17,360 sakot, ka varbūt tur ir daži tā, ka mēs būtu 961 00:53:17,360 --> 00:53:19,860 varētu vienkāršot šo mazliet. 962 00:53:19,860 --> 00:53:21,130 Un patiesībā ir. 963 00:53:21,130 --> 00:53:25,320 Ko darīt, ja mēs varētu radīt funkcija, kas ļauj mums 964 00:53:25,320 --> 00:53:28,350 pieņemt, kā plēsoņa, funkcija? 965 00:53:28,350 --> 00:53:30,350 Tātad šajā gadījumā, ņem apskatīt šos argumentus. 966 00:53:30,350 --> 00:53:33,220 Mēs ejam, lai pieņemt sarakstu dubultspēlē. 967 00:53:33,220 --> 00:53:35,030 Un tad mēs ejam pieņemt funkciju 968 00:53:35,030 --> 00:53:40,990 lielumâ sauc f kas notiek veikt dubultu un atpakaļ dubultā. 969 00:53:40,990 --> 00:53:43,320 Un visa produkcija no visu šo funkciju 970 00:53:43,320 --> 00:53:47,310 sauc mapper gatavojas atgriezt masīvu sauc dubultā. 971 00:53:47,310 --> 00:53:52,380 >> Ko tas tad ļaujiet man darīt, ir atkārtot pār šajā sarakstā 972 00:53:52,380 --> 00:53:56,350 un darīt to pašu, bet tagad piemērot šo funkciju katram 973 00:53:56,350 --> 00:53:58,970 no atsevišķajām vērtībām šajā sarakstā. 974 00:53:58,970 --> 00:54:00,750 Tāpēc man nav tiešām zināt, ko f ir. 975 00:54:00,750 --> 00:54:02,010 Tas nav jautājums man. 976 00:54:02,010 --> 00:54:06,530 Bet tik ilgi, cik tas nepieciešams, dubultā, veic kādu darbību par to, 977 00:54:06,530 --> 00:54:08,640 un pēc tam atgriež Double, es tad būtu 978 00:54:08,640 --> 00:54:13,415 spēj kartēt šo funkciju pāri katru elements sarakstā. 979 00:54:13,415 --> 00:54:16,270 980 00:54:16,270 --> 00:54:20,930 >> Un šāda veida programmu ir sauktās augstākās kārtības funkcijām, 981 00:54:20,930 --> 00:54:24,440 kur mēs iet funkcijas apkārt kā parametros 982 00:54:24,440 --> 00:54:26,430 un dara lietas ar funkcijām. 983 00:54:26,430 --> 00:54:29,640 Tas ir sava veida, piemēram, ņemot visiem šiem idejas, ka mēs esam iemācījušies CS50 984 00:54:29,640 --> 00:54:31,390 un ņemot tos šķirot no uz nākamo līmeni. 985 00:54:31,390 --> 00:54:34,140 Un tas ir viss CS51 stils sīkumi. 986 00:54:34,140 --> 00:54:37,080 Un tā mēs iet dziļumā vairāk klasēs, piemēram, ka. 987 00:54:37,080 --> 00:54:38,930 >> Bet tas ir arī svarīgi šeit, jo mēs 988 00:54:38,930 --> 00:54:42,010 redzēt daudz funkciju ka tiek izmantoti Swift 989 00:54:42,010 --> 00:54:45,590 kas būtībā nav tas, kur mēs esam 990 00:54:45,590 --> 00:54:48,300 daži skaitļi, daži masīvs numuru. 991 00:54:48,300 --> 00:54:50,850 Mēs ejam, lai iet, ka masīvs mūsu Mapper. 992 00:54:50,850 --> 00:54:55,770 Un mēs arī gatavojamies nodot kādu funkciju, kas 993 00:54:55,770 --> 00:54:57,950 mēs esam jau noteikts šeit. 994 00:54:57,950 --> 00:54:59,690 Tas būs kvadrātveida. 995 00:54:59,690 --> 00:55:02,220 Un mēs ejam, lai pēc tam kvadrātveida visiem šiem numuriem 996 00:55:02,220 --> 00:55:04,710 un uzglabāt, ka šajā sakarā šeit. 997 00:55:04,710 --> 00:55:07,280 998 00:55:07,280 --> 00:55:11,000 >> Tātad šajā gadījumā mēs esam definēta mūsu pašu funkciju sauc Mapper. 999 00:55:11,000 --> 00:55:15,370 Bet tas precīzs lieta ir, Patiesībā, iebūvēts Swift. 1000 00:55:15,370 --> 00:55:18,960 Ir dažādi funkcijas sauc karte. 1001 00:55:18,960 --> 00:55:21,520 Tur ir karte funkcija, tur ir samazināt funkciju, 1002 00:55:21,520 --> 00:55:25,630 un tur ir filtra funkcija, kas būtībā piemēro funkcijas 1003 00:55:25,630 --> 00:55:30,782 uz katru elementa uzskaitīt tos mainīt kaut kādā veidā. 1004 00:55:30,782 --> 00:55:34,510 >> Mērķauditorija: Tātad, jo jums ir pārveidot datus citā formātā 1005 00:55:34,510 --> 00:55:36,134 caur function-- 1006 00:55:36,134 --> 00:55:37,050 DAN ARMENDARIZ: Right. 1007 00:55:37,050 --> 00:55:39,420 Jā, tā funkcija ka mēs esam pieņemot 1008 00:55:39,420 --> 00:55:41,790 pārveido datus kaut kādā veidā. 1009 00:55:41,790 --> 00:55:44,700 Šajā gadījumā, mēs bija vai nu squaring to, vai mēs cubing to, 1010 00:55:44,700 --> 00:55:50,060 vai tiešām mēs varētu veikt neviena darbība uz to visu. 1011 00:55:50,060 --> 00:55:54,150 >> Bet ļaujiet man parādīs, tad kā šis gatavojas izskatās praksē. 1012 00:55:54,150 --> 00:55:56,681 Un atkal, es skrienu mazliet laika. tāpēc es neesmu 1013 00:55:56,681 --> 00:55:59,430 gatavojas, lai varētu iet pa visu pirmkoda šeit detalizēti. 1014 00:55:59,430 --> 00:56:00,721 Bet es aicinu jūs to darīt. 1015 00:56:00,721 --> 00:56:03,850 Mēs post to, cik drīz vien iespējams, pēc šo runāt. 1016 00:56:03,850 --> 00:56:07,610 >> Bet, ja jūs to apskatīt to, pieņemsim, ka mums ir numuru sarakstu, 1017 00:56:07,610 --> 00:56:10,260 masīvs skaitu šajā mainīgās sauktie skaitļi. 1018 00:56:10,260 --> 00:56:16,670 Tad mēs gribam, lai veiktu šo filtrs operācija uz šiem numuriem. 1019 00:56:16,670 --> 00:56:19,730 Tātad filtrs ir augstāks pasūtījums funkcija, kas 1020 00:56:19,730 --> 00:56:24,660 pieņem masīvu un arī funkcija. 1021 00:56:24,660 --> 00:56:28,760 Un par katru elementu, kas masīvs, tā veic šo funkciju. 1022 00:56:28,760 --> 00:56:31,990 >> Ja tas atgriež taisnība, tā saglabā šo posteni. 1023 00:56:31,990 --> 00:56:36,100 Ja šī funkcija atgriež false, tas met prom šo posteni. 1024 00:56:36,100 --> 00:56:40,480 Un tad tas atgriež sarakstu ka tiek pēc tam veido visi 1025 00:56:40,480 --> 00:56:44,360 no šiem posteņiem, kas ir filtrēti. 1026 00:56:44,360 --> 00:56:47,150 >> Tātad vēl vārdiem, tas ir pati ideja, tad gradebook. 1027 00:56:47,150 --> 00:56:50,800 Mēs varētu būt dažādas pakāpes uz šo vērtību sauc numuriem. 1028 00:56:50,800 --> 00:56:55,590 Varētu būt 100 un 70, un 40, tā tālāk, un tā tālāk. 1029 00:56:55,590 --> 00:56:59,110 Ko šis filtrs nav, ir paziņojums ka tas, ka sintaktisko cukurs 1030 00:56:59,110 --> 00:57:01,310 par anonīmu funkciju. 1031 00:57:01,310 --> 00:57:05,980 Šī ir anonīma funkcija sakot ka parametrs, kas es esmu, pieņemot 1032 00:57:05,980 --> 00:57:09,690 būs, ja to ir lielāks par 70, 1033 00:57:09,690 --> 00:57:15,837 tad tas atgriezīsies taisnība, kas nozīmē, ka ka prece tiks saglabāti šo filtru. 1034 00:57:15,837 --> 00:57:17,920 Tātad pieņemsim būt mazliet konkrētākas par šo. 1035 00:57:17,920 --> 00:57:25,760 Ja man ir šis masīvs numuru un tā sastāv no 100, 70, un 40, 1036 00:57:25,760 --> 00:57:29,730 Es veikt šo filtru darbība uz katru no tiem. 1037 00:57:29,730 --> 00:57:33,270 Tāpēc, ka pirmais ir šī vērtība ir 100. 1038 00:57:33,270 --> 00:57:36,770 100 ir lielāks par vai vienāds 70 ir taisnība, kas 1039 00:57:36,770 --> 00:57:41,950 nozīmē, ka 100 tiek turēti Šī jaunā kopiju masīva. 1040 00:57:41,950 --> 00:57:44,290 70 arī iet. 1041 00:57:44,290 --> 00:57:46,020 Bet 40 nav. 1042 00:57:46,020 --> 00:57:54,290 Tātad, kas ir atgriezti passingCount ir masīvs elementu 100 līdz 70-- 1043 00:57:54,290 --> 00:57:57,410 100, komats, 70. 1044 00:57:57,410 --> 00:57:59,870 Tie bija tikai divi priekšmeti, kas tika turēti. 1045 00:57:59,870 --> 00:58:03,740 Un tā iemesls es ātri devās cauri daudz no šiem augstas, lai veida 1046 00:58:03,740 --> 00:58:08,680 lietas, jo tas ir tas, ka kopējā lieta, ka jūs redzēsiet Swift diezgan 1047 00:58:08,680 --> 00:58:16,810 bieži, ir veikt kādu darbību Izmantojot šo anonīma funkcija sintaksi. 1048 00:58:16,810 --> 00:58:18,450 >> Tur ir daži cool stuff. 1049 00:58:18,450 --> 00:58:24,730 Slēdži ir patiešām spēcīgs Swift, Es domāju tāpat kā traks, traks spēcīgs. 1050 00:58:24,730 --> 00:58:28,250 Jūs varat izmantot slēdzi, un jūs faktiski var piemērot tos 1051 00:58:28,250 --> 00:58:33,160 diapazoniem, kas ir sava veida crazy, un darīt iedomātā sīkumi, piemēram, ka. 1052 00:58:33,160 --> 00:58:37,540 >> Bet pēdējos pāris minūtēm, Es gribu izlaist uz priekšu diezgan tālu 1053 00:58:37,540 --> 00:58:46,940 un parādīs konkrētu piemēru, kā mēs varam radīt iOS app, izmantojot SWIFT. 1054 00:58:46,940 --> 00:58:49,040 Tātad, ja jūs darāt izdarītu, jums ir veikt 1055 00:58:49,040 --> 00:58:51,990 a look at-- par Apple dokumentācija, tās 1056 00:58:51,990 --> 00:58:56,084 ir daudz patiešām labas konsultācijas lai izveidotu savu pirmo pieteikumu. 1057 00:58:56,084 --> 00:58:58,250 Un es aicinu jūs to darīt ka tāpēc, ka viņi tevi 1058 00:58:58,250 --> 00:59:04,110 cauri visiem soļiem ko tieši noklikšķiniet uz izveidot iOS pieteikumu. 1059 00:59:04,110 --> 00:59:07,290 >> Bet šeit mēs esam šo iOS app. 1060 00:59:07,290 --> 00:59:10,960 Un tas ir diezgan vienkāršs app tiešām. 1061 00:59:10,960 --> 00:59:13,840 Ja es palaist šo, ļaujiet man parādīt jums, kā tas izskatās. 1062 00:59:13,840 --> 00:59:19,480 Viss tas būtībā tas ir tas atvelk no interneta JSON failu 1063 00:59:19,480 --> 00:59:22,300 ka man ir saglabāti uz servera. 1064 00:59:22,300 --> 00:59:26,310 Un tas JSON fails definē attēlus, kas ļauj 1065 00:59:26,310 --> 00:59:31,680 man tad ciklu cauri, par manu app, attēlus no mana web serveri. 1066 00:59:31,680 --> 00:59:32,880 >> Tāpēc man ir šeit getNextImage. 1067 00:59:32,880 --> 00:59:37,100 Tas slodzes attēlu no interneta, un pēc tam parāda to uz ekrāna. 1068 00:59:37,100 --> 00:59:38,200 >> Tātad tas ir diezgan vienkārši. 1069 00:59:38,200 --> 00:59:41,550 Bet mērķis šeit ir, lai parādītu jums, kā mēs varam apvienot lietas 1070 00:59:41,550 --> 00:59:47,820 no pēdējo pāris nedēļu laikā CS50 uz faktiskā iOS pieteikumu. 1071 00:59:47,820 --> 00:59:53,140 Citiem vārdiem sakot, iespējams, viens no lietas, ko jūs vēlaties darīt 1072 00:59:53,140 --> 00:59:56,340 ir ir iOS lietojumprogramma, kas var pull datus no interneta 1073 00:59:56,340 --> 00:59:59,070 un parādīt lietotājam kādu informāciju. 1074 00:59:59,070 --> 01:00:03,130 Tas ir pilnīgi punkts Šīs pirmkodu šeit. 1075 01:00:03,130 --> 01:00:07,890 >> Tātad tur ir daudz ko teikt par kā to izdarīt faktisko iOS attīstību. 1076 01:00:07,890 --> 01:00:12,860 Ir daudz traks sintakse ka mēs neesam redzējuši diezgan vēl 1077 01:00:12,860 --> 01:00:15,580 piemēram, klasē, ko klases patiesībā ir. 1078 01:00:15,580 --> 01:00:19,470 Mēs varam lielā mērā ignorēt ka pagaidām. 1079 01:00:19,470 --> 01:00:23,250 >> Bet paziņo, ka mēs esam iekļauti ietvaros šī dažādas lietas 1080 01:00:23,250 --> 01:00:27,720 ka mēs esam jau redzējuši, piemēram, funkcijas, kas ir īpašas nosaukumus. 1081 01:00:27,720 --> 01:00:32,650 Un, kad mēs dodam tiem funkcijas pareizos vārdus 1082 01:00:32,650 --> 01:00:36,530 ka ir sagaidāms ar iOS, patiesībā tas jūtas mazliet maģisks. 1083 01:00:36,530 --> 01:00:40,300 Bet, kad jūs izveidot iOS lietojumprogramma, tur 1084 01:00:40,300 --> 01:00:47,590 ir īpaša funkcija vārdi, kas tiek sauktas par tālruni pati 1085 01:00:47,590 --> 01:00:52,440 kā pieteikums ir iekraušanas, lai mēģinātu , lai izveidotu procesu, kas faktiski 1086 01:00:52,440 --> 01:00:54,787 iet savu pieteikumu. 1087 01:00:54,787 --> 01:00:58,120 Tātad vēlreiz, tur ir daudz lietas, kas man ir spīdums pār šeit, lai par mums 1088 01:00:58,120 --> 01:01:00,570 runāt par to konkrēti. 1089 01:01:00,570 --> 01:01:06,050 Bet es aicinu jūs apskatīt varbūt otrs iOS seminārs, bet arī daži 1090 01:01:06,050 --> 01:01:09,290 no konsultācijas tiešsaistē, kas darīt daudz labāks darbs aprakstot 1091 01:01:09,290 --> 01:01:11,030 konkrēto informāciju. 1092 01:01:11,030 --> 01:01:15,760 >> Bet mēs varam redzēt pāris lietas, kas ir interesanti no kodu šeit. 1093 01:01:15,760 --> 01:01:17,950 Ievērojiet, ka mums ir, ja pārskatos. 1094 01:01:17,950 --> 01:01:20,400 Starp citu, viens svarīgs lieta par to, ja paziņojumiem 1095 01:01:20,400 --> 01:01:24,860 ir tas, ka iekavas ap Būla izteiksme ir obligāta. 1096 01:01:24,860 --> 01:01:30,800 Bet cirtaini bikšturi, nav obligāta, nav svarīgi, cik maz vai daudz koda rindiņas 1097 01:01:30,800 --> 01:01:32,360 jums ir, ja paziņojums. 1098 01:01:32,360 --> 01:01:38,670 Jūs nevarat būt, ja pārskatu bez cirtaini lencēm SWIFT. 1099 01:01:38,670 --> 01:01:41,000 >> Un tas ir labi, sava veida dumjš. 1100 01:01:41,000 --> 01:01:43,910 Bet tur ir vēsturiski iemesli, kas. 1101 01:01:43,910 --> 01:01:46,180 Tas ir paredzēts, lai saglabātu jūs no sevis. 1102 01:01:46,180 --> 01:01:49,899 Tāpat kā šī, piemēram, jūs nevarat novērstu cirtaini bikšturi ap ka 1103 01:01:49,899 --> 01:01:50,440 ja paziņojums. 1104 01:01:50,440 --> 01:01:52,730 Tie ir faktiski nepieciešama. 1105 01:01:52,730 --> 01:01:54,480 Tāpēc es aicinu jūs apskatīt šo. 1106 01:01:54,480 --> 01:01:56,230 Bet tur ir vēl viens būvēt, ka es gribu 1107 01:01:56,230 --> 01:02:02,640 lai parādītu jums par Swift ka ir jauns Swift 2.0 salīdzinot 1108 01:02:02,640 --> 01:02:08,460 uz vecākām versijām Swift, kurā ir šādi. 1109 01:02:08,460 --> 01:02:11,620 Paskatīsimies kurienes man to šeit? 1110 01:02:11,620 --> 01:02:16,630 >> Tātad šo funkciju sauc fetchJSON, šī funkcija 1111 01:02:16,630 --> 01:02:23,450 ir atbildīga par velkot šo JSON failu no URL, kas tikai tā notiek, 1112 01:02:23,450 --> 01:02:26,310 kas darbojas uz manu CS50 IDE. 1113 01:02:26,310 --> 01:02:28,580 Es tikko sāku Apache, manu JSON failu tur, 1114 01:02:28,580 --> 01:02:32,110 un es esmu spējīgs, tad pull ka dati no interneta, izmantojot 1115 01:02:32,110 --> 01:02:36,430 Šī funkcija un šo URL, kas tiek nodrošināta ar telefonu. 1116 01:02:36,430 --> 01:02:40,490 Tas ir ar nosacījumu par vienu bibliotēka, kas jūs izmantojat, kad 1117 01:02:40,490 --> 01:02:43,140 jūs darāt daži iOS app attīstību. 1118 01:02:43,140 --> 01:02:49,690 >> Ievērojiet, šeit, ka šis neparastais sintakses būvēt sauc aizsargu. 1119 01:02:49,690 --> 01:02:53,530 Un tiešām tas viss ir Swift ir veids, kā pārbaudīt 1120 01:02:53,530 --> 01:02:56,870 ka dažas lietas ir izpildīti pirms jums 1121 01:02:56,870 --> 01:03:00,000 turpināt ar pārējo funkciju. 1122 01:03:00,000 --> 01:03:04,260 Lai es varētu būt, izmantojot Šī izvēles veidu, 1123 01:03:04,260 --> 01:03:10,530 Es varētu būt atradis URL, rādīt šo NSURL funkciju 1124 01:03:10,530 --> 01:03:16,640 un uzglabāšanu, kas stājas URL konstante, un pēc tam pārbaudot 1125 01:03:16,640 --> 01:03:20,820 lai redzētu, vai URL bija nulle, jo tas gatavojas atgriezties izvēles veidu. 1126 01:03:20,820 --> 01:03:25,660 Un, ja tas bija nulle, tad es būtu izdrukāt kļūdu un pēc tam atgriezties. 1127 01:03:25,660 --> 01:03:29,970 >> Bet tā vietā, ko aizsargs ļauj mums jādara, ir tas, ka ļoti lieta, 1128 01:03:29,970 --> 01:03:34,550 bet nodrošina to, ka tas ir faktiski lieta, ka url 1129 01:03:34,550 --> 01:03:38,020 ir pareizi noteikusi NSURL. 1130 01:03:38,020 --> 01:03:41,810 Un, ja tā ir, tad tas Lēcieni pār to, un tas 1131 01:03:41,810 --> 01:03:46,110 ļaus jums turpināt url ticis pienācīgi definētas. 1132 01:03:46,110 --> 01:03:48,830 Bet, ja tas ir gadījumā, kas url nav pienācīgi definēts, 1133 01:03:48,830 --> 01:03:52,550 ja šī funkcija atgriež kļūdu vai kādu citu negaidīti lieta 1134 01:03:52,550 --> 01:03:58,030 faktiski notiek, šo aizsargu konstrukciju ļauj mums tad izejas šī kļūda 1135 01:03:58,030 --> 01:04:00,390 un atgriezties nekavējoties. 1136 01:04:00,390 --> 01:04:00,890 Jā? 1137 01:04:00,890 --> 01:04:04,839 >> Mērķauditorija: Tātad, tas ir sava veida līdzīgu IF tad cits? 1138 01:04:04,839 --> 01:04:07,130 DAN ARMENDARIZ: Tas ir sava veida piemēram, IF, tad cits, jā, 1139 01:04:07,130 --> 01:04:14,200 izņemot to, ka tas url ir, tad noteikts par visu zem šī. 1140 01:04:14,200 --> 01:04:20,420 Ja tas iet šo aizsargu, tad to faktiski tiks piepildīta ar datiem 1141 01:04:20,420 --> 01:04:29,500 un izmantojami atlikušie pirmkods savu funkciju. 1142 01:04:29,500 --> 01:04:33,790 Tāpēc man ir aizdomas, ka jūs gatavojas sākat redzēt šo aizsargu, kā arī. 1143 01:04:33,790 --> 01:04:36,670 Un ir norūpējusies par to. 1144 01:04:36,670 --> 01:04:46,270 >> Tik vienkārši apskatot pāris citu lietas, šīs tiesības šeit ir tas, ko, 1145 01:04:46,270 --> 01:04:53,377 Vai jūs domājat, tikai, pamatojoties uz to, ko mēs runājām par agrāk? 1146 01:04:53,377 --> 01:04:56,650 >> Mērķauditorija: Domāju, ka tas rādīsim sarakstā? 1147 01:04:56,650 --> 01:04:59,100 >> DAN ARMENDARIZ: Tātad tas ir tuvu. 1148 01:04:59,100 --> 01:05:02,360 Šī ir funkcija, kas mums ir definēt. 1149 01:05:02,360 --> 01:05:07,240 Un mēs ievadījusi šo funkciju kā arguments, lai šo funkciju šeit. 1150 01:05:07,240 --> 01:05:09,120 >> Mērķauditorija: [dzirdams], ja nav nulle. 1151 01:05:09,120 --> 01:05:11,470 Tātad, tas ir sarakstā, vai ne? 1152 01:05:11,470 --> 01:05:15,450 >> DAN ARMENDARIZ: Ja kļūda nav nulle, tā ka is-- tāpēc man ir, lai ritinātu. 1153 01:05:15,450 --> 01:05:18,060 Nu, pieņemsim redzēt, es nevaru īsti ritiniet pa labi šeit. 1154 01:05:18,060 --> 01:05:23,161 kļūda ir arguments, kas tiek nodots šim anonīmu funkciju. 1155 01:05:23,161 --> 01:05:24,410 Šī ir anonīma funkcija. 1156 01:05:24,410 --> 01:05:25,480 Tas nav nosaukuma. 1157 01:05:25,480 --> 01:05:29,850 Bet mēs pieņemam šīs trīs argumenti, dati, reakcija, un kļūda. 1158 01:05:29,850 --> 01:05:33,590 Un tas ir gatavojas atgriezties spēkā neesošu, tāpēc tas nav gatavojas atgriezties neko. 1159 01:05:33,590 --> 01:05:37,910 Un tas ir saturs Minētās funkcijas. 1160 01:05:37,910 --> 01:05:41,961 Un tad mums ir pieeja iekšpusē, kas funkcija, lai katrs no šiem argumentus. 1161 01:05:41,961 --> 01:05:45,650 1162 01:05:45,650 --> 01:05:48,679 >> Tātad, tas ir viesulis ekskursija valodas. 1163 01:05:48,679 --> 01:05:50,470 Bet es ceru, ka ar to, cerams, kā jūs lietojat 1164 01:05:50,470 --> 01:05:54,490 apskatīt dažus no konsultācijas specifiski iOS attīstību ar Swift, 1165 01:05:54,490 --> 01:05:57,481 it īpaši, ja jums iet uz Apple attīstītājs web page-- 1166 01:05:57,481 --> 01:05:59,980 viņiem ir daudz tiešām labi konsultācijas, lai iegūtu Jums sākusies. 1167 01:05:59,980 --> 01:06:05,010 Bet cerams, ka tieši šī stunda runāt par sintaksi pati ir devusi 1168 01:06:05,010 --> 01:06:08,760 jums pietiekami, lai sāktu ar to. 1169 01:06:08,760 --> 01:06:12,950 >> Mēs publicēsim visu šī avota kods uz semināra mājas lapā 1170 01:06:12,950 --> 01:06:17,800 cik drīz vien iespējams, un arī slaidiem tāpēc jums ir lūgums visiem tiem. 1171 01:06:17,800 --> 01:06:20,530 Bet lai jums veicas ar saviem projektiem. 1172 01:06:20,530 --> 01:06:23,640 Un paldies jums visiem ļoti daudz nāk. 1173 01:06:23,640 --> 01:06:26,990 >> [Aplausi] 1174 01:06:26,990 --> 01:06:28,026