1 00:00:00,000 --> 00:00:03,332 >> [Music kucheza] 2 00:00:03,332 --> 00:00:06,200 3 00:00:06,200 --> 00:00:09,590 >> DAN AMRMENDARIZ: Kila mtu, kuwakaribisha kwa CS50 semina hiyo, 4 00:00:09,590 --> 00:00:11,690 iOS App Maendeleo na Swift. 5 00:00:11,690 --> 00:00:15,690 Mimi nina Dan Armendáriz, na mimi nina preceptor ya sayansi ya kompyuta hapa katika Harvard. 6 00:00:15,690 --> 00:00:21,510 >> Na saa ijayo ni kwenda kuwa ziara kimbunga cha mambo mengi 7 00:00:21,510 --> 00:00:25,160 kuhusu mada hii kama tunaweza fit. 8 00:00:25,160 --> 00:00:29,170 Nami baada yote ya chanzo kanuni kwamba utaona leo online. 9 00:00:29,170 --> 00:00:31,990 Tunaweza kuwa na uwezo wa kweli kwenda juu ya kila kitu 10 00:00:31,990 --> 00:00:34,810 kwamba mimi nina kwamba mimi nina kuonyesha katika saa hii. 11 00:00:34,810 --> 00:00:37,580 Lakini angalau hopefully kupitia maoni ya chanzo kanuni, 12 00:00:37,580 --> 00:00:40,830 wewe utakuwa na uwezo wa kujaribu kufikiri nini hasa kinachotokea kwa mambo hayo 13 00:00:40,830 --> 00:00:42,950 kwamba hatuna kabisa kupata. 14 00:00:42,950 --> 00:00:46,970 >> Kwa ujumla, muundo wa Majadiliano ya leo itakuwa kama ifuatavyo. 15 00:00:46,970 --> 00:00:52,820 Tutaweza kuanza nje kufanya baadhi ya msingi syntax kwa lugha Swift, 16 00:00:52,820 --> 00:00:56,290 kwenda katika baadhi ya juu zaidi syntax ya lugha Swift. 17 00:00:56,290 --> 00:00:59,560 Kwa sababu lugha ni kweli kisasa na 18 00:00:59,560 --> 00:01:02,110 ina mengi ya ngazi ya juu makala, mambo ambayo tuna si 19 00:01:02,110 --> 00:01:06,600 kuonekana katika C katika CS50, au hata baadhi ya lugha nyingine 20 00:01:06,600 --> 00:01:09,310 kwamba tumekuwa kuanza kutumia katika CS50 kama PHP, 21 00:01:09,310 --> 00:01:12,670 hivyo mimi ni kwenda kuwa na kujaribu kuanzisha pia baadhi ya mada ambazo 22 00:01:12,670 --> 00:01:18,580 ni kuhusiana na lugha ngazi za juu kwamba unaweza kuona katika kina katika CS50, 23 00:01:18,580 --> 00:01:21,380 lakini utaona katika baadaye sayansi ya kompyuta madarasa. 24 00:01:21,380 --> 00:01:25,290 Hivyo ni kwenda kuwa lenye msongamano mkubwa saa. 25 00:01:25,290 --> 00:01:28,897 Na tafadhali jisikie huru basi mimi kujua kama una maswali yoyote. 26 00:01:28,897 --> 00:01:30,730 Hivyo kama wewe ni nia kwa kufanya maendeleo 27 00:01:30,730 --> 00:01:34,442 pamoja Swift, au kweli yoyote iOS programu ya maendeleo, 28 00:01:34,442 --> 00:01:35,900 kuna wanandoa wa mahitaji. 29 00:01:35,900 --> 00:01:39,940 Awali ya yote, una kutumia Mac, mbio katika mifano 30 00:01:39,940 --> 00:01:43,880 kwamba sisi ni kwenda kuwa na kutumia leo, toleo la kipya cha OS 31 00:01:43,880 --> 00:01:46,580 X. Katika kesi hiyo, mimi nina mbio X 10.5. 32 00:01:46,580 --> 00:01:48,600 Unaweza kuwa mbio 10.11 kama unataka. 33 00:01:48,600 --> 00:01:52,430 Lakini kila kitu ambacho wewe ni kwenda ona ni kuwashirikisha Xcode 7 na baadaye, 34 00:01:52,430 --> 00:01:56,271 ambayo ina toleo la karibuni ya Swift, ambayo ni Mwepesi 2.0. 35 00:01:56,271 --> 00:01:58,270 Hii ni kweli pretty muhimu tofauti. 36 00:01:58,270 --> 00:02:01,510 Mengi ya syntax ina iliyopita pretty kiasi kikubwa 37 00:02:01,510 --> 00:02:05,890 katika baadhi ya kesi kutoka Swift 1.0, ambayo ilitolewa mwaka jana, 38 00:02:05,890 --> 00:02:08,514 kwa Swift 2.0, ambayo tu akatoka hii kuanguka. 39 00:02:08,514 --> 00:02:09,889 Hivyo sisi ni kwenda kuonyesha Swift 2.0. 40 00:02:09,889 --> 00:02:13,020 Mambo mengi ambayo wewe kutafuta online 41 00:02:13,020 --> 00:02:18,040 wakati wewe ni kujaribu kupata nyongeza taarifa kuhusu aina ya mambo, 42 00:02:18,040 --> 00:02:20,710 unaweza kutaka kupanga kutafuta Swift 2 43 00:02:20,710 --> 00:02:24,950 badala ya wazi tu umri wa Swift kufanya uhakika kwamba kupata syntax sahihi. 44 00:02:24,950 --> 00:02:26,920 >> Kwa kweli, hii ni kwa ujumla kweli. 45 00:02:26,920 --> 00:02:31,210 Kuna kiasi ya haraka ya maendeleo kinachotokea katika lugha Swift 46 00:02:31,210 --> 00:02:35,110 tangu wakati huo Apple iliyotolewa yake, nadhani nini, imekuwa ni kidogo zaidi ya mwaka 47 00:02:35,110 --> 00:02:36,370 sasa. 48 00:02:36,370 --> 00:02:39,080 Na mambo yamebadilika kasi wakati huo. 49 00:02:39,080 --> 00:02:42,160 Na hivyo si kuwa frustrated kama, wakati wewe ni kuangalia kuzunguka 50 00:02:42,160 --> 00:02:48,310 kwa mada juu ya Swift au jinsi ya kutekeleza kitu kwa kutumia baadhi mfano kificho 51 00:02:48,310 --> 00:02:51,210 au kitu ambacho hana kweli kazi juu ya Swift 2.0. 52 00:02:51,210 --> 00:02:53,790 Kuhakikisha wewe ni kuangalia mahsusi kwa ajili ya toleo kwamba 53 00:02:53,790 --> 00:02:58,690 kujaribu kupunguza madhara ya tofauti matoleo na wale aina ya mambo. 54 00:02:58,690 --> 00:03:02,470 >> Nitajaribu kumweka nje baadhi tu ya mambo ambayo ni tofauti na matoleo ya zamani. 55 00:03:02,470 --> 00:03:03,970 Lakini ni kitu cha kuangalia nje kwa. 56 00:03:03,970 --> 00:03:06,770 Hiyo pengine ni kwenda kuwa moja ya maumivu ya kichwa kubwa 57 00:03:06,770 --> 00:03:11,010 kwamba utakuwa na kwa Swift ni kutafuta mfano kificho kwamba ni wakubwa, hata tu 58 00:03:11,010 --> 00:03:14,050 na miezi michache, kujaribu kutumia hivyo katika zaidi ya kisasa ya mradi wako. 59 00:03:14,050 --> 00:03:15,430 Na ni haki tu haifanyi kazi. 60 00:03:15,430 --> 00:03:18,530 Wewe ni kupata makosa compiler, syntax makosa, kila aina ya mambo mambo. 61 00:03:18,530 --> 00:03:21,580 Hivyo tu kuwa na subira na hiyo, na wewe hopefully 62 00:03:21,580 --> 00:03:24,200 wana uzoefu mzuri nzuri kwa ujumla Swift. 63 00:03:24,200 --> 00:03:28,430 >> Sasa unaweza kweli join-- na natumaini sisi kweli bado wana hii year-- hii 64 00:03:28,430 --> 00:03:30,910 CS 50 ya Apple programu timu ya maendeleo, ambayo 65 00:03:30,910 --> 00:03:34,680 itawawezesha kufunga programu yoyote ambayo wewe kujenga juu yako iOS. 66 00:03:34,680 --> 00:03:39,190 Hivyo kuchukua kuangalia URL hii ikiwa una nia ya kufanya hivyo. 67 00:03:39,190 --> 00:03:41,450 >> Hivyo michache tu ya mambo kuhusu Swift yenyewe. 68 00:03:41,450 --> 00:03:43,580 Ni lugha ulioandaliwa. 69 00:03:43,580 --> 00:03:45,870 Lakini utaona kwamba baadhi ya sifa ya kuwa sisi kutumia 70 00:03:45,870 --> 00:03:50,650 kuruhusu ni kutumika pia katika kidogo kama kufasiriwa kwa njia vilevile. 71 00:03:50,650 --> 00:03:56,350 >> Mengi ya syntax ni alikopa kutoka C. Ni msingi na kuandikwa katika C. 72 00:03:56,350 --> 00:04:00,400 Na hivyo tutaona kwamba kuna mengi ya takeaways 73 00:04:00,400 --> 00:04:04,450 kutokana na elimu yako zilizopo kutoka C kwamba tunaweza bandari ya Swift. 74 00:04:04,450 --> 00:04:07,290 >> Lakini kuna mambo ambayo kufanya hivyo tofauti sana na C. 75 00:04:07,290 --> 00:04:08,860 Ni nguvu sana typed. 76 00:04:08,860 --> 00:04:10,380 Kuna usimamizi wa kumbukumbu moja kwa moja. 77 00:04:10,380 --> 00:04:13,170 Wewe si kwenda na kutumia malloc au bure mahali popote. 78 00:04:13,170 --> 00:04:15,110 Ni iliyoundwa kwa ajili ujumla. 79 00:04:15,110 --> 00:04:19,480 Hivyo kwa maneno mengine, unaweza kutumia katika kila aina ya mazingira, kutoka Apple Watch 80 00:04:19,480 --> 00:04:26,290 kwa iPhone njia yote hadi OS X, na hata baadhi ya watumishi, hata baadhi ya scripting. 81 00:04:26,290 --> 00:04:28,400 Lakini tutaweza kuona kwamba msaada kwa ajili ya scripting 82 00:04:28,400 --> 00:04:31,360 sio kabisa huko bado kama ni katika lugha nyingine. 83 00:04:31,360 --> 00:04:34,930 Hivyo uwezekano mkubwa wewe utakuwa na kutumia hii kwa ajili tu ya maendeleo 84 00:04:34,930 --> 00:04:37,060 juu ya Mac yako au iPhone yako. 85 00:04:37,060 --> 00:04:40,150 >> Na ina mengi ya makala kisasa. 86 00:04:40,150 --> 00:04:43,380 Na mengi ya mambo haya ni mambo ambayo tunakwenda kujaribu kushughulikia leo, 87 00:04:43,380 --> 00:04:47,590 lakini pia mada yetu kwamba kusema ukweli, tunaweza kujishughulisha kozi nzima. 88 00:04:47,590 --> 00:04:50,140 Kwa kweli, CS 51, ambayo ni inayotolewa muhula ujao, 89 00:04:50,140 --> 00:04:53,990 inalenga mengi juu ya mada hizi kwamba ni ilivyoelezwa hapo chini. 90 00:04:53,990 --> 00:04:56,781 Hivyo unaweza kutumia muhula mzima kuelewa mambo haya. 91 00:04:56,781 --> 00:04:58,530 Lakini sisi ni kwenda kujaribu kupata njia yao 92 00:04:58,530 --> 00:05:00,800 angalau kutosha kwamba anaweza kuelewa nini 93 00:05:00,800 --> 00:05:03,700 kinachoendelea wakati ukiangalia katika mpango Swift 94 00:05:03,700 --> 00:05:07,310 na kuwa na uwezo wa hack njia yako kwa njia hiyo kwa mradi wa mwisho. 95 00:05:07,310 --> 00:05:10,780 >> Sasa moja ya njia bora kwamba unaweza kupata maelezo ya ziada juu ya hili 96 00:05:10,780 --> 00:05:14,700 ni kusema ukweli tu kupitia Apple zinazotolewa nyaraka kwa ajili ya Swift. 97 00:05:14,700 --> 00:05:16,930 Kuna mengi ya APIs ambayo inapatikana. 98 00:05:16,930 --> 00:05:21,170 Na hii ni nzuri nyumbani msingi kwa ajili yenu kwa kuangalia, mambo maalum kwamba 99 00:05:21,170 --> 00:05:23,020 wanataka kufanya na API kuwashirikisha iOS. 100 00:05:23,020 --> 00:05:26,350 Kama unataka kutumia kamera kwa mfano, unaweza kuanza kuangalia hapa, 101 00:05:26,350 --> 00:05:32,540 na pia kutumia Google na Stack Kufurika kama wewe ungekuwa kawaida. 102 00:05:32,540 --> 00:05:36,670 >> Maswali yoyote juu ya hii kabla ya sisi kuruka haki katika? 103 00:05:36,670 --> 00:05:37,880 Sawa. 104 00:05:37,880 --> 00:05:38,700 Hebu hoja juu. 105 00:05:38,700 --> 00:05:42,620 >> Hivyo kwanza, nina idadi ya mafaili mfano. 106 00:05:42,620 --> 00:05:46,040 Na mimi nina kwenda kujaribu hatua njia yao kiasi haraka. 107 00:05:46,040 --> 00:05:49,190 Faili hili Hello World kwa Swift. 108 00:05:49,190 --> 00:05:51,050 Ni rahisi sana. 109 00:05:51,050 --> 00:05:54,360 Kuna maoni njia zaidi kuliko kuna kanuni halisi. 110 00:05:54,360 --> 00:05:57,100 Taarifa kificho halisi ni katika chini sana kwenye mstari 14. 111 00:05:57,100 --> 00:05:57,980 Inasema magazeti. 112 00:05:57,980 --> 00:05:59,820 Na kisha ni kazi ya wito. 113 00:05:59,820 --> 00:06:03,010 Sisi ni kupita ndani yake string kuitwa Habari cs50. 114 00:06:03,010 --> 00:06:04,750 Taarifa kwamba hakuna semicolons. 115 00:06:04,750 --> 00:06:07,010 Taarifa kwamba hakuna int kuu. 116 00:06:07,010 --> 00:06:10,392 Kuna hakuna wa cruft kwamba tulikuwa na C. 117 00:06:10,392 --> 00:06:15,020 Wakati sisi ni kutumia Swift kwa njia hii, ambayo imeandikwa tu katika faili maandishi 118 00:06:15,020 --> 00:06:18,340 na kuhifadhiwa kwenye kompyuta yangu, kisha Siwezi kukusanya ni na kukimbia nayo. 119 00:06:18,340 --> 00:06:20,920 >> Taarifa kwamba hapa mimi nina si kwa kutumia CS50 IDE. 120 00:06:20,920 --> 00:06:24,460 Hii akubali kwamba mimi ni mbio na kwamba mimi nina juu ya OS X, 121 00:06:24,460 --> 00:06:27,870 na kwamba mimi Xcode tayari imewekwa juu ya mashine hii ili kwa hili 122 00:06:27,870 --> 00:06:29,080 kwa kweli kazi. 123 00:06:29,080 --> 00:06:33,349 Lakini hii ni kawaida ya maandishi ya faili tuweze kisha kukusanya na hariri. 124 00:06:33,349 --> 00:06:34,890 Basi hebu angalia jinsi hii kweli kazi. 125 00:06:34,890 --> 00:06:37,430 Nini kama nataka kukusanya ni? 126 00:06:37,430 --> 00:06:40,450 swiftc 1.swift. 127 00:06:40,450 --> 00:06:42,960 Baada ya muda au mbili, ni utaona kwamba tuna sasa 128 00:06:42,960 --> 00:06:45,360 ulioandaliwa hii katika faili inayoitwa 1. 129 00:06:45,360 --> 00:06:51,090 Na sasa tuna kuchapishwa CS50 yetu, Hello World yetu maombi badala. 130 00:06:51,090 --> 00:06:54,690 >> Taarifa ya jambo moja nyingine kama vizuri ni kwamba by default, 131 00:06:54,690 --> 00:07:00,090 hatukuwa na pembejeo a / n na magazeti mstari mpya. 132 00:07:00,090 --> 00:07:05,315 By default, magazeti kazi katika Swift magazeti mstari mpya kwa ajili yenu. 133 00:07:05,315 --> 00:07:09,284 Unaweza kupita hiari ziada parameter kuwaambia kuwa si kufanya hivyo. 134 00:07:09,284 --> 00:07:10,950 Lakini Google kwa maelezo zaidi juu ya hilo. 135 00:07:10,950 --> 00:07:13,450 By default, itakuwa kufanya mstari magazeti. 136 00:07:13,450 --> 00:07:16,420 >> Haki wote, hivyo hebu hoja juu ya kisha kwa baadhi ya mambo mengine. 137 00:07:16,420 --> 00:07:18,620 Hivyo ni jinsi gani sisi kweli kufafanua vigezo? 138 00:07:18,620 --> 00:07:21,960 Tunaweza kufanya hivyo kwa kutumia moja ya njia mbili. 139 00:07:21,960 --> 00:07:26,122 Na moja kwamba mimi nataka kukuambia kuhusu kwanza ni huu ufafanuzi let. 140 00:07:26,122 --> 00:07:27,830 Na hii ni muhimu kwa sababu kwa ufanisi 141 00:07:27,830 --> 00:07:30,240 nini sisi ni kufanya ni kufafanua mara kwa mara. 142 00:07:30,240 --> 00:07:34,010 Tunaenda kuunda kutofautiana, au tuseme mara kwa mara kuitwa jina, 143 00:07:34,010 --> 00:07:38,200 kutoa yake baadhi data-- katika kesi hiyo, kamba Dan. 144 00:07:38,200 --> 00:07:40,630 Lakini kwa kutumia let hii keyword, tunasema 145 00:07:40,630 --> 00:07:43,860 kwamba hii kutofautiana au tena constant-- aitwaye 146 00:07:43,860 --> 00:07:46,220 jina ni kamwe kwenda kubadilishwa. 147 00:07:46,220 --> 00:07:50,120 Ni kwenda kuwa hayabadiliki katika muda wa mpango huu 148 00:07:50,120 --> 00:07:53,100 au katika muda wa mazingira 149 00:07:53,100 --> 00:07:55,390 kuwa kwamba kutofautiana inapatikana. 150 00:07:55,390 --> 00:08:00,096 >> Hii ni kweli ni muhimu kwamba wakati una baadhi ya takwimu ambazo siyo 151 00:08:00,096 --> 00:08:02,970 kwenda na mabadiliko katika mpango wako, na utaona aina ya mifano 152 00:08:02,970 --> 00:08:06,790 kuhusu wakati tunataka kutumia basi dhidi syntax mengine, 153 00:08:06,790 --> 00:08:11,040 ni muhimu kwamba wewe kutumia basi popote iwezekanavyo kwa sababu notifies hii 154 00:08:11,040 --> 00:08:13,740 lugha kuwa ni si kwenda kubadilishwa, 155 00:08:13,740 --> 00:08:16,590 na ni kweli anaweza kufanya mengi ya optimizations 156 00:08:16,590 --> 00:08:19,560 kuboresha kasi na usalama wa programu yako. 157 00:08:19,560 --> 00:08:24,480 Na kwa usalama, I mean, si lazima ni ajali na mambo makosa 158 00:08:24,480 --> 00:08:27,910 ili tuweze kuwa wamezoea kuona katika C. 159 00:08:27,910 --> 00:08:32,460 >> Basi tunaweza kutumia kamba nyongeza katika kitabu kurejelea hii ndani ya kamba. 160 00:08:32,460 --> 00:08:35,200 Ili tuweze kuona katika hii magazeti line, magazeti hodi, 161 00:08:35,200 --> 00:08:38,950 na kisha kwa kutumia backslash wazi parens, na kisha jina la kutofautiana yangu, 162 00:08:38,950 --> 00:08:41,809 katika hii mara kwa mara kesi, karibu mabano. 163 00:08:41,809 --> 00:08:46,400 Mimi kimsingi kisha kuweka yaliyomo ya hii jina kutofautiana kuitwa 164 00:08:46,400 --> 00:08:50,240 ndani ya kamba na kisha uchapishaji matokeo huko. 165 00:08:50,240 --> 00:08:54,070 >> Kuna moja mabadiliko mengine na faili hili ambayo ni kwamba mimi, juu sana, 166 00:08:54,070 --> 00:08:57,340 kuweka katika mstari shebang, ambayo kimsingi tu bayana 167 00:08:57,340 --> 00:09:00,180 kwamba mimi nataka kutumia Swift mkalimani, ambayo 168 00:09:00,180 --> 00:09:04,190 maana yake ni kwamba mimi tena kuwa na kukusanya mpango huu hasa. 169 00:09:04,190 --> 00:09:06,567 Siwezi kukimbia tu ni kama Muswada yake mwenyewe. 170 00:09:06,567 --> 00:09:09,400 Lakini hii ni, katika kesi hii, nyuma ya pazia kuwa ulioandaliwa na kisha 171 00:09:09,400 --> 00:09:10,030 kuwa kukimbia. 172 00:09:10,030 --> 00:09:13,540 Ni tu asiyeonekana kwetu. 173 00:09:13,540 --> 00:09:15,880 >> Haki wote, hivyo hebu kuondoka. 174 00:09:15,880 --> 00:09:19,650 Hivyo kuna kidogo ya hila kwamba ilitokea tu kabla. 175 00:09:19,650 --> 00:09:23,230 Mimi ilionyesha kuwa mimi aliweza kuainisha mara kwa mara. 176 00:09:23,230 --> 00:09:25,490 Na mimi naweza kutoa baadhi data ya kufanya hivyo. 177 00:09:25,490 --> 00:09:29,240 Lakini katika kesi hii, taarifa kwamba sikuwa kweli bayana aina ya data 178 00:09:29,240 --> 00:09:29,820 kuwa ni. 179 00:09:29,820 --> 00:09:32,780 Na hiyo ndiyo sababu compiler, Swift Unaweza 180 00:09:32,780 --> 00:09:36,910 kudai aina ya data kwa kuzingatia tu juu ya data kwamba mimi kuweka ndani yake. 181 00:09:36,910 --> 00:09:41,760 Kwa sababu anajua kwamba kwa kufanya tathmini ya hii kutofautiana haki hapa, hii haki data 182 00:09:41,760 --> 00:09:43,370 hapa, ni anajua kwamba ni kamba. 183 00:09:43,370 --> 00:09:48,690 Na hivyo jina hili mara kwa mara ni kwa hiyo kwenda kuwa kamba vilevile. 184 00:09:48,690 --> 00:09:52,730 >> Lakini tunaweza pia kuwa wazi kuhusu aina hiyo ni 185 00:09:52,730 --> 00:09:55,790 sisi ni kwenda kutumia kwa constants au vigezo 186 00:09:55,790 --> 00:10:01,590 kwa kutumia syntax hii instead-- basi jina matumbo Kamba sawa na 187 00:10:01,590 --> 00:10:05,530 Dan, ambayo katika kesi hii ina maana tuko kwenda kufafanua mara kwa mara kuitwa jina. 188 00:10:05,530 --> 00:10:07,150 Ni kwenda kuwa ya aina Kamba. 189 00:10:07,150 --> 00:10:10,550 Na thamani ni kwenda kuwa Dan. 190 00:10:10,550 --> 00:10:12,550 Sasa njia nyingine ambazo tunaweza kujenga variables-- 191 00:10:12,550 --> 00:10:15,549 na hizi ni vigezo mutable, ambayo ina maana kwamba sisi ni, kwa kweli, kwenda 192 00:10:15,549 --> 00:10:19,670 kubadili yaliyomo yao wakati mwingine katika muda wa mazingira 193 00:10:19,670 --> 00:10:23,890 kwamba kuwa kutofautiana ni defined-- sisi kutumia var keyword badala ya basi. 194 00:10:23,890 --> 00:10:27,400 Lakini tena, kwa default, isipokuwa wewe kujua kwamba unahitaji kuendesha data kwamba, 195 00:10:27,400 --> 00:10:30,510 kujaribu kutumia basi kwa utendaji maboresho. 196 00:10:30,510 --> 00:10:33,740 >> Katika kesi hiyo, naweza kisha kutaja aina ya data 197 00:10:33,740 --> 00:10:37,650 kwamba tunatarajia kuwa ndani ya kutofautiana hii mpya iitwayo studio. 198 00:10:37,650 --> 00:10:38,800 Ni kwenda kuwa kamba. 199 00:10:38,800 --> 00:10:43,030 Na tunakwenda kisha concatenate masharti mawili kwa pamoja, kamba hodi, 200 00:10:43,030 --> 00:10:48,070 na kamba inawakilishwa na kutofautiana, au tuseme jina mara kwa mara. 201 00:10:48,070 --> 00:10:50,660 >> Hivyo hii ni nzuri kwa sababu hii ni kiasi fulani PHP kama katika kwamba sisi 202 00:10:50,660 --> 00:10:52,250 kuwa rahisi sana kamba concatenation. 203 00:10:52,250 --> 00:10:56,350 Hatuna moja kwa moja kutumia aina yoyote ya usimamizi wa kumbukumbu 204 00:10:56,350 --> 00:11:00,580 kuongeza ukubwa na kufanya aina yoyote ya mambo funny huko. 205 00:11:00,580 --> 00:11:05,040 Hii kazi kama tunataka kweli kutarajia. 206 00:11:05,040 --> 00:11:09,370 >> Haki zote, maswali yoyote juu ya hili? 207 00:11:09,370 --> 00:11:12,520 >> Sasa sababu nyingine ambazo tunahitaji una uwezo 208 00:11:12,520 --> 00:11:15,490 kuwa na uwezo wa kufafanua nini aina ya data vigezo ni 209 00:11:15,490 --> 00:11:18,170 ni kwa sababu wakati mwingine hatuna wanataka initialize vigezo 210 00:11:18,170 --> 00:11:21,080 pamoja na baadhi ya data katika hatua ya ufafanuzi. 211 00:11:21,080 --> 00:11:23,500 Hivyo katika kesi hii, hebu sema kuwa nataka kuanza inputting 212 00:11:23,500 --> 00:11:25,040 baadhi darasa katika kitabu daraja. 213 00:11:25,040 --> 00:11:27,530 Naam Najua kwamba moja ya vigezo kwamba mimi nataka kuwa 214 00:11:27,530 --> 00:11:30,280 ni kwenda kuwa daraja mutable. 215 00:11:30,280 --> 00:11:33,010 Na tunajua pia kwamba sisi unataka kuwa integer. 216 00:11:33,010 --> 00:11:36,030 Lakini labda tunafanya bado na kwamba daraja kutosha. 217 00:11:36,030 --> 00:11:39,570 >> Katika Swift, una kufafanua aina ya data 218 00:11:39,570 --> 00:11:44,000 kwamba ni kuhusishwa na kutofautiana au basi mara kwa mara 219 00:11:44,000 --> 00:11:47,840 kabla unaweza kweli kutumia kwamba kutofautiana. 220 00:11:47,840 --> 00:11:51,170 Kwa sababu ni nguvu typed, una kujiunga aina 221 00:11:51,170 --> 00:11:52,890 na vigezo hivi. 222 00:11:52,890 --> 00:11:56,120 >> Hivyo katika kesi hii, kama nimekuwa vizuri initialized kwanza kwa baadhi ya thamani, 223 00:11:56,120 --> 00:12:00,520 kisha mimi haja ya kuwaambia nini Swift Natarajia aina data kuwa. 224 00:12:00,520 --> 00:12:02,650 Na itakuja kubakia takwimu ambazo aina moja 225 00:12:02,650 --> 00:12:05,780 kipindi chote cha historia ya mpango huu. 226 00:12:05,780 --> 00:12:10,050 >> Sasa unaweza kujaribiwa kwa haraka kama I have umba hii kutofautiana daraja 227 00:12:10,050 --> 00:12:13,530 na zinazotolewa ni integer ya 100, sasa kama mimi 228 00:12:13,530 --> 00:12:18,540 wanataka kujaribu concatenate kamba na kwamba integer, 229 00:12:18,540 --> 00:12:21,610 kujaribiwa bado kutumia kwamba kamba concatenation operator 230 00:12:21,610 --> 00:12:24,500 kama tulivyofanya mistari michache tu kabla. 231 00:12:24,500 --> 00:12:26,460 Lakini kwa bahati mbaya, hii itakuwa kweli si 232 00:12:26,460 --> 00:12:29,270 kazi, kwa sababu wewe ni kimsingi kufanya 233 00:12:29,270 --> 00:12:32,380 operesheni juu ya aina mbili tofauti. 234 00:12:32,380 --> 00:12:36,856 >> Sasa hii ni tofauti sana na wengine lugha kama PHP ambayo ni kweli 235 00:12:36,856 --> 00:12:38,480 loosey goosey na aina yao ya aina. 236 00:12:38,480 --> 00:12:40,030 Wao ni tu kama, yeah, chochote, Sijali. 237 00:12:40,030 --> 00:12:42,710 Nipe tu aina moja, na labda mimi itabidi kufanya jambo sahihi. 238 00:12:42,710 --> 00:12:46,060 >> Katika kesi hiyo, Swift ni kali sana kuhusu aina 239 00:12:46,060 --> 00:12:47,350 kwamba wewe ni kushughulika na. 240 00:12:47,350 --> 00:12:50,700 Alama hii summation au concatenation operator 241 00:12:50,700 --> 00:12:54,400 ina kimsingi michache ya chaguzi mbalimbali iwezekanavyo. 242 00:12:54,400 --> 00:12:56,970 Unaweza kufanya summation kwa integers, au wewe 243 00:12:56,970 --> 00:13:00,870 anaweza kufanya kamba concatenation, na labda baadhi ya mambo mengine pia. 244 00:13:00,870 --> 00:13:05,550 Lakini kama hiyo operator haitambui kile ni upande wake, 245 00:13:05,550 --> 00:13:10,452 au tuseme mchanganyiko wa wale aina mbili, ni si nini ni tegemeo, 246 00:13:10,452 --> 00:13:11,910 kisha itakuja kusababisha kushindwa. 247 00:13:11,910 --> 00:13:16,690 >> Hivyo katika kesi hii, ni nini maana kuwa na kamba pamoja na integer? 248 00:13:16,690 --> 00:13:18,880 Vizuri katika mazingira ya hili, sisi pengine wanataka 249 00:13:18,880 --> 00:13:21,990 kufanya operesheni kamba concatenation. 250 00:13:21,990 --> 00:13:26,420 Lakini bila shaka kompyuta hana kwamba aina ya mazingira. 251 00:13:26,420 --> 00:13:29,950 Na hivyo tunahitaji kutoa habari kwamba ziada 252 00:13:29,950 --> 00:13:32,390 basi ni kujua nini ni kwamba tunataka kufanya. 253 00:13:32,390 --> 00:13:36,860 >> Hivyo kwa maneno mengine, ukweli kwamba Swift sana typed 254 00:13:36,860 --> 00:13:39,520 ina maana una kufanya kidogo ya kazi ya ziada 255 00:13:39,520 --> 00:13:42,100 kupata kazi njia ambayo wewe unataka. 256 00:13:42,100 --> 00:13:43,710 Lakini matokeo yake, ni salama. 257 00:13:43,710 --> 00:13:46,290 Na mara moja una kuchukua maanani wale aina, 258 00:13:46,290 --> 00:13:49,300 mambo kusema ukweli tu kuanza kufanya kazi pretty vizuri. 259 00:13:49,300 --> 00:13:52,520 >> Hivyo katika kesi hii, sisi kisha ingekuwa kufanya kamba concatenation 260 00:13:52,520 --> 00:13:56,040 na waziwazi akitoa integer kwa kamba 261 00:13:56,040 --> 00:13:58,490 kwa wrapping katika hii mji mkuu S Kamba kazi, 262 00:13:58,490 --> 00:14:03,510 na kisha kwa kutumia kamba concatenation operator kurekebisha studio yetu kutofautiana, 263 00:14:03,510 --> 00:14:06,280 na kisha magazeti ya nje. 264 00:14:06,280 --> 00:14:08,420 >> Hadi sasa, hivyo nzuri? 265 00:14:08,420 --> 00:14:12,020 Sawa, hebu kuondoka. 266 00:14:12,020 --> 00:14:16,300 >> Sasa kuna aina ya data aina kwamba tunaweza kutumia katika Swift. 267 00:14:16,300 --> 00:14:21,620 Kama wewe kuwa desturi ya, tunaweza kujenga safu mutable. 268 00:14:21,620 --> 00:14:26,140 Na kwamba safu Unaweza tu vyenye aina moja. 269 00:14:26,140 --> 00:14:30,360 >> Hivyo katika kesi hii, sisi ni kwenda kujenga arrays mutable ya integers, ambayo 270 00:14:30,360 --> 00:14:34,800 sisi kuwaita darasa, na sisi kuwa na uwezo kuhifadhi kwamba katika mabano mraba huu 271 00:14:34,800 --> 00:14:38,650 muundo kama umefanya mzima wamezoea kwa katika aina mbalimbali za lugha nyingine. 272 00:14:38,650 --> 00:14:41,150 Lakini taarifa kwamba hapa tuko kufafanua mambo kadhaa. 273 00:14:41,150 --> 00:14:45,350 darasa ni kutofautiana mutable sisi si kutumia let Keyword. 274 00:14:45,350 --> 00:14:49,620 Hivyo kwamba maana tunaweza kisha kurekebisha yaliyomo ya safu hii. 275 00:14:49,620 --> 00:14:53,420 Ni ya aina Array Int, na tunaweza kujua kwamba 276 00:14:53,420 --> 00:14:56,260 kulingana na haya mabano mraba hapa. 277 00:14:56,260 --> 00:14:58,930 >> Sasa ni moja ya mambo mazuri kuhusu hili ni kwamba sisi 278 00:14:58,930 --> 00:15:02,310 wanapata mengi ya Taarifa za ziada 279 00:15:02,310 --> 00:15:07,110 kuhusu safu kwa kutumia tu baadhi rahisi dot nukuu. 280 00:15:07,110 --> 00:15:10,500 Hivyo kwa mfano, grades.count hutoa kwetu 281 00:15:10,500 --> 00:15:14,820 idadi ya vitu ambazo zipo katika kwamba safu, ambayo tunaweza kisha kupata pretty 282 00:15:14,820 --> 00:15:19,090 urahisi tu kwa kutumia kwamba dot nukuu. 283 00:15:19,090 --> 00:15:21,830 >> Kama unataka kuongeza ziada vitu na safu hii, 284 00:15:21,830 --> 00:15:27,220 huwezi kufanya PHP style ambapo wewe tu wazi kufafanua, 285 00:15:27,220 --> 00:15:30,910 katika ripoti iliyotolewa, baadhi thamani kuwa unataka kuingiza. 286 00:15:30,910 --> 00:15:37,210 Badala yake, matumizi append Njia katika aina safu 287 00:15:37,210 --> 00:15:40,920 append kwamba bidhaa, 95, kwa orodha hii. 288 00:15:40,920 --> 00:15:45,990 >> Hivyo sasa safu hii ina zifuatazo contents-- 100, 0, 90, 85. 289 00:15:45,990 --> 00:15:49,270 Na sasa tumekuwa umeongezewa 95 kwa kuwa vilevile. 290 00:15:49,270 --> 00:15:51,830 >> Kuna njia nyingine tunaweza append mambo. 291 00:15:51,830 --> 00:15:55,030 Unaweza kweli kutumia summation operator, 292 00:15:55,030 --> 00:15:59,200 ambayo itakuwa kutafsiriwa kama safu append operesheni. 293 00:15:59,200 --> 00:16:04,680 Na unaweza kisha append nyingine safu, ambayo ina maandishi ni 70 na 80, 294 00:16:04,680 --> 00:16:05,560 kwa kuwa safu. 295 00:16:05,560 --> 00:16:08,250 Hivyo basi, tuna yaliyomo katika kutofautiana hii 296 00:16:08,250 --> 00:16:17,220 grades-- 100, 0, 90, 85, 95, 70, na 80. 297 00:16:17,220 --> 00:16:21,850 Hii ni nzuri tu kisintaksia kidogo sukari kwamba Swift hutoa kwetu. 298 00:16:21,850 --> 00:16:23,850 >> Hivyo kama tunataka kwa jumla darasa, tuko labda 299 00:16:23,850 --> 00:16:27,340 atataka iterate juu ya kila kitu katika kitanzi hii. 300 00:16:27,340 --> 00:16:32,150 Na hatuwezi kuwa, katika Swift, dhana ya kwa kitanzi kama ungependa kutarajia. 301 00:16:32,150 --> 00:16:35,350 Lakini njia hiyo sisi zinaonyesha mbalimbali ni tofauti kidogo. 302 00:16:35,350 --> 00:16:37,790 Hivyo katika kesi hii, kwa kuhitimisha kila kitu, tutaweza 303 00:16:37,790 --> 00:16:40,650 kwenda kujenga muda kutofautiana kuitwa kiasi ili na sisi 304 00:16:40,650 --> 00:16:42,580 kudumisha hesabu hii. 305 00:16:42,580 --> 00:16:44,430 >> Na taarifa kwa wetu kitanzi ujenzi hapa. 306 00:16:44,430 --> 00:16:46,820 Kwa ripoti katika 0 .. 00:16:51,480 308 00:16:51,480 --> 00:16:57,390 Hivyo hii ujenzi, 0 .. 00:17:01,860 akisema kwamba sisi ni kwenda kujenga mbalimbali ya integers kutoka 0 hadi 310 00:17:01,860 --> 00:17:05,750 kwa lakini ukiondoa grades.count. 311 00:17:05,750 --> 00:17:09,577 Hivyo hii itakuwa 0, 1, 2, 3, 4, 5, hadi hata hivyo wengi moja 312 00:17:09,577 --> 00:17:10,410 kabla grades.count. 313 00:17:10,410 --> 00:17:14,160 >> Hivyo hii ni tofauti kuliko jinsi sisi ingekuwa kawaida kutumika kwa ajili ya mizunguko 314 00:17:14,160 --> 00:17:18,569 ambapo ingekuwa baadhi ripoti kutofautiana, kuweka sawa na 0 mara ya kwanza, 315 00:17:18,569 --> 00:17:25,480 na kisha kuunganisha kwamba mpaka baadhi thamani chini ya hesabu ya vitu 316 00:17:25,480 --> 00:17:27,140 katika safu hiyo. 317 00:17:27,140 --> 00:17:29,820 >> Kwa hiyo, kuna mabadiliko kwa hiyo, kwa kweli, 318 00:17:29,820 --> 00:17:35,010 ambayo inaruhusu sisi urahisi sana kuweka aina mbalimbali za safu. 319 00:17:35,010 --> 00:17:40,570 Kama mabadiliko haya mbalimbali ili nukta tatu, 0 ... grade.count, 320 00:17:40,570 --> 00:17:45,120 hii inawakilisha mbalimbali 0 kwa grades.count umoja, 321 00:17:45,120 --> 00:17:49,260 kwa maana ya kuwa idadi hiyo ni pia kisha ni pamoja na katika mbalimbali. 322 00:17:49,260 --> 00:17:52,110 >> Lakini hii ni Handy sana maana hayo halisi, 323 00:17:52,110 --> 00:17:54,590 wakati tuna kufanya iterations juu ya kitanzi 324 00:17:54,590 --> 00:17:59,630 kwa sababu bahati hizo sifuri indexed, kama tumeona katika lugha zingine 325 00:17:59,630 --> 00:18:02,360 vilevile. 326 00:18:02,360 --> 00:18:05,210 Maswali yoyote juu ya hii kwa kitanzi? 327 00:18:05,210 --> 00:18:10,660 >> Hivyo kuna thabiti ufafanuzi ya kutofautiana hii ripoti, 328 00:18:10,660 --> 00:18:14,350 thamani ambao huanza saa 0, na inaendelea katika kila iteration ya kitanzi 329 00:18:14,350 --> 00:18:17,950 kuongezeka kwa 1 hadi hatua ambayo ni sawa na grades.count, 330 00:18:17,950 --> 00:18:20,380 ambapo kiwango, kitanzi aborts. 331 00:18:20,380 --> 00:18:23,730 >> Taarifa kwamba katika kamba yetu kitabu hapa, 332 00:18:23,730 --> 00:18:26,910 sisi kweli anaweza kufanya baadhi rahisi manipulations kwa maadili hayo. 333 00:18:26,910 --> 00:18:31,230 Hivyo ripoti pamoja na 1 mapenzi kweli kufanya summation wa thamani kwamba 334 00:18:31,230 --> 00:18:34,780 kwa sababu ripoti ni, katika kesi hiyo, integer. 335 00:18:34,780 --> 00:18:37,810 Na katika hatua hiyo, itakuwa kisha kuwa waongofu katika kamba 336 00:18:37,810 --> 00:18:42,230 na interpolated katika kamba hii hapa, na kuchapishwa kama tungetarajia. . 337 00:18:42,230 --> 00:18:44,520 >> Na kitu kizuri kuhusu arrays hapa ni 338 00:18:44,520 --> 00:18:50,730 kwamba sisi pia ni uwezo wa kuwa na maadili kuchota na kuweka maadili 339 00:18:50,730 --> 00:18:54,080 kutumia mraba bracket nukuu kama tumeona katika lugha zingine vilevile. 340 00:18:54,080 --> 00:18:57,130 341 00:18:57,130 --> 00:19:01,030 >> Haki wote, hivyo kutoka hapa, sisi sasa compute kiasi yetu ya yote ya darasa letu. 342 00:19:01,030 --> 00:19:02,780 Sasa aina ya ujao hatua mantiki itakuwa 343 00:19:02,780 --> 00:19:07,580 kufanya mgawanyo wa operesheni ya kutafuta nje wastani wa wale wanafunzi wa darasa. 344 00:19:07,580 --> 00:19:10,150 Lakini kitu muhimu hapa kinachotokea ambayo 345 00:19:10,150 --> 00:19:15,020 ni kwamba jumla hii ni labda integer. 346 00:19:15,020 --> 00:19:18,020 Lakini tunahitaji kufanya baadhi ya aina ya mara mbili mgawanyiko. 347 00:19:18,020 --> 00:19:20,600 Na hii ni kwenda kuwa muhimu sana wakati 348 00:19:20,600 --> 00:19:24,140 tunataka kufanya operesheni hii, kwa sababu kile tunasema 349 00:19:24,140 --> 00:19:28,430 ni kwamba tunahitaji kweli kufanya mgawanyo juu ya mbili mara mbili. 350 00:19:28,430 --> 00:19:31,370 Na tena, kwa sababu Swift ni sana sana typed, 351 00:19:31,370 --> 00:19:36,760 ni lazima waziwazi kuweka yote ya vitu na mara mbili kabla ya sisi kweli 352 00:19:36,760 --> 00:19:38,300 kufanya operesheni hiyo. 353 00:19:38,300 --> 00:19:40,550 >> Hivyo ili na sisi kwa kufanya mara mbili mgawanyiko, 354 00:19:40,550 --> 00:19:43,730 siyo ya kutosha kwa ajili moja tu ya vitu hivyo kuwa mara mbili. 355 00:19:43,730 --> 00:19:46,400 Wote wawili kuwa mara mbili ili mwepesi 356 00:19:46,400 --> 00:19:50,860 kuwa na uhakika kwamba hii ni nini tunataka kufanya. 357 00:19:50,860 --> 00:19:54,360 Hivyo tutakuwa na kisha kupanga typecast Jumla ambayo tumekuwa computed juu 358 00:19:54,360 --> 00:19:58,970 na hesabu ya wanafunzi wa darasa kwa mara mbili, na kisha kufanya kwamba operesheni na kuhifadhi 359 00:19:58,970 --> 00:20:02,390 kwamba katika kutofautiana hii mpya, au tuseme mara kwa mara hii mpya iitwayo wastani, 360 00:20:02,390 --> 00:20:06,810 ambayo itakuwa na ni aina gani, unaweza kufikiria? 361 00:20:06,810 --> 00:20:07,587 Double, yeah. 362 00:20:07,587 --> 00:20:09,420 Hivyo katika kesi hii, sisi hawana kutaja ni 363 00:20:09,420 --> 00:20:13,450 sababu inaweza inferred kutoka operesheni ni aina gani ya data wastani 364 00:20:13,450 --> 00:20:14,730 itakuwa. 365 00:20:14,730 --> 00:20:19,025 Na Swift ni nzuri kwa ujumla juu ya kuwa na uwezo wa kudai aina. 366 00:20:19,025 --> 00:20:22,116 367 00:20:22,116 --> 00:20:24,200 >> Je, unataka kuona hii kukimbia, au naweza kusonga mbele? 368 00:20:24,200 --> 00:20:25,640 Nataka kuendelea. 369 00:20:25,640 --> 00:20:28,130 Maswali yoyote juu ya yoyote ya hili? 370 00:20:28,130 --> 00:20:28,630 Kubwa. 371 00:20:28,630 --> 00:20:31,160 372 00:20:31,160 --> 00:20:35,010 >> Sasa sisi ni kwenda kuanza kupata nzuri stuff-- kazi kufafanua, 373 00:20:35,010 --> 00:20:39,090 na wanandoa wa aina nyingine ambazo ni kipekee kwa Swift kwamba una si 374 00:20:39,090 --> 00:20:41,620 kuonekana katika lugha zingine hadi hatua hii, 375 00:20:41,620 --> 00:20:46,290 lakini waliopo katika mengine lugha ambazo unaweza kupata baadaye. 376 00:20:46,290 --> 00:20:48,210 Hivyo kwanza kama unataka kufafanua kazi, 377 00:20:48,210 --> 00:20:52,170 unaweza kufafanua kwa neno funky kazi, na kisha jina kazi, 378 00:20:52,170 --> 00:20:56,710 na kisha katika mabano, hoja kwamba unataka kazi ambayo kukubali. 379 00:20:56,710 --> 00:21:00,280 Lazima hoja pia specify-- generally-- 380 00:21:00,280 --> 00:21:05,010 Lazima pia kutaja aina ya data kwamba wao, isipokuwa wao inaweza inferred. 381 00:21:05,010 --> 00:21:07,500 Na tutaweza kuona kwamba kidogo caveat katika kidogo tu. 382 00:21:07,500 --> 00:21:09,920 >> Hivyo katika kesi hii tuna kazi kuitwa printGradeCount. 383 00:21:09,920 --> 00:21:12,840 Tunakwenda kukubali kutofautiana au tuseme katika kesi hiyo, 384 00:21:12,840 --> 00:21:14,450 constant-- aitwaye gradebook. 385 00:21:14,450 --> 00:21:18,517 Na ni kwenda kuwa ya aina safu ya integers. 386 00:21:18,517 --> 00:21:20,600 Sasa kuna kitu hiyo ni kweli ni muhimu hapa 387 00:21:20,600 --> 00:21:21,849 kwamba mimi nataka kuelewa. 388 00:21:21,849 --> 00:21:27,560 Hiyo ni kwamba by default, hoja hizi ambazo ni pembejeo kwa kazi hii ni 389 00:21:27,560 --> 00:21:34,380 inavyoelezwa na thabiti hebu keyword, ambayo ina maana kwamba siwezi kurekebisha hii 390 00:21:34,380 --> 00:21:39,850 gradebook kutofautiana hapa. 391 00:21:39,850 --> 00:21:43,360 Na kwamba aina ya mantiki, kwa sababu wewe ni kupita data katika. 392 00:21:43,360 --> 00:21:45,860 Na wewe labda hawataki kubadilishwa kutoka chini ya wewe. 393 00:21:45,860 --> 00:21:50,800 Inawezekana kupanga kutaja kwamba hii ni kutofautiana kwa kuweka 394 00:21:50,800 --> 00:21:52,070 var keyword hapa. 395 00:21:52,070 --> 00:21:56,832 Lakini hiyo ni gotcha kwamba tumekuwa watu niliona wamefanya katika siku za nyuma 396 00:21:56,832 --> 00:21:59,790 ni kwamba wao kudhani kuwa itakuja kuwa kutofautiana wakati, kwa kweli, ni 397 00:21:59,790 --> 00:22:02,640 ni mara kwa mara. 398 00:22:02,640 --> 00:22:07,340 >> Haki wote, hivyo hapa ndipo, katika kesi hii, sisi si kubainisha aina yoyote ya kurudi. 399 00:22:07,340 --> 00:22:09,460 Tutaweza kuonyesha jinsi ya kufanya kwamba katika muda tu. 400 00:22:09,460 --> 00:22:12,340 Lakini taarifa kwamba hapa tuna rahisi tu kama hali hiyo. 401 00:22:12,340 --> 00:22:14,560 Kama gradebook ni tupu, ambayo katika kesi hii 402 00:22:14,560 --> 00:22:19,310 ni tu mali ya integer hii safu, basi sisi magazeti nje kitu. 403 00:22:19,310 --> 00:22:23,100 Vinginevyo sisi kufanya kitu kingine chochote. 404 00:22:23,100 --> 00:22:25,000 >> Pretty moja kwa moja hadi sasa nadhani. 405 00:22:25,000 --> 00:22:27,960 Lakini kuacha mimi kama una maswali yoyote. 406 00:22:27,960 --> 00:22:33,350 >> Sasa kazi hii, kwa wastani, pia inachukua baadhi ya hoja, au tuseme moja hoja, 407 00:22:33,350 --> 00:22:37,507 ambayo ni gradebook, na wakati huu ni kwenda na kurudi aina mbili. 408 00:22:37,507 --> 00:22:39,340 Kwa sababu ni kompyuta wastani na ni 409 00:22:39,340 --> 00:22:45,010 kwenda kweli kurudi kwamba wastani computed katika wito line. 410 00:22:45,010 --> 00:22:50,070 >> Katika kesi hiyo, sisi kutaja kurudi aina baada ya mshale. 411 00:22:50,070 --> 00:22:53,260 Na hii wanaweza kujisikia aina ya weird mara ya kwanza. 412 00:22:53,260 --> 00:22:55,610 Umefanya mzima wamezoea kwa kuweka kurudi 413 00:22:55,610 --> 00:22:57,720 aina kabla ya jina la kazi. 414 00:22:57,720 --> 00:23:00,310 Lakini kama wewe kufikiria hii katika suala la hisabati, 415 00:23:00,310 --> 00:23:03,320 kama wakati una hisabati kwamba kufafanua kazi, 416 00:23:03,320 --> 00:23:06,807 una kazi pamoja na baadhi pembejeo, na inazalisha pato. 417 00:23:06,807 --> 00:23:08,890 Na kwamba ni nini hasa hii ni walidhani kuiga. 418 00:23:08,890 --> 00:23:12,460 Na kuna wanandoa wa lugha nyingine ambazo zina syntax sawa pia, 419 00:23:12,460 --> 00:23:15,674 lakini pengine hata mmoja wameweza kuona katika CS50. 420 00:23:15,674 --> 00:23:17,090 Lakini bado wala kuwa na kuchanganyikiwa kwa hilo. 421 00:23:17,090 --> 00:23:21,650 Mshale ina maana kile kinachoendelea kurudishwa katika kesi hii. 422 00:23:21,650 --> 00:23:23,650 OK, hivyo ni jinsi ni sisi kwenda compute wastani hili? 423 00:23:23,650 --> 00:23:25,649 Naam, kama gradebook ni tupu, vizuri basi tuko 424 00:23:25,649 --> 00:23:30,731 kwenda na kurudi 0, ambayo labda njia nzuri ya kutibu hii. 425 00:23:30,731 --> 00:23:32,980 Sijui, hebu kuja nyuma na kwamba katika kidogo. 426 00:23:32,980 --> 00:23:34,688 Hii inaweza si kweli kuwa njia nzuri 427 00:23:34,688 --> 00:23:38,310 compute wastani ikiwa tuna gradebook tupu. 428 00:23:38,310 --> 00:23:41,260 >> Kisha tutaweza tu kufanya summation yetu. 429 00:23:41,260 --> 00:23:43,900 Taarifa kwamba hapa sisi kweli kuwa na toleo mbadala ya 430 00:23:43,900 --> 00:23:49,190 kwa kitanzi, ambayo inaruhusu sisi iterate zaidi ya kila kitu moja katika safu 431 00:23:49,190 --> 00:23:53,630 na mahali kila kipengele ndani ya kutofautiana yake mwenyewe. 432 00:23:53,630 --> 00:23:56,200 Na kubainisha kwa daraja katika gradebook, nini tunasema 433 00:23:56,200 --> 00:24:00,560 ni kwamba tunakwenda inamuunga kujenga mara kwa mara mpya iitwayo 434 00:24:00,560 --> 00:24:05,180 Daraja kwamba ni kwenda kuwakilisha kila kitu kipekee katika gradebook 435 00:24:05,180 --> 00:24:06,769 kila wakati kwamba kwa kitanzi iterates. 436 00:24:06,769 --> 00:24:08,560 Hivyo mara ya kwanza kwa ni kukimbia, daraja mapenzi 437 00:24:08,560 --> 00:24:09,800 kuwa bidhaa ya kwanza katika gradebook. 438 00:24:09,800 --> 00:24:12,300 Mara ya pili utakuwa bidhaa pili, kadhalika na kadhalika 439 00:24:12,300 --> 00:24:15,970 mpaka gradebook ina nimechoka yenyewe ya mambo. 440 00:24:15,970 --> 00:24:20,390 Kisha sisi kuwa na uwezo wa kuhitimisha kwamba daraja katika summation yetu kutofautiana 441 00:24:20,390 --> 00:24:22,570 na kurudi wastani wetu kama tumeona kabla. 442 00:24:22,570 --> 00:24:25,670 443 00:24:25,670 --> 00:24:26,950 Sawa, maswali yoyote? 444 00:24:26,950 --> 00:24:27,699 Ndiyo? 445 00:24:27,699 --> 00:24:28,990 Watazamaji: Nina maswali mawili. 446 00:24:28,990 --> 00:24:33,586 Namba moja, hypothetically, unaweza kukimbia integer juu ya hili? 447 00:24:33,586 --> 00:24:35,604 Hana na kuwa mara mbili, ni kwamba ni sahihi? 448 00:24:35,604 --> 00:24:37,520 DAN AMRMENDARIZ: Je, unaweza kurudia swali hilo? 449 00:24:37,520 --> 00:24:39,587 Watazamaji: Je, mimi kufanya integer kama wastani? 450 00:24:39,587 --> 00:24:41,670 DAN AMRMENDARIZ: Je, unaweza kufanya integer kama wastani? 451 00:24:41,670 --> 00:24:45,015 Hivyo kurudi integer wastani badala ya mara mbili? 452 00:24:45,015 --> 00:24:48,204 >> Watazamaji: Return-- wewe na kwamba hivi sasa hapa chini. 453 00:24:48,204 --> 00:24:49,870 DAN AMRMENDARIZ: Hapa hapa, kurudi 0.0? 454 00:24:49,870 --> 00:24:51,790 Watazamaji: Yeah, tu kurudi 0. 455 00:24:51,790 --> 00:24:56,590 Hivyo itakuwa ama 80 au 85, lakini si 85.2. 456 00:24:56,590 --> 00:24:59,465 >> DAN AMRMENDARIZ: Hivyo katika kesi hiyo, hivyo kuna njia kadhaa tofauti 457 00:24:59,465 --> 00:25:00,090 kujibu hilo. 458 00:25:00,090 --> 00:25:02,760 Napenda kujibu yao kwa utaratibu. 459 00:25:02,760 --> 00:25:06,740 Hivyo kama mimi tu kufanya kurudi huu 0, 0 ni thamani integer. 460 00:25:06,740 --> 00:25:09,730 Na hivyo kuwa itakuwa na kusababisha Aina ya makosa ya kesi hii 461 00:25:09,730 --> 00:25:13,210 kwa sababu ni mara mbili wanatarajia lakini ni kisha kurejea integer. 462 00:25:13,210 --> 00:25:16,770 Kama mimi nataka kurudi integer, naweza. 463 00:25:16,770 --> 00:25:20,450 Naweza kuweka aina ya kurudi int, kurudi 0 hapa, 464 00:25:20,450 --> 00:25:22,047 na si kufanya mara mbili mgawanyiko. 465 00:25:22,047 --> 00:25:23,880 Lakini basi tunataka kuwa kufanya integer mgawanyiko. 466 00:25:23,880 --> 00:25:27,080 Na hivyo sisi kisha bila kupata wastani kwamba tunataka uwezekano kutarajia. 467 00:25:27,080 --> 00:25:29,210 Lakini ndiyo tunaweza kurekebisha aina katika njia hiyo. 468 00:25:29,210 --> 00:25:32,598 >> Watazamaji: Na pili, wewe kuwa moja mara mbili juu. 469 00:25:32,598 --> 00:25:35,502 Lakini chini chini, wakati kufanya kurudi Double Double, 470 00:25:35,502 --> 00:25:38,280 hiyo ni tayari moja kwa moja kurudi mara mbili muundo. 471 00:25:38,280 --> 00:25:42,278 Kwa nini bado wanahitaji kufafanua na mshale juu na mara mbili? 472 00:25:42,278 --> 00:25:45,010 >> DAN AMRMENDARIZ: Kwa hiyo katika kesi, hii ni sehemu 473 00:25:45,010 --> 00:25:50,580 ya the-- hivyo kurudia swali, kwa sababu ni thabiti kutoka kurudi 474 00:25:50,580 --> 00:25:56,030 aina hapa, ni aina gani hii kwa kweli ni, tunahitaji kuwa wazi kwa Swift 475 00:25:56,030 --> 00:25:59,970 kuhusu nini tunataka kurudi nje ya kazi hii 476 00:25:59,970 --> 00:26:02,690 hivyo kwamba wakati hufanya aina kuangalia, inaweza kuhakikisha 477 00:26:02,690 --> 00:26:05,850 kwamba kile sisi kuwa kweli imeandikwa chini chini kwa kweli inajilainisha na kwamba. 478 00:26:05,850 --> 00:26:10,225 Hivyo ni aina ya kama kuangalia na wewe mwenyewe aina ya hali hiyo. 479 00:26:10,225 --> 00:26:11,050 Lakini kuna are-- 480 00:26:11,050 --> 00:26:12,560 >> Watazamaji: [inaudible] mshale? 481 00:26:12,560 --> 00:26:19,490 >> DAN AMRMENDARIZ: Kuna matukio wakati tunaweza bayana kwamba tunaweza inamuunga 482 00:26:19,490 --> 00:26:21,550 kuweka aina ya kurudi. 483 00:26:21,550 --> 00:26:23,940 Lakini katika kesi hii, sijui kufikiri kwamba ingekuwa kazi. 484 00:26:23,940 --> 00:26:26,190 Kuna baadhi ya syntax mengine kwamba tutaweza kuona baadaye. 485 00:26:26,190 --> 00:26:30,320 486 00:26:30,320 --> 00:26:35,280 >> Haki wote, hivyo chanzo hiki kificho ni tofauti kidogo 487 00:26:35,280 --> 00:26:41,839 kwa sababu hii parses hoja kutoka kazi ambayo sisi ni wito. 488 00:26:41,839 --> 00:26:44,130 Napenda kuonyesha jinsi kazi kabla ya sisi kweli hoja juu ya 489 00:26:44,130 --> 00:26:48,050 kwa baadhi ya mambo ya kuvutia yale yanayotokea katika Swift. 490 00:26:48,050 --> 00:26:51,870 >> Hivyo katika kesi hii, kama mimi tu kukimbia hii kanuni, taarifa kwamba nini anafanya 491 00:26:51,870 --> 00:26:54,900 is-- wakati, ni aina ya anitiaye makosa weird. 492 00:26:54,900 --> 00:26:59,730 Mimi haja ya kupita michache ya integers kama hoja mstari amri. 493 00:26:59,730 --> 00:27:06,220 Basi hebu angalia, 150 na 80, na hit Enter ili kujua nini ni kweli kufanya. 494 00:27:06,220 --> 00:27:09,890 Ni kukubali kila mmoja maadili haya kama integers. 495 00:27:09,890 --> 00:27:12,040 Ni inputting yao katika gradebook. 496 00:27:12,040 --> 00:27:14,470 Na kisha ni kufanya kwamba hesabu ya wastani 497 00:27:14,470 --> 00:27:16,650 na outputting kwamba kama sisi bila kutarajia. 498 00:27:16,650 --> 00:27:19,950 >> Lakini ni wazi kuna kitu kinachoendelea tarehe na hii kumkataa kitu 499 00:27:19,950 --> 00:27:23,300 kitu kama integer. 500 00:27:23,300 --> 00:27:27,300 Kama unaweza kukumbuka kutoka tulipokuwa kushughulika na hoja mstari amri 501 00:27:27,300 --> 00:27:32,640 katika C na lugha nyingine, kwanza kabisa 0-th bidhaa katika mstari amri hoja kwamba 502 00:27:32,640 --> 00:27:35,774 orodha ni jina la amri kwamba sisi kweli kunyongwa. 503 00:27:35,774 --> 00:27:38,690 Hivyo katika kesi hii, mimi nina wanaoendesha tu juu ya yote hoja mstari amri. 504 00:27:38,690 --> 00:27:41,650 Lakini Mimi si kufanya aina yoyote ya dhana kuangalia ruka juu kwamba moja ya kwanza. 505 00:27:41,650 --> 00:27:45,920 Mimi tu wazi au mimi nina implicitly kuangalia ambayo ya aina hii 506 00:27:45,920 --> 00:27:49,900 ni integers kabla mimi kwa kweli kufanya hesabu hii. 507 00:27:49,900 --> 00:27:52,420 >> Na hiyo ndiyo kimsingi nini kinatokea hapa. 508 00:27:52,420 --> 00:27:55,860 Kwa kila hoja katika hoja mchakato wa, 509 00:27:55,860 --> 00:27:59,210 Mimi nina kwenda kufanya baadhi ya hundi. 510 00:27:59,210 --> 00:28:01,970 Na katika kesi hii, mimi nina kwenda kujaribu kubadilisha kwanza 511 00:28:01,970 --> 00:28:07,620 kwamba hoja ndani ya integer na kufanya typecast wazi, 512 00:28:07,620 --> 00:28:12,310 kwa sababu ni, juu ya pembejeo, kamba na si kwa kweli integer. 513 00:28:12,310 --> 00:28:18,140 >> Lakini hii ni aina ya syntax weird, kama basi daraja ni sawa na Int (hoja). 514 00:28:18,140 --> 00:28:21,120 Nini ni kweli yanatokea hapa ni kubwa mno 515 00:28:21,120 --> 00:28:24,390 muhimu kwa yako kwa kutumia Swift. 516 00:28:24,390 --> 00:28:27,610 Hii ni kwa kutumia nini aitwaye aina ya hiari. 517 00:28:27,610 --> 00:28:34,790 >> Hivyo kazi hii, Int (hoja), anarudi si tu integer, lakini anarudi 518 00:28:34,790 --> 00:28:37,470 kile kinachoitwa integer hiari. 519 00:28:37,470 --> 00:28:41,200 Na hivyo hii ni aina ya Aina juu ya aina. 520 00:28:41,200 --> 00:28:45,900 Unaweza aina ya kufikiria kuwa kama ni kurudi kama mfuko. 521 00:28:45,900 --> 00:28:47,750 Na wakati wa kufungua kwamba mfuko, ni ama 522 00:28:47,750 --> 00:28:53,930 ina integer, ambayo ni matokeo, au ina kitu kabisa ndani yake wakati wote. 523 00:28:53,930 --> 00:28:58,140 Na hii ni muhimu kama kuangalia makosa utaratibu, kwa sababu katika kesi hii 524 00:28:58,140 --> 00:29:02,080 tunaweza kujua, ilikuwa hii Aina ya kubadilika na mafanikio? 525 00:29:02,080 --> 00:29:05,810 Kama ilivyokuwa, basi ni kwa kweli kwenda na integer ndani. 526 00:29:05,810 --> 00:29:08,750 Vinginevyo ni kwenda kuwa na baadhi ya thamani kwamba tutaweza wito haina kabisa, ambayo 527 00:29:08,750 --> 00:29:10,920 ni mwakilishi wa hakuna integer wakati wote. 528 00:29:10,920 --> 00:29:13,270 Ni kweli mwakilishi wa chochote. 529 00:29:13,270 --> 00:29:18,130 >> Na hivyo hii kama ujenzi inaruhusu sisi unwrap mfuko huo, 530 00:29:18,130 --> 00:29:19,850 kwamba hiari kisheria. 531 00:29:19,850 --> 00:29:25,560 Na kama sisi ni uwezo wa unwrap kwamba kufunga na kupata integer ndani, 532 00:29:25,560 --> 00:29:27,720 basi nini tunasema hapa ni kwamba sisi kisha 533 00:29:27,720 --> 00:29:33,090 kuruhusu thamani kwamba kuwekwa katika mara kwa mara hii inaitwa daraja. 534 00:29:33,090 --> 00:29:36,590 Na sehemu hii ya kama kauli, sehemu ya juu ya kauli kama 535 00:29:36,590 --> 00:29:40,390 inakwenda, kwa sababu hiyo --zingua ilikuwa na mafanikio. 536 00:29:40,390 --> 00:29:43,290 >> Kama ni hivyo tu hutokea kwamba kulikuwa na makosa labda 537 00:29:43,290 --> 00:29:47,040 katika hii wazi aina kubadilika kutoka kamba kwa integer, labda 538 00:29:47,040 --> 00:29:49,160 ni thamani ABC kwa mfano. 539 00:29:49,160 --> 00:29:52,120 Na hiyo ni kweli si kwenda kubadilisha na integer. 540 00:29:52,120 --> 00:29:55,520 Basi itakuwa kurudi haina kabisa, ambayo si integer. 541 00:29:55,520 --> 00:29:57,570 Na hii ikiwa kauli vizuri kisha kushindwa. 542 00:29:57,570 --> 00:30:01,930 daraja haipo kwa sababu hana yaliyomo integer. 543 00:30:01,930 --> 00:30:06,391 Na itakuwa kukimbia kuzuia hii kingine badala yake. 544 00:30:06,391 --> 00:30:06,890 Ndiyo? 545 00:30:06,890 --> 00:30:09,652 >> Watazamaji: Nil ni N-I-L? 546 00:30:09,652 --> 00:30:11,110 DAN AMRMENDARIZ: nil ni N-I-L, ndiyo. 547 00:30:11,110 --> 00:30:14,970 548 00:30:14,970 --> 00:30:20,310 >> Hivyo hii ni labda moja ya mambo ya gumu kuhusu Swift, 549 00:30:20,310 --> 00:30:23,690 hasa wakati uko katika Magugu juu ya programu iOS 550 00:30:23,690 --> 00:30:27,442 na wewe ni kweli kujaribu kufanya baadhi ya maendeleo huko. 551 00:30:27,442 --> 00:30:29,400 Ni kwenda kuwa kunguruma saa wewe kuhusu hiari. 552 00:30:29,400 --> 00:30:33,050 Ni kwenda kuwa na kuuliza wewe kwa alama ya kuuliza na pointi Moderators. 553 00:30:33,050 --> 00:30:37,100 Lakini mara moja kufikiri out-- kama wewe kujitolea muda wa kuhesabia 554 00:30:37,100 --> 00:30:41,990 kinachoendelea na aina ya hiari, wewe utakuwa kujiokoa mengi ya maumivu ya kichwa 555 00:30:41,990 --> 00:30:46,040 kama wewe ni kujaribu kuandika programu katika Swift. 556 00:30:46,040 --> 00:30:47,660 >> Ni kweli kipengele nguvu sana. 557 00:30:47,660 --> 00:30:49,826 Na wewe utakuwa tu na kuchukua neno langu kwa ajili yake kwa sasa. 558 00:30:49,826 --> 00:30:52,620 Lakini tutaona ujenzi huu na baadhi ya watu wengine kama hayo 559 00:30:52,620 --> 00:30:56,740 katika baadhi ya wengine chanzo kanuni kwamba tutaweza kuonyesha katika kidogo tu. 560 00:30:56,740 --> 00:31:00,440 >> Je, kuna maswali ya awali hapa? 561 00:31:00,440 --> 00:31:03,790 562 00:31:03,790 --> 00:31:08,690 Hivyo takeaway muhimu ni kwamba hiari aina ni aina ya metatype. 563 00:31:08,690 --> 00:31:12,500 Ni ama ina thamani, na kama itakuwa hivyo, basi ni 564 00:31:12,500 --> 00:31:18,110 labda na kwamba thamani ya kuhusishwa pamoja na hayo, au hana thamani yoyote ile, 565 00:31:18,110 --> 00:31:19,620 na ni kuwakilishwa na haina. 566 00:31:19,620 --> 00:31:24,210 567 00:31:24,210 --> 00:31:28,870 Wengine wa hii ni labda kama ungependa kutarajia. 568 00:31:28,870 --> 00:31:32,900 >> Basi hebu njia panda juu ugumu bado tena. 569 00:31:32,900 --> 00:31:37,070 Na wakati huu, hebu tuangalie baadhi aina nyingine takwimu ambazo kweli zipo. 570 00:31:37,070 --> 00:31:41,290 Mmoja wao ni Mkwawa, ambayo ni sawa na chatu Mkwawa. 571 00:31:41,290 --> 00:31:48,270 Ni kiasi fulani sawa na hash meza katika C. Ni kimsingi ramani ya funguo 572 00:31:48,270 --> 00:31:49,820 ambapo funguo inaweza kuwa masharti. 573 00:31:49,820 --> 00:31:52,670 Na wakati wewe kuangalia juu funguo hizo, funguo hizo itakuwa na thamani. 574 00:31:52,670 --> 00:31:56,020 Hivyo si kabisa safu, lakini badala yake, karibu zaidi zinazohusiana 575 00:31:56,020 --> 00:31:58,810 kwa hash ramani au meza hash. 576 00:31:58,810 --> 00:32:02,420 >> Hebu angalia jinsi hii zinatakiwa kufanya kazi kabla ya sisi kweli 577 00:32:02,420 --> 00:32:05,210 kwenda katika chanzo kanuni yenyewe. 578 00:32:05,210 --> 00:32:07,680 Kama mimi tu kukimbia hii, kitu kweli hutokea. 579 00:32:07,680 --> 00:32:12,430 Ni kuwaambia mimi kwamba mimi nina wanatarajia baadhi ya vigezo vya aina zifuatazo. 580 00:32:12,430 --> 00:32:16,050 Hivyo nina kwenda kutoa kwa ni baadhi ya majina tatizo kuweka, 581 00:32:16,050 --> 00:32:18,490 hivyo pset0, labda mimi got 100. 582 00:32:18,490 --> 00:32:20,790 Na pset1, I got 5. 583 00:32:20,790 --> 00:32:24,630 Na kisha katika mtihani, mimi alifanya vizuri na got 30. 584 00:32:24,630 --> 00:32:27,180 Na oops, mimi hit nafasi hapa. 585 00:32:27,180 --> 00:32:30,940 >> Wakati mimi hit Enter, unaweza kuona hufanya baadhi hesabu. 586 00:32:30,940 --> 00:32:33,740 Inasema gradebook ni tatu darasa, pset1, pset0, mtihani. 587 00:32:33,740 --> 00:32:36,120 Na gradebook ina wastani huu maalum. 588 00:32:36,120 --> 00:32:38,370 Hivyo tena, sisi ni kazi na hii ni wazo gradebook, 589 00:32:38,370 --> 00:32:44,650 lakini sisi ni kwenda kuendelea iterating na utata wa kazi yetu. 590 00:32:44,650 --> 00:32:47,650 >> Hivyo wakati wa mwanzo, tuko tu kwenda kujenga kazi ambayo 591 00:32:47,650 --> 00:32:49,390 ina jukumu la kuchapa matumizi. 592 00:32:49,390 --> 00:32:51,920 Na kuna njia ya kutoka hii kazi ambayo itakuwa tu 593 00:32:51,920 --> 00:32:53,710 kwa nguvu kujiondoa maombi. 594 00:32:53,710 --> 00:32:56,530 Hii si kitu ambacho utatumia katika iOS programu. 595 00:32:56,530 --> 00:32:59,750 Hii ni tu, katika kesi hii, na hoja mstari amri. 596 00:32:59,750 --> 00:33:01,990 Ijayo tutaweza kuanza kuelekea kwenye Xcode. 597 00:33:01,990 --> 00:33:07,760 Lakini hii ni maalum kwa amri mstari style A mpango Swift. 598 00:33:07,760 --> 00:33:11,490 >> Hebu tuangalie baadhi ya mambo ya kuvutia hapa. 599 00:33:11,490 --> 00:33:15,150 Hebu angalia, michache tu ya mambo ya kuvutia kutaja labda 600 00:33:15,150 --> 00:33:19,930 ni kwamba katika kazi yangu ya uchapishaji idadi ya wanafunzi wa darasa, 601 00:33:19,930 --> 00:33:26,090 unaweza kukumbuka kuwa nilikuwa orodha hiyo ya items-- pset1, pset0, na mtihani. 602 00:33:26,090 --> 00:33:29,130 Unaweza kweli haraka na kwa urahisi kufanya hivyo 603 00:33:29,130 --> 00:33:34,490 kwa kuchukua gradebook, ambayo ni kamusi ambayo ina funguo na maadili. 604 00:33:34,490 --> 00:33:38,730 Kupata yote ya msingi ni kupitia dot funguo njia hapa, 605 00:33:38,730 --> 00:33:43,180 na kisha kutumia joinWithSeparator hii, ambayo hatimaye kuchukua yote ya funguo 606 00:33:43,180 --> 00:33:48,590 kuwa tulikuwa typed katika, pset1-- au pole, pset0, pset1, na exam-- 607 00:33:48,590 --> 00:33:53,030 na concatenate yao pamoja kutumia comma na nafasi 608 00:33:53,030 --> 00:33:55,400 kujenga moja kwa muda mrefu kamba. 609 00:33:55,400 --> 00:34:00,190 Hii kujiunga operesheni ni phenomenally muhimu katika aina mbalimbali za mazingira. 610 00:34:00,190 --> 00:34:03,450 Na hivyo ni joinWithSeparator hii. 611 00:34:03,450 --> 00:34:06,939 >> Na hili ni jambo moja kwamba ni iliyopita kutoka Swift 1 kwa Swift 2. 612 00:34:06,939 --> 00:34:08,730 Kuna kutumika kwa kuwa Chatu style-- kama wewe ni 613 00:34:08,730 --> 00:34:13,219 ukoo na Python-- chatu style kujiunga njia juu ya masharti. 614 00:34:13,219 --> 00:34:15,699 Lakini hiyo ni tena kesi katika Swift 2. 615 00:34:15,699 --> 00:34:19,400 Unataka kutumia hii kama unataka kwa concatenate safu ya mambo 616 00:34:19,400 --> 00:34:23,380 pamoja na kamba. 617 00:34:23,380 --> 00:34:27,889 >> Hivyo labda kisha katika yetu mjadala wa wastani kabla, 618 00:34:27,889 --> 00:34:32,659 inafanya hisia kidogo zaidi kwa sisi kuweka kazi wastani 619 00:34:32,659 --> 00:34:36,610 kuwa hiari mara mbili badala kuliko tu mara mbili wazi. 620 00:34:36,610 --> 00:34:39,239 Kwa sababu tulikuwa na kwamba hali ya kawaida ambapo, 621 00:34:39,239 --> 00:34:41,550 nini kama kweli gradebook hana maadili ndani yake? 622 00:34:41,550 --> 00:34:44,280 Lazima kurudi wastani nini? 623 00:34:44,280 --> 00:34:46,350 >> Vizuri labda katika C wewe ingekuwa amefanya kitu 624 00:34:46,350 --> 00:34:50,040 kama zinazotolewa thamani mwangalizi, kama 0.0, au labda idadi hasi, 625 00:34:50,040 --> 00:34:53,690 au kitu tu anayewakilisha ukweli kuwa kulikuwa na baadhi ya hali makosa 626 00:34:53,690 --> 00:34:57,910 na wewe labda si kweli kuwa uwezo wa compute kwamba wastani. 627 00:34:57,910 --> 00:35:05,590 Naam uzuri wa kubainisha hiari aina itakuwa kufanya hivyo. 628 00:35:05,590 --> 00:35:09,540 Na mimi nina sasa akisema maneno hayo yote, lakini hii kwa kweli haina matumizi optionals. 629 00:35:09,540 --> 00:35:12,970 Lakini tutaweza kuona kwamba katika tu Dakika ambapo tunaweza kuweka wastani 630 00:35:12,970 --> 00:35:17,230 kuwa data hiari aina ili kama kweli anarudi baadhi ya data, kisha 631 00:35:17,230 --> 00:35:18,470 tutarudi data hizo. 632 00:35:18,470 --> 00:35:20,570 Vinginevyo sisi kurudi haina kabisa, akisema kuwa hii 633 00:35:20,570 --> 00:35:22,200 hana hesabu ya maana. 634 00:35:22,200 --> 00:35:25,650 635 00:35:25,650 --> 00:35:28,570 >> Hebu hoja juu ya kitu kingine. 636 00:35:28,570 --> 00:35:35,910 Hivyo kutoka hapa, tumekuwa kuangalia mifano yote haya katika mstari amri. 637 00:35:35,910 --> 00:35:39,470 Lakini kwa kweli nini wewe kwenda kuwa kushughulika na ni Xcode. 638 00:35:39,470 --> 00:35:43,720 Na moja ya mambo mazuri kuhusu Xcode ni, na hasa katika Swift, 639 00:35:43,720 --> 00:35:47,450 ni kwamba tuna hii Jambo aitwaye Uwanja wa michezo. 640 00:35:47,450 --> 00:35:51,470 Na Uwanja wa michezo ni si wakati programu zote iOS. 641 00:35:51,470 --> 00:35:54,751 Lakini utapata majaribio pamoja Swift kwa njia rahisi sana. 642 00:35:54,751 --> 00:35:56,000 Unaweza aina zote za kanuni yako. 643 00:35:56,000 --> 00:35:58,140 Ni vizuri syntax yalionyesha hapa. 644 00:35:58,140 --> 00:36:01,600 Wakati kujenga faili mpya, kuuliza wewe kama unataka kujenga Uwanja wa michezo. 645 00:36:01,600 --> 00:36:08,720 Lakini jambo zuri kuhusu Uwanja wa michezo ni kwamba juu ya haki ya dirisha yako, 646 00:36:08,720 --> 00:36:12,020 je, ni kweli kuonyesha pato kutoka kanuni yako. 647 00:36:12,020 --> 00:36:16,110 Hivyo kama mimi kitabu chini, tunaweza kuona nini pato la mistari mbalimbali ya maadili 648 00:36:16,110 --> 00:36:17,200 kweli hutokea kwa kuwa. 649 00:36:17,200 --> 00:36:19,850 650 00:36:19,850 --> 00:36:26,790 >> Hivyo katika kesi hii, tunakwenda mabadiliko maelekezo kidogo tu 651 00:36:26,790 --> 00:36:30,960 na majadiliano juu ya kitu ambacho ni kweli muhimu kwa kiwango hiki njia ya juu 652 00:36:30,960 --> 00:36:34,020 kwamba Swift kazi, na ni wazo hili la kufungwa. 653 00:36:34,020 --> 00:36:36,960 Na ve pengine kuona hii kidogo katika JavaScript. 654 00:36:36,960 --> 00:36:40,770 Kwa wale kwamba ni katika CS50, kufungwa 655 00:36:40,770 --> 00:36:47,240 ni maarufu sana, njia nzuri sana ya kufanya kiwango cha juu ya mambo katika lugha ya kisasa. 656 00:36:47,240 --> 00:36:50,270 Lakini pia ni aina ya vigumu wrap kichwa yako karibu mara ya kwanza. 657 00:36:50,270 --> 00:36:52,269 Hivyo kama wewe kuangalia hii mara ya kwanza, hiyo ni sawa. 658 00:36:52,269 --> 00:36:56,740 Tu kuangalia chanzo kanuni na kuona kama unaweza takwimu ni nje ya nyumbani. 659 00:36:56,740 --> 00:37:01,050 >> Hivyo katika kesi hii, hebu kusema kwamba sisi wanataka kujenga mengi ya mashujaa 660 00:37:01,050 --> 00:37:04,134 pamoja na baadhi ya thamani ya kudumu. 661 00:37:04,134 --> 00:37:05,800 Hivyo katika kesi hii mimi inaweza kujenga kazi. 662 00:37:05,800 --> 00:37:09,270 Mimi nina kwenda kuiita nguvu za 2 ambao lengo pekee katika maisha 663 00:37:09,270 --> 00:37:15,770 ni kuchukua baadhi ya pembejeo na mara mbili yake, na kurudi thamani hiyo. 664 00:37:15,770 --> 00:37:21,210 Taarifa kwamba mimi hapa kukubali aina moja ya data. 665 00:37:21,210 --> 00:37:23,137 Ni kwenda kuwa variable kuitwa x. 666 00:37:23,137 --> 00:37:23,970 Ni ya aina Double. 667 00:37:23,970 --> 00:37:26,190 Na mimi nina kwenda na kurudi mara mbili hapa. 668 00:37:26,190 --> 00:37:29,100 Na mimi nina kwenda tu kufanya sana, kusema ukweli, pretty 669 00:37:29,100 --> 00:37:32,650 njia wasiojua wa mara dufu thamani huu. 670 00:37:32,650 --> 00:37:35,600 Na mimi nitakuonyesha nini hii ni muhimu katika haki ya pili. 671 00:37:35,600 --> 00:37:40,418 >> Taarifa kwamba hapa tuna mbalimbali huu tena. kwa ajili ya kitu katika 1, nukta 672 00:37:40,418 --> 00:37:44,130 dot dot, 2, ambayo ina maana kwamba kitanzi hii inakwenda mara mbili. 673 00:37:44,130 --> 00:37:46,480 Lakini hii inawakilisha kutofautiana dummy. 674 00:37:46,480 --> 00:37:49,650 Ina maana mimi si kweli kwenda kutumia kwamba kutofautiana popote 675 00:37:49,650 --> 00:37:51,070 ndani ya kitanzi hii. 676 00:37:51,070 --> 00:37:55,380 Mimi nataka tu mstari huu ya maadili ya kuendesha mara mbili, 677 00:37:55,380 --> 00:37:58,980 bila wanaohitaji kujua thamani ya mbalimbali. 678 00:37:58,980 --> 00:38:02,570 >> Hivyo katika kesi hii mimi nina mbio matokeo mara x mara mbili, ambayo kimsingi 679 00:38:02,570 --> 00:38:06,560 ina maana kwamba mimi nina squaring thamani huu. 680 00:38:06,560 --> 00:38:10,230 Na hii hufanyika kwa kazi kama sisi bila kutarajia. 681 00:38:10,230 --> 00:38:16,410 Nguvu ya 2, kupita thamani ya 2.0 inatupa pato la 4. 682 00:38:16,410 --> 00:38:18,810 3.2 Kazi kwa 10.24. 683 00:38:18,810 --> 00:38:22,660 >> Sasa tunaweza kufanya sawa Jambo kwa nguvu ya 3. 684 00:38:22,660 --> 00:38:25,330 Lakini sasa kubadili tu mbalimbali. 685 00:38:25,330 --> 00:38:28,840 Kwa dummy kutofautiana katika 1 kupitia 3, kuzidisha mara 3, 686 00:38:28,840 --> 00:38:29,830 na kufanya kitu kimoja. 687 00:38:29,830 --> 00:38:32,240 >> Hivyo hii inaweza kujisikia kidogo contrived. 688 00:38:32,240 --> 00:38:34,270 Lakini kuna muhimu Jambo hapa ambayo 689 00:38:34,270 --> 00:38:37,770 ni kwamba kuangalia hizi kazi mbili, kuna 690 00:38:37,770 --> 00:38:43,600 jambo moja tu kwamba ni tofauti, ambayo ni thamani hii katika mbalimbali. 691 00:38:43,600 --> 00:38:46,910 Kila kitu kingine kuhusu hizi mbili kazi, uwezo wa 3 na uwezo wa 2, 692 00:38:46,910 --> 00:38:50,440 ni, kwa kweli, kufanana kwa sababu wanafanya kazi katika njia hiyo hiyo. 693 00:38:50,440 --> 00:38:53,460 >> Hivyo katika hatua hii, kidogo kengele kengele inapaswa kwenda mbali. 694 00:38:53,460 --> 00:38:56,200 Hopefully unachosema, unajua, hii anahisi kidogo 695 00:38:56,200 --> 00:38:59,250 kama kurudia ya juhudi. 696 00:38:59,250 --> 00:39:02,950 Labda kuna njia ni kwamba napenda kuwa na uwezo wa kurejelea haya yote 697 00:39:02,950 --> 00:39:06,630 na kutoa kazi au kuunda kazi ambayo 698 00:39:06,630 --> 00:39:11,550 gani hasa nini nataka bila wanaohitaji aina yake nje waziwazi. 699 00:39:11,550 --> 00:39:15,732 Na hii ni nini nguvu ya kufungwa inaruhusu sisi kufanya. 700 00:39:15,732 --> 00:39:16,940 Basi hebu tuangalie hii. 701 00:39:16,940 --> 00:39:18,700 Na mimi itabidi kutumia michache Dakika juu ya hili, kwa sababu hii 702 00:39:18,700 --> 00:39:20,310 ni pretty muhimu kwa Swift. 703 00:39:20,310 --> 00:39:22,900 Tunaona hii wakati wote. 704 00:39:22,900 --> 00:39:24,550 Tunakwenda kufafanua kazi. 705 00:39:24,550 --> 00:39:26,380 Ni kwenda kuitwa powerOf. 706 00:39:26,380 --> 00:39:29,470 Ni kwenda kukubali parameter aitwaye y ya aina Int. 707 00:39:29,470 --> 00:39:32,220 Lakini tuangalie aina ya kurudi. 708 00:39:32,220 --> 00:39:38,730 Aina ya kurudi ni, katika mabano, Double Double mshale. 709 00:39:38,730 --> 00:39:43,370 Ambayo ina maana kwamba kazi hii, hii powerOf kazi, 710 00:39:43,370 --> 00:39:46,550 ni kurudi kazi. 711 00:39:46,550 --> 00:39:50,845 Hiyo ni kukubali Double na kurudi mara mbili. 712 00:39:50,845 --> 00:39:53,720 Hivyo kwamba ili sauti aina ya mambo, lakini hebu kitabu chini kidogo 713 00:39:53,720 --> 00:39:55,060 na kuangalia na kuona nini kinatokea. 714 00:39:55,060 --> 00:39:57,910 Tuko ndani ya hii powerOf kazi. 715 00:39:57,910 --> 00:40:00,760 Sisi ni kujenga kazi mpya aitwaye exponentiator, 716 00:40:00,760 --> 00:40:02,900 lakini haijalishi ni nini. 717 00:40:02,900 --> 00:40:06,410 >> Taarifa kwamba hii ina pembejeo thamani ya x. 718 00:40:06,410 --> 00:40:09,910 Na ni kuchukua katika mara mbili na kurudi mara mbili. 719 00:40:09,910 --> 00:40:16,320 Na hii ni kanuni sawa kwamba sisi ona hapo juu, ila kwa kuwa thamani ya 2 720 00:40:16,320 --> 00:40:20,060 au thamani ya 3, kwamba juu amefungwa katika mbalimbali, 721 00:40:20,060 --> 00:40:23,210 imekuwa kubadilishwa na thamani huu wa y, ambayo 722 00:40:23,210 --> 00:40:27,230 ilikuwa parameter ya awali ya powerOf yetu kufanya kazi. 723 00:40:27,230 --> 00:40:31,700 Na katika hatua hii, sisi kurudi exponentiator. 724 00:40:31,700 --> 00:40:33,345 Tuko kurudi kazi. 725 00:40:33,345 --> 00:40:36,300 726 00:40:36,300 --> 00:40:39,550 >> Ni aina ya kama kidogo akili unavuma. 727 00:40:39,550 --> 00:40:44,360 Lakini hebu fikiria nini kinatokea wakati mimi kuwaita kazi hii powerOf 728 00:40:44,360 --> 00:40:47,610 na kupita ndani yake baadhi thamani kama 2. 729 00:40:47,610 --> 00:40:50,020 Hii ina maana kwamba Mimi sasa kuwa na thamani 730 00:40:50,020 --> 00:40:55,130 2 kwa y, ambayo ina maana kwamba thamani hii y katika hii kazi exponentiator 731 00:40:55,130 --> 00:40:56,410 itakuwa kwamba thamani 2. 732 00:40:56,410 --> 00:41:01,290 Lakini mimi nina kurudi huu exponentiator kazi. 733 00:41:01,290 --> 00:41:05,900 >> Hivyo taarifa gani Swift anasema mimi tumemuumba katika kesi hii. 734 00:41:05,900 --> 00:41:10,550 basi mraba ni ufafanuzi, ni kazi ambayo anapokea Double 735 00:41:10,550 --> 00:41:12,610 na anarudi Double. 736 00:41:12,610 --> 00:41:16,590 I have umba kazi kwamba viwanja kitu 737 00:41:16,590 --> 00:41:19,782 kutumia utaratibu huu hapa hapa. 738 00:41:19,782 --> 00:41:22,490 Na kwa kweli nini kinatokea ni kuwa ni kurudi kazi hii 739 00:41:22,490 --> 00:41:26,390 exponentiator, lakini thamani huu y umefungwa ndani yake. 740 00:41:26,390 --> 00:41:31,080 Na hivyo sasa kila wakati mimi kutumia hii kutofautiana au mara kwa mara hii inaitwa 741 00:41:31,080 --> 00:41:35,180 mraba, ni itakuja kuwa na tabia kama kazi. 742 00:41:35,180 --> 00:41:39,960 Na hivyo siwezi kisha kuwaita kwamba kutofautiana kama napenda kuwaita kazi, 743 00:41:39,960 --> 00:41:43,830 na kupita ndani yake idadi, kama katika kesi hii 3. 744 00:41:43,830 --> 00:41:45,910 Nami kisha mraba thamani huu. 745 00:41:45,910 --> 00:41:53,340 Hivyo 3 mraba kisha kuwa 9, kama tunaweza kuona hapa. 746 00:41:53,340 --> 00:41:56,530 >> Kweli mambo, lakini hii sasa inaruhusu mimi nafasi 747 00:41:56,530 --> 00:41:59,040 kujenga kazi nyingine powerOf. 748 00:41:59,040 --> 00:42:03,680 Kama naweza kusema, OK, vizuri sasa nataka kujenga kazi mpya, powerOf (3), 749 00:42:03,680 --> 00:42:06,290 na kuhifadhi kwamba katika mara kwa mara aitwaye mchemraba. 750 00:42:06,290 --> 00:42:10,220 Na sasa mchemraba ni kwenda kuwa kazi tofauti kwamba mapenzi kisha 751 00:42:10,220 --> 00:42:14,800 kuchukua baadhi ya thamani kama pembejeo na mchemraba kwamba thamani kama tunaweza kuona katika mstari wa chini 752 00:42:14,800 --> 00:42:16,420 hapa. 753 00:42:16,420 --> 00:42:18,590 mchemraba wa 2 ni kwenda kusababisha 8. 754 00:42:18,590 --> 00:42:21,330 755 00:42:21,330 --> 00:42:22,680 >> Hopefully pretty nadhifu mambo ya ajabu. 756 00:42:22,680 --> 00:42:25,920 Wewe sijawahi kuona hili kabla. 757 00:42:25,920 --> 00:42:29,990 Mimi moyo kuangalia ndani kufungwa na kuchunguza hii kidogo zaidi. 758 00:42:29,990 --> 00:42:33,570 Ni mambo ya ajabu kweli nguvu tunaona mengi katika JavaScript na baadhi lugha nyingine. 759 00:42:33,570 --> 00:42:37,160 Ni kweli muhimu kwa kuelewa APIs pamoja 760 00:42:37,160 --> 00:42:38,620 kwamba tutaweza kupata katika haki ya pili. 761 00:42:38,620 --> 00:42:39,456 Ndiyo? 762 00:42:39,456 --> 00:42:43,740 >> Watazamaji: Wakati wa kufanya powerOf (2), mabano, na kisha 763 00:42:43,740 --> 00:42:48,764 mabano nyingine, input-- nyingine wewe ni kimsingi kuondoa mraba. 764 00:42:48,764 --> 00:42:50,930 DAN AMRMENDARIZ: Ili kuangalia katika mstari wa mwisho kabisa hapa. 765 00:42:50,930 --> 00:42:55,930 Ni kweli kabisa inawezekana kufanya hivyo chaining kama wewe unahitajika. 766 00:42:55,930 --> 00:43:00,990 Hivyo powerOf (5) ina maana kwamba tunakwenda kuwa na exponentiator ya 5 hapa. 767 00:43:00,990 --> 00:43:04,160 Hivyo hii ni kimsingi kwenda kuwa kitu kimoja kama 4 madarakani tano, 768 00:43:04,160 --> 00:43:07,200 kwa sababu tumeunda exponentiating kazi kwa nguvu ya tano, 769 00:43:07,200 --> 00:43:09,920 na sisi ni kupita katika kwamba kazi thamani 4. 770 00:43:09,920 --> 00:43:12,619 Na sisi kupata thamani kwamba kwamba sisi kutarajia, 1024. 771 00:43:12,619 --> 00:43:14,785 Watazamaji: Na si jina, hivyo inafanya kuwa rahisi 772 00:43:14,785 --> 00:43:16,570 kusoma, mraba chochote. 773 00:43:16,570 --> 00:43:17,903 >> DAN AMRMENDARIZ: Haki, hasa. 774 00:43:17,903 --> 00:43:21,120 Hivyo kabla ya mimi tu ya kuweka ndani ya mara kwa mara hapa ili 775 00:43:21,120 --> 00:43:23,808 kuwa alifanya hivyo rahisi kutumia jina hilo. 776 00:43:23,808 --> 00:43:24,308 Ndiyo? 777 00:43:24,308 --> 00:43:26,942 >> Watazamaji: Katika hali hii powerOf, ni sehemu 778 00:43:26,942 --> 00:43:30,774 ya lugha ya programu kinyume na njia 779 00:43:30,774 --> 00:43:33,952 kufikiria powerOf katika [inaudible]? 780 00:43:33,952 --> 00:43:35,660 DAN AMRMENDARIZ: Kwa hiyo katika kesi hiyo, powerOf 781 00:43:35,660 --> 00:43:39,280 ni tu jina la kazi ambayo mimi inavyoelezwa hapa. 782 00:43:39,280 --> 00:43:41,801 Hivyo si asili kwa lugha yenyewe, 783 00:43:41,801 --> 00:43:43,550 lakini badala yake, ni tu kazi ambayo ina 784 00:43:43,550 --> 00:43:45,628 jina kwamba kwa sababu mimi kuwapa jina hilo. 785 00:43:45,628 --> 00:43:48,770 786 00:43:48,770 --> 00:43:51,920 Yoyote maswali mengine? 787 00:43:51,920 --> 00:43:52,800 Sawa. 788 00:43:52,800 --> 00:43:54,750 >> Sasa hii ni kubwa. 789 00:43:54,750 --> 00:43:58,170 Lakini wewe si kwenda kuona mengi ya kazi kufungwa kwamba 790 00:43:58,170 --> 00:44:03,440 ni kama hii ambapo unaweza kufafanua, ndani ya ya kazi moja, kazi nyingine. 791 00:44:03,440 --> 00:44:04,320 Na unaweza kufanya hivyo. 792 00:44:04,320 --> 00:44:06,430 Lakini ni aina ya si kweli muhimu, sawa? 793 00:44:06,430 --> 00:44:09,189 Kama kwa nini mimi kufafanua hii kazi kuitwa exponentiator 794 00:44:09,189 --> 00:44:10,480 na kisha mara moja kurudi. 795 00:44:10,480 --> 00:44:15,220 Kwa nini hawawezi mimi tu mara moja kurudi kazi hii? 796 00:44:15,220 --> 00:44:18,890 >> Na kwa kweli, hii ni just Dhana ya dhana iitwayo 797 00:44:18,890 --> 00:44:22,410 kazi bila majina, ambapo kazi bila majina si kweli 798 00:44:22,410 --> 00:44:25,270 na jina kwa sababu wao huna haja ya kuwa na mtu mmoja. 799 00:44:25,270 --> 00:44:28,700 Na hivyo katika kesi hii, katika 7B, tunaweza kupata just kwamba. 800 00:44:28,700 --> 00:44:31,470 Ni wote kificho huo, hasa kitu kimoja gani, 801 00:44:31,470 --> 00:44:35,570 lakini sasa tumekuwa iliyopita ni kidogo hivyo kwamba hii kazi mara moja powerOf 802 00:44:35,570 --> 00:44:37,750 anarudi kazi. 803 00:44:37,750 --> 00:44:44,150 Taarifa kwamba baada ya kurudi, kuna wazi curly mabano. 804 00:44:44,150 --> 00:44:46,410 Ni tegemeo pembejeo hii Double. 805 00:44:46,410 --> 00:44:48,560 Ni kutarajia kwamba pato Double. 806 00:44:48,560 --> 00:44:52,175 Na kisha katika neno la hutenganisha kificho yenyewe. 807 00:44:52,175 --> 00:44:53,550 Hivyo hii ni kazi bila majina. 808 00:44:53,550 --> 00:44:57,030 Haina kweli kuwa jina, ambapo kabla ilikuwa inaitwa exponentiator. 809 00:44:57,030 --> 00:45:00,229 Lakini kama tuliona, tu kwa kweli hakuwa rejea exponentiator 810 00:45:00,229 --> 00:45:01,270 nje ya kazi hiyo. 811 00:45:01,270 --> 00:45:02,470 Hivyo hakuwa na jambo hilo. 812 00:45:02,470 --> 00:45:06,300 Hivyo kazi hii bila majina ni kinachojulikana kwa sababu ni Nameless, 813 00:45:06,300 --> 00:45:09,107 lakini bado inatumiwa katika mazingira ya kanuni hii. 814 00:45:09,107 --> 00:45:13,690 815 00:45:13,690 --> 00:45:16,079 >> Ijayo wanandoa ndio mimi nina kwenda kuendelea hopefully 816 00:45:16,079 --> 00:45:17,370 kupiga akili yako kidogo. 817 00:45:17,370 --> 00:45:20,410 Tunaweza kurahisisha hii hata zaidi. 818 00:45:20,410 --> 00:45:24,490 Kwa sababu kama alikuwa astutely Alisema awali, 819 00:45:24,490 --> 00:45:29,100 labda sisi kweli kujua, na inferring kutoka kanuni hii, ni nini 820 00:45:29,100 --> 00:45:31,750 pato la kanuni hizi ni kwenda kuwa. 821 00:45:31,750 --> 00:45:38,180 Na kwa kweli, katika kazi hii bila majina, tunaweza kwa kweli kudai aina ya data. 822 00:45:38,180 --> 00:45:41,650 >> Hivyo katika hili, sisi tena haja ya kupanga kufafanua 823 00:45:41,650 --> 00:45:44,850 aina ya data hiyo kuwa pembejeo na mazao kutokana na kazi hii 824 00:45:44,850 --> 00:45:45,890 kwa michache ya sababu. 825 00:45:45,890 --> 00:45:51,390 Moja ni kwamba tumekuwa inavyoelezwa, hadi saa mfano wa enclosing kazi, 826 00:45:51,390 --> 00:45:55,770 ni aina gani ya data bila majina huu kazi lazima pembejeo na mazao. 827 00:45:55,770 --> 00:45:57,900 Na kutoka nyingine, sisi unaweza infer kutoka kificho 828 00:45:57,900 --> 00:46:01,930 chini hapa kwamba sisi ni kukubali pembejeo kwamba ni wa aina Double 829 00:46:01,930 --> 00:46:03,670 na kurudi mara mbili. 830 00:46:03,670 --> 00:46:07,890 >> Taarifa kwamba hapa tuna si wazi inavyoelezwa majina ya hoja 831 00:46:07,890 --> 00:46:11,220 kuwa kazi hii ni kukubali. 832 00:46:11,220 --> 00:46:16,180 Na hivyo tunaona tunaweza kutaja vigezo wale kutumia $ 0, $ 1, 833 00:46:16,180 --> 00:46:20,140 kadhalika na kadhalika, kutegemeana na idadi ya kwamba parameter kutumika 834 00:46:20,140 --> 00:46:20,850 katika kazi hii. 835 00:46:20,850 --> 00:46:23,370 836 00:46:23,370 --> 00:46:29,740 >> Hili ni jambo ambalo unaenda kuona mengi ni hili wazi curly mabano 837 00:46:29,740 --> 00:46:32,797 ufafanuzi ikifuatiwa na $ 0, na kisha baadhi ya operesheni, 838 00:46:32,797 --> 00:46:34,130 na kisha kufungwa curly mabano. 839 00:46:34,130 --> 00:46:38,630 Hiyo ni kazi bila majina ambayo hufanya operesheni hii. 840 00:46:38,630 --> 00:46:42,940 Ina parameter hii ambapo ni aina ni inferred. 841 00:46:42,940 --> 00:46:44,860 Hiyo parameter kwanza ni $ 0. 842 00:46:44,860 --> 00:46:49,010 Na baadhi ya operesheni ni kinatokea kwenye kwamba $ 0. 843 00:46:49,010 --> 00:46:52,100 >> Watazamaji: Hivyo ishara ya dola ina maana parameter kimsingi, 844 00:46:52,100 --> 00:46:53,429 na 0 maana yake ni moja ya kwanza? 845 00:46:53,429 --> 00:46:54,720 DAN Armendáriz: Hiyo ni sahihi. 846 00:46:54,720 --> 00:46:59,100 Hivyo ishara ya dola kimsingi ina maana parameter, na 0 ina maana moja kwanza. 847 00:46:59,100 --> 00:47:02,760 Lakini ni kazi hasa katika kesi hii ambapo mimi si jina lake 848 00:47:02,760 --> 00:47:07,940 hoja katika kazi yangu bila majina. 849 00:47:07,940 --> 00:47:11,119 >> Watazamaji: Je, Perl au kitu na ishara hii ya dola, dola 0 katika huko? 850 00:47:11,119 --> 00:47:12,702 DAN Armendáriz: Je ambayo, samahani? 851 00:47:12,702 --> 00:47:15,360 Watazamaji: Je Perl na dola hii 0, dola 1-- 852 00:47:15,360 --> 00:47:17,318 DAN Armendáriz: Sina pia ukoo na Perl, 853 00:47:17,318 --> 00:47:21,340 lakini PHP nini amefafanua vigezo kulingana na ishara ya dola. 854 00:47:21,340 --> 00:47:26,120 Na kunaweza kuwa na baadhi ya lugha kwamba kuwa na sifa kama hii. 855 00:47:26,120 --> 00:47:28,240 Kwa kweli, Swift borrows mengi ya makala kama hii 856 00:47:28,240 --> 00:47:29,489 kutoka mengi ya lugha nyingine. 857 00:47:29,489 --> 00:47:32,380 Tunaona mwanga wa chatu ndani yake. 858 00:47:32,380 --> 00:47:35,800 Ufafanuzi huu wa aina inaonekana kuja kutoka OCaml. 859 00:47:35,800 --> 00:47:38,932 Na tuna tu rundo zima la mambo kutoka kura ya lugha mbalimbali. 860 00:47:38,932 --> 00:47:40,640 Hiyo ni moja ya nzuri mambo kuhusu Swift 861 00:47:40,640 --> 00:47:43,390 ni kwamba inachukua mengi ya bora mawazo kutoka kundi la lugha 862 00:47:43,390 --> 00:47:47,229 na shoehorns wote pamoja katika lugha moja super. 863 00:47:47,229 --> 00:47:49,520 Kwa kweli, kama wewe naomba kuendelea kupiga akili yako, 864 00:47:49,520 --> 00:47:51,000 hivyo tumekuwa kufanya haya yote. 865 00:47:51,000 --> 00:47:56,690 Tunaweza labda kurahisisha hii kidogo kidogo kwa kutambua kwamba, bila shaka, 866 00:47:56,690 --> 00:48:02,120 Swift ina exponentiating kazi kujengwa katika. 867 00:48:02,120 --> 00:48:04,660 Kama mimi kuagiza Darwin, ambayo ni tu maktaba ambayo 868 00:48:04,660 --> 00:48:09,680 makala kazi kuitwa hii pow, sasa Siwezi kurahisisha uwezo wangu wa kazi 869 00:48:09,680 --> 00:48:11,830 kuwa yafuatayo. 870 00:48:11,830 --> 00:48:15,860 Ni kwenda kuwa kurudi kazi hii bila majina. 871 00:48:15,860 --> 00:48:17,950 >> Lakini tuangalie jinsi rahisi hii ni sasa. 872 00:48:17,950 --> 00:48:22,780 Hii ni kazi bila majina kwamba ni kukubali baadhi ya aina ya data, 873 00:48:22,780 --> 00:48:26,600 na ni kwenda kuwa moja Hoja hasa, 874 00:48:26,600 --> 00:48:29,320 inatazamwa katika $ 0 kwamba ni ya aina Double. 875 00:48:29,320 --> 00:48:32,680 Ni kwenda na kurudi aina Double. 876 00:48:32,680 --> 00:48:35,760 Lakini kauli kurudi sasa thabiti. 877 00:48:35,760 --> 00:48:39,990 >> Na ni mtindo huu halisi kwamba ni sana, imefikia sana katika Swift, 878 00:48:39,990 --> 00:48:40,790 kila mahali. 879 00:48:40,790 --> 00:48:43,190 Tunakwenda kuona hii muda wote katika Swift. 880 00:48:43,190 --> 00:48:46,150 Hivyo mimi nina kuonyesha yote haya kwa wewe kwa sababu ya syntax hii. 881 00:48:46,150 --> 00:48:49,070 Hii ni kawaida sana kuona, maana yake 882 00:48:49,070 --> 00:48:51,420 ni kazi bila majina kwamba ni kufanya 883 00:48:51,420 --> 00:48:54,640 baadhi ya operesheni juu ya hoja hizi. 884 00:48:54,640 --> 00:48:56,940 Na kuna kurudi thabiti. 885 00:48:56,940 --> 00:49:01,850 Hivyo ni kabisa kitu kimoja kwetu kusema hayo, haki hapa. 886 00:49:01,850 --> 00:49:05,730 887 00:49:05,730 --> 00:49:08,150 >> Kwa sababu curly hii mabano ni kazi, 888 00:49:08,150 --> 00:49:10,480 tuko kufanya operesheni hii juu ya hoja ya kwanza. 889 00:49:10,480 --> 00:49:12,170 Sisi ni kwenda na kurudi hivyo. 890 00:49:12,170 --> 00:49:14,815 Lakini kurudi hii nje ni kurudi kazi ile yote, 891 00:49:14,815 --> 00:49:19,855 kwamba kazi nzima bila majina kwamba tumekuwa tu kuundwa. 892 00:49:19,855 --> 00:49:21,689 Yoyote maswali mengine? 893 00:49:21,689 --> 00:49:23,980 Sawa, mimi sijui kama nyie ni tayari kwa ajili ya hii, 894 00:49:23,980 --> 00:49:27,455 lakini tunaweza kwenda hata crazier na Swift. 895 00:49:27,455 --> 00:49:28,560 Uko tayari? 896 00:49:28,560 --> 00:49:29,930 OK, hii ni kubwa. 897 00:49:29,930 --> 00:49:35,310 >> Sasa sisi kweli kuwa na uwezo kwa, katika Swift, kwa sababu ya jinsi msimu 898 00:49:35,310 --> 00:49:39,650 na jinsi itifaki msingi ni, kwa kufafanua wetu waendeshaji wenyewe freaking. 899 00:49:39,650 --> 00:49:44,060 Kama katika kesi hii, hatukuwa na alama kwa exponentiation-- vizuri, 900 00:49:44,060 --> 00:49:47,990 kwa ajili ya kufanya nguvu za kitu. 901 00:49:47,990 --> 00:49:53,632 Lakini siwezi, katika Swift, kufafanua mpya alama kwamba hana just kwamba. 902 00:49:53,632 --> 00:49:55,590 Hivyo katika kesi hii kuna rundo la syntax hapa. 903 00:49:55,590 --> 00:49:59,980 Na mimi itabidi kuruhusu kuangalia ni nyumbani wakati ukiangalia hiyo. 904 00:49:59,980 --> 00:50:06,890 Lakini sisi ni kufafanua infix hii operator, **, ambayo hatimaye kuruhusu sisi, 905 00:50:06,890 --> 00:50:09,840 na kufafanua kile kwamba kazi ** kweli 906 00:50:09,840 --> 00:50:15,010 haina, kukubali mkono wa kushoto upande na upande wa kulia, 907 00:50:15,010 --> 00:50:21,190 na kisha kurudi exponent ya kwamba mkono wa kushoto upande kwa upande wa kulia. 908 00:50:21,190 --> 00:50:24,850 >> Na hivyo sasa wote wa mimi ghafla tumemuumba kadiri mpya. 909 00:50:24,850 --> 00:50:29,490 Hivyo 2 ** 3 ina maana 2 madarakani tatu. 910 00:50:29,490 --> 00:50:34,420 [AKILI BLOWING SOUND] Hii na yenyewe lazima uwe kuwa kama, 911 00:50:34,420 --> 00:50:37,960 OK, parafujo C. mimi nina kwenda Swift njia yote. 912 00:50:37,960 --> 00:50:38,740 Hii ni kubwa. 913 00:50:38,740 --> 00:50:40,140 Hii ni pretty ajabu. 914 00:50:40,140 --> 00:50:42,240 >> Ingawa hii ni mfano mkubwa. 915 00:50:42,240 --> 00:50:45,570 Lakini nina kamwe mara moja nje ya mfano huu kwa kweli 916 00:50:45,570 --> 00:50:46,800 inavyoelezwa operator yangu mwenyewe. 917 00:50:46,800 --> 00:50:49,710 Lakini bado, inaonyesha mengi ya nguvu ya Swift 918 00:50:49,710 --> 00:50:54,050 na kwa nini hii ni kweli kweli baridi sana. 919 00:50:54,050 --> 00:50:55,832 OK, ndiyo? 920 00:50:55,832 --> 00:50:57,790 Watazamaji: Kama uko kufafanua operator yako mwenyewe, 921 00:50:57,790 --> 00:51:02,940 jinsi gani unajua huna ajali kujaribu na kujenga operator hiyo ni 922 00:51:02,940 --> 00:51:06,040 katika mahali fulani katika C, kama siri mahali fulani katika Swift, 923 00:51:06,040 --> 00:51:12,210 kama moja Obscure kwamba inaweza kuwa kuona mbele. 924 00:51:12,210 --> 00:51:15,050 >> DAN Armendáriz: Hivyo kama wewe ni kujaribu kufafanua waendeshaji yako mwenyewe, 925 00:51:15,050 --> 00:51:20,970 kuna hatari ya kufafanua moja juu ya alama zilizopo. 926 00:51:20,970 --> 00:51:24,870 Kwamba huenda katika ngazi ya kina kwamba Sidhani kama tuna muda wa kwenda juu. 927 00:51:24,870 --> 00:51:27,620 Lakini hiyo ni hatari. 928 00:51:27,620 --> 00:51:31,320 Na kwamba kwa kweli ni sababu sana kwa nini Sikuwa kutumia kareti ishara, ambayo 929 00:51:31,320 --> 00:51:36,210 wakati sisi ni kuandika nje nguvu, sisi kwa kawaida kutumia 4 kidogo kareti 5 au kitu 930 00:51:36,210 --> 00:51:40,560 kama kwamba, tu wakati tuko Gchatting marafiki au chochote. 931 00:51:40,560 --> 00:51:43,660 Lakini katika kesi hiyo, kwamba kweli ingekuwa unasababishwa mgongano. 932 00:51:43,660 --> 00:51:46,450 Na hivyo mimi kuepukwa ni kwa sababu tu Mimi kilichotokea kwa kujua katika kesi hiyo 933 00:51:46,450 --> 00:51:50,430 kwamba ambayo ingeweza kusababisha kwamba mgongano. 934 00:51:50,430 --> 00:51:52,270 >> Sawa. 935 00:51:52,270 --> 00:51:55,080 Sasa kwa bahati mbaya, kwa Dakika saba iliyopita, 936 00:51:55,080 --> 00:51:57,410 Nina kuweka kupiga akili yako kidogo. 937 00:51:57,410 --> 00:52:00,230 Hivyo naomba kuonyesha baadhi ya mambo mengine pia. 938 00:52:00,230 --> 00:52:03,710 >> Tumekuwa umeonyesha wewe wazo hili la kuwa kazi hizi bila majina, 939 00:52:03,710 --> 00:52:07,040 kufungwa hizi kwamba kuruhusu aina ya kupitisha kazi kuzunguka. 940 00:52:07,040 --> 00:52:08,100 Unaweza kurudi kwao. 941 00:52:08,100 --> 00:52:09,490 Unaweza kuendesha yao. 942 00:52:09,490 --> 00:52:11,790 Unaweza kufanya kila aina ya mambo mambo. 943 00:52:11,790 --> 00:52:14,850 >> Lakini jambo moja nyingine kwamba hutokea kwa kuwa na manufaa 944 00:52:14,850 --> 00:52:19,740 ni uwezo wa, kinyume kwa kurudi kazi hizo 945 00:52:19,740 --> 00:52:25,146 katika kazi, kupita kazi kama parameter kwa kazi nyingine. 946 00:52:25,146 --> 00:52:30,430 Unaweza kuwa na mawazo vizuri kwa nini Duniani ingekuwa nataka kufanya kitu kama hicho? 947 00:52:30,430 --> 00:52:33,660 >> Naam, hebu kusema kwamba nataka kuchukua operator huu kwamba mimi 948 00:52:33,660 --> 00:52:40,260 kazi kwa bidii ili kujenga na kuomba kwa rundo la idadi tofauti 949 00:52:40,260 --> 00:52:41,770 katika safu. 950 00:52:41,770 --> 00:52:46,700 Hivyo katika kesi hii nina safu ya integers-- 1, 4, 7, 2, 5, 10, 56. 951 00:52:46,700 --> 00:52:48,080 Na mimi wanataka mara mbili yao yote. 952 00:52:48,080 --> 00:52:50,430 Njia ambayo tunataka kawaida kufanya hivyo ni kuandika tu 953 00:52:50,430 --> 00:52:53,440 rahisi kwa kitanzi kwamba iterates juu wote 954 00:52:53,440 --> 00:52:57,140 na kufanya aina fulani ya operesheni za mraba juu yao, 955 00:52:57,140 --> 00:53:02,700 inputting maadili hayo mapya ndani ya mwezi kutofautiana, au tuseme, safu mpya hapa. 956 00:53:02,700 --> 00:53:07,370 Na thamani ya pato la Matokeo yake ni kisha wote wa arrays hizo, 957 00:53:07,370 --> 00:53:10,200 au tuseme wale wote mambo sasa squared. 958 00:53:10,200 --> 00:53:12,680 >> Na tunaweza kufanya hivyo Jambo kwa cubing hilo, 959 00:53:12,680 --> 00:53:15,360 lakini kidogo kengele kengele lazima kuwa kwenda mbali 960 00:53:15,360 --> 00:53:17,360 akisema kwamba labda kuna baadhi ya njia kwamba tunataka 961 00:53:17,360 --> 00:53:19,860 kuwa na uwezo wa kurahisisha hii kidogo. 962 00:53:19,860 --> 00:53:21,130 Na kwa kweli kuna. 963 00:53:21,130 --> 00:53:25,320 Nini kama tunaweza kujenga kazi ambayo inaruhusu sisi 964 00:53:25,320 --> 00:53:28,350 kukubali, kama Predator, kazi? 965 00:53:28,350 --> 00:53:30,350 Hivyo katika kesi hii, kuchukua tuangalie hoja hizi. 966 00:53:30,350 --> 00:53:33,220 Tunakwenda kukubali orodha ya mara mbili. 967 00:53:33,220 --> 00:53:35,030 Na kisha tunakwenda kukubali kazi 968 00:53:35,030 --> 00:53:40,990 katika variable kuitwa f kwamba ni kwenda kuchukua Double na kurudi mara mbili. 969 00:53:40,990 --> 00:53:43,320 Na pato zima ya kazi hii nzima 970 00:53:43,320 --> 00:53:47,310 aitwaye mapper ni kwenda kurudi safu kuitwa mara mbili. 971 00:53:47,310 --> 00:53:52,380 >> Nini hii itakuwa kisha naomba kufanya ni iterate juu ya orodha hiyo 972 00:53:52,380 --> 00:53:56,350 na kufanya kitu kimoja, lakini sasa kuomba kazi ambayo kila 973 00:53:56,350 --> 00:53:58,970 maadili ya mtu binafsi katika orodha hiyo. 974 00:53:58,970 --> 00:54:00,750 Hivyo mimi si kweli kujua nini f ni. 975 00:54:00,750 --> 00:54:02,010 Haijalishi kwangu. 976 00:54:02,010 --> 00:54:06,530 Lakini kwa muda mrefu kama inachukua katika Double, hufanya baadhi operesheni juu yake, 977 00:54:06,530 --> 00:54:08,640 na kisha anarudi Double, napenda kisha kuwa 978 00:54:08,640 --> 00:54:13,415 uwezo wa ramani kazi ambayo hela kila kipengele moja katika orodha. 979 00:54:13,415 --> 00:54:16,270 980 00:54:16,270 --> 00:54:20,930 >> Na aina hii ya programu ni aitwaye kazi juu ili, 981 00:54:20,930 --> 00:54:24,440 ambapo sisi ni kupita kazi karibu kama vigezo 982 00:54:24,440 --> 00:54:26,430 na kufanya mambo na kazi. 983 00:54:26,430 --> 00:54:29,640 Ni aina ya kama kuchukua yote haya mawazo ambayo tumejifunza katika CS50 984 00:54:29,640 --> 00:54:31,390 na kuwapeleka aina ya ngazi ya pili. 985 00:54:31,390 --> 00:54:34,140 Na hii yote ni mambo CS51 style. 986 00:54:34,140 --> 00:54:37,080 Na hivyo tutaweza kwenda katika kina zaidi katika madarasa kama hayo. 987 00:54:37,080 --> 00:54:38,930 >> Lakini hii pia ni muhimu hapa kwa sababu sisi 988 00:54:38,930 --> 00:54:42,010 kuona mengi ya kazi ambazo hutumika katika Swift 989 00:54:42,010 --> 00:54:45,590 kwamba kimsingi anafanya huu, ambapo tuna 990 00:54:45,590 --> 00:54:48,300 idadi ya baadhi, baadhi safu ya idadi. 991 00:54:48,300 --> 00:54:50,850 Tunakwenda kupita kwamba safu katika mapper yetu. 992 00:54:50,850 --> 00:54:55,770 Na sisi ni pia kwenda kupita baadhi ya kazi, ambayo 993 00:54:55,770 --> 00:54:57,950 tumekuwa tayari kuelezwa hapa. 994 00:54:57,950 --> 00:54:59,690 Ni kwenda kuwa mraba. 995 00:54:59,690 --> 00:55:02,220 Na tunakwenda kisha mraba wote wa wale idadi 996 00:55:02,220 --> 00:55:04,710 na kuhifadhi kwamba katika matokeo haya hapa. 997 00:55:04,710 --> 00:55:07,280 998 00:55:07,280 --> 00:55:11,000 >> Hivyo kesi hii tumekuwa inavyoelezwa yetu kazi mwenyewe iitwayo mapper. 999 00:55:11,000 --> 00:55:15,370 Lakini jambo hili ni halisi, kwa kweli, kujengwa katika Swift. 1000 00:55:15,370 --> 00:55:18,960 Kuna aina ya kazi inayoitwa ramani. 1001 00:55:18,960 --> 00:55:21,520 Kuna kazi ramani, kuna kupunguza kazi, 1002 00:55:21,520 --> 00:55:25,630 na kuna chujio kazi, ambayo kimsingi kuomba kazi 1003 00:55:25,630 --> 00:55:30,782 kwa kila kipengele moja katika orodha ya kurekebisha yao kwa namna fulani. 1004 00:55:30,782 --> 00:55:34,510 >> Watazamaji: Hivyo tangu wewe ni kubadilisha data katika muundo mwingine 1005 00:55:34,510 --> 00:55:36,134 kupitia function-- 1006 00:55:36,134 --> 00:55:37,050 DAN Armendáriz: Haki. 1007 00:55:37,050 --> 00:55:39,420 Yeah, hivyo kazi kwamba sisi ni kukubali 1008 00:55:39,420 --> 00:55:41,790 ni kubadilisha data kwa namna fulani. 1009 00:55:41,790 --> 00:55:44,700 Katika kesi hiyo, sisi walikuwa ama squaring, au tulikuwa cubing hilo, 1010 00:55:44,700 --> 00:55:50,060 au kweli, tunaweza kufanya hakuna operesheni juu yake wakati wote. 1011 00:55:50,060 --> 00:55:54,150 >> Lakini napenda kuonyesha jinsi hii basi ni kwenda kuangalia kwa vitendo. 1012 00:55:54,150 --> 00:55:56,681 Na tena, mimi nina mbio muda kidogo. hivyo mimi nina 1013 00:55:56,681 --> 00:55:59,430 kwenda kuwa na uwezo wa kwenda juu ya mambo yote ya chanzo kanuni hapa kwa undani zaidi. 1014 00:55:59,430 --> 00:56:00,721 Lakini Mimi moyo wa kufanya hivyo. 1015 00:56:00,721 --> 00:56:03,850 Tutaweza baada yake kwa haraka kama iwezekanavyo baada ya majadiliano hayo. 1016 00:56:03,850 --> 00:56:07,610 >> Lakini kama wewe kuangalia hii, kudhani kwamba tuna orodha ya namba, 1017 00:56:07,610 --> 00:56:10,260 safu ya idadi katika hii kutofautiana kuitwa namba. 1018 00:56:10,260 --> 00:56:16,670 Kisha tunataka kufanya hii filter operesheni juu ya namba hizo. 1019 00:56:16,670 --> 00:56:19,730 Hivyo kuchuja ni kubwa Ili kazi hiyo 1020 00:56:19,730 --> 00:56:24,660 anapokea safu na pia kazi. 1021 00:56:24,660 --> 00:56:28,760 Na juu ya kila kipengele katika kwamba safu, hufanya kazi hiyo. 1022 00:56:28,760 --> 00:56:31,990 >> Kama hiyo anarudi kazi kweli, ni kuvaa bidhaa hiyo. 1023 00:56:31,990 --> 00:56:36,100 Kama kazi kwamba anarudi uongo, Moto huo unatoa mbali bidhaa hiyo. 1024 00:56:36,100 --> 00:56:40,480 Na kisha kuirudisha orodha kwamba ni kisha linaloundwa zote 1025 00:56:40,480 --> 00:56:44,360 ya vitu wale ambao wamekuwa kuchujwa. 1026 00:56:44,360 --> 00:56:47,150 >> Hivyo kwa maneno mwingine, hii ni wazo moja, gradebook. 1027 00:56:47,150 --> 00:56:50,800 Tunaweza kuwa na aina ya darasa ndani ya hii thamani aitwaye namba. 1028 00:56:50,800 --> 00:56:55,590 Inaweza kuwa 100, na 70, na 40, kadhalika na kadhalika. 1029 00:56:55,590 --> 00:56:59,110 Nini filter hii haina taarifa ni kwamba hii ni kwamba sukari kisintaksia 1030 00:56:59,110 --> 00:57:01,310 kwa kazi bila majina. 1031 00:57:01,310 --> 00:57:05,980 Hii ni kazi bila majina akisema kwamba parameter kwamba mimi nina kukubali 1032 00:57:05,980 --> 00:57:09,690 ni kwenda kuwa, ikiwa ni ni mkubwa kuliko 70, 1033 00:57:09,690 --> 00:57:15,837 basi hii itakuwa kurudi kweli, kwa maana kwamba bidhaa kwamba yatawekwa katika chujio hii. 1034 00:57:15,837 --> 00:57:17,920 Basi hebu kuwa kidogo thabiti zaidi kuhusu hili. 1035 00:57:17,920 --> 00:57:25,760 Kama mimi na safu hii ya namba na lina ya 100, 70, na 40, 1036 00:57:25,760 --> 00:57:29,730 Mimi kufanya filter hii operesheni juu ya kila mmoja wa wale. 1037 00:57:29,730 --> 00:57:33,270 Hivyo kwamba moja ya kwanza ni thamani hii ya 100. 1038 00:57:33,270 --> 00:57:36,770 100 zaidi au sawa 70 Ni kweli, ambayo 1039 00:57:36,770 --> 00:57:41,950 ina maana kwamba 100 ni agizo katika nakala hii mpya wa safu hii. 1040 00:57:41,950 --> 00:57:44,290 70 pia hupita. 1041 00:57:44,290 --> 00:57:46,020 Lakini 40 hana. 1042 00:57:46,020 --> 00:57:54,290 Kwa hiyo kile ni kurudi katika passingCount ni safu ya vipengele 100 na 70-- 1043 00:57:54,290 --> 00:57:57,410 100, comma, 70. 1044 00:57:57,410 --> 00:57:59,870 Wale walikuwa wawili tu vitu kwamba walikuwa agizo. 1045 00:57:59,870 --> 00:58:03,740 Na hivyo sababu mimi haraka akaenda kwa njia ya mengi ya aina ya utaratibu ya juu 1046 00:58:03,740 --> 00:58:08,680 mambo ni kwa sababu hii ni kwamba kawaida Jambo kwamba utaona katika Swift pretty 1047 00:58:08,680 --> 00:58:16,810 mara kwa mara, ni kufanya baadhi ya operesheni kutumia hii bila majina kazi syntax. 1048 00:58:16,810 --> 00:58:18,450 >> Kuna baadhi ya mambo ya baridi. 1049 00:58:18,450 --> 00:58:24,730 Swichi ni kweli nguvu katika Swift, I mean tu kama mambo, mambo yenye nguvu. 1050 00:58:24,730 --> 00:58:28,250 Unaweza kutumia kubadili, na unaweza kweli kuyatumia 1051 00:58:28,250 --> 00:58:33,160 kwa safu, ambayo ni aina ya mambo, na kufanya mambo ya dhana kama hiyo. 1052 00:58:33,160 --> 00:58:37,540 >> Lakini katika dakika chache zilizopita, Nataka ruka mbele kabisa mbali 1053 00:58:37,540 --> 00:58:46,940 na kuonyesha mfano maalum ya jinsi tunaweza kujenga katika iOS programu kutumia Swift. 1054 00:58:46,940 --> 00:58:49,040 Hivyo wakati wewe ni kufanya hii, itabidi kuchukua 1055 00:58:49,040 --> 00:58:51,990 a kuangalia at-- juu ya Apple nyaraka, wao 1056 00:58:51,990 --> 00:58:56,084 una mengi ya tutorials mzuri kwa ajili ya kujenga maombi yako ya kwanza. 1057 00:58:56,084 --> 00:58:58,250 Na mimi moyo wa kufanya kwamba kwa sababu wao kuchukua wewe 1058 00:58:58,250 --> 00:59:04,110 kupitia hatua zote za nini hasa kwa click juu ya kuunda maombi iOS. 1059 00:59:04,110 --> 00:59:07,290 >> Lakini hapa tuna programu hii iOS. 1060 00:59:07,290 --> 00:59:10,960 Na ni programu pretty rahisi kweli. 1061 00:59:10,960 --> 00:59:13,840 Kama mimi kukimbia hii, napenda kuonyesha wewe nini inaonekana kama. 1062 00:59:13,840 --> 00:59:19,480 Wote ni kimsingi gani ni pulls kutoka internet JSON faili 1063 00:59:19,480 --> 00:59:22,300 kwamba mimi kuhifadhiwa kwenye kompyuta. 1064 00:59:22,300 --> 00:59:26,310 Na kwamba JSON faili amefafanua picha kwamba kuruhusu 1065 00:59:26,310 --> 00:59:31,680 mimi kisha mzunguko kwa njia, juu ya yangu programu, picha kutoka mtandao wa kompyuta yangu. 1066 00:59:31,680 --> 00:59:32,880 >> Hivyo nina hapa getNextImage. 1067 00:59:32,880 --> 00:59:37,100 Ni mizigo picha kutoka katika mtandao, na kisha maonyesho hayo kwenye screen. 1068 00:59:37,100 --> 00:59:38,200 >> Hivyo ni pretty rahisi. 1069 00:59:38,200 --> 00:59:41,550 Lakini lengo hapa ni kuonyesha jinsi tunaweza kuchanganya mambo 1070 00:59:41,550 --> 00:59:47,820 kutoka mwisho wa wiki chache ya CS50 ndani ya halisi iOS maombi. 1071 00:59:47,820 --> 00:59:53,140 Kwa maneno mengine, labda ni moja ya mambo ambayo wewe unataka kufanya 1072 00:59:53,140 --> 00:59:56,340 ni kuwa na maombi iOS kwamba anaweza kuvuta data kutoka kwa mtandao 1073 00:59:56,340 --> 00:59:59,070 na kuonyesha user baadhi ya habari. 1074 00:59:59,070 --> 01:00:03,130 Hiyo ni kabisa hatua ya hii chanzo kanuni hapa. 1075 01:00:03,130 --> 01:00:07,890 >> Hivyo kuna mengi ya kusema kuhusu jinsi ya kufanya maendeleo halisi iOS. 1076 01:00:07,890 --> 01:00:12,860 Kuna mengi ya mambo syntax kwamba hatujaona bado kabisa 1077 01:00:12,860 --> 01:00:15,580 kama darasa, kile darasa kweli ni. 1078 01:00:15,580 --> 01:00:19,470 Tunaweza kwa kiasi kikubwa kupuuza kwamba kwa wakati huu. 1079 01:00:19,470 --> 01:00:23,250 >> Lakini taarifa kwamba tuna zilizomo ndani ya hii aina ya mambo 1080 01:00:23,250 --> 01:00:27,720 kuwa tumekuwa tayari kuona kama kazi ambazo zina majina maalum. 1081 01:00:27,720 --> 01:00:32,650 Na wakati sisi kutoa wale kazi zake majina sahihi 1082 01:00:32,650 --> 01:00:36,530 kwamba wanatarajiwa na iOS, kwa kweli hii anahisi kidogo kichawi. 1083 01:00:36,530 --> 01:00:40,300 Lakini wakati kujenga iOS maombi, kuna 1084 01:00:40,300 --> 01:00:47,590 ndiyo majina kazi maalum kwamba walioitwa kwa simu yenyewe 1085 01:00:47,590 --> 01:00:52,440 kama maombi ni kupakia kujaribu kujenga mchakato kwamba kweli 1086 01:00:52,440 --> 01:00:54,787 anaendesha maombi yako. 1087 01:00:54,787 --> 01:00:58,120 Hivyo tena, kuna mambo mengi ambayo mimi kuwa na Gloss juu hapa ili na sisi 1088 01:00:58,120 --> 01:01:00,570 kuzungumza kuhusu suala hili mahsusi. 1089 01:01:00,570 --> 01:01:06,050 Lakini mimi moyo kuangalia labda wengine iOS semina, lakini pia baadhi 1090 01:01:06,050 --> 01:01:09,290 ya tutorials online ambayo kufanya kazi bora zaidi ya kuelezea 1091 01:01:09,290 --> 01:01:11,030 taarifa maalum. 1092 01:01:11,030 --> 01:01:15,760 >> Lakini tunaweza kuona michache ya mambo ambayo ni ya kuvutia kutoka kificho hapa. 1093 01:01:15,760 --> 01:01:17,950 Taarifa kwamba tuna kama kauli. 1094 01:01:17,950 --> 01:01:20,400 Kwa njia, moja muhimu Jambo kuhusu kauli kama 1095 01:01:20,400 --> 01:01:24,860 ni kwamba mabano kuzunguka Kujieleza Boolean ni hiari. 1096 01:01:24,860 --> 01:01:30,800 Lakini braces curly si hiari, bila kujali jinsi chache au mistari mingi ya kificho 1097 01:01:30,800 --> 01:01:32,360 una katika ikiwa kauli. 1098 01:01:32,360 --> 01:01:38,670 Huwezi kuwa kama kauli bila braces curly katika Swift. 1099 01:01:38,670 --> 01:01:41,000 >> Na hii ni, vizuri, aina ya silly. 1100 01:01:41,000 --> 01:01:43,910 Lakini kuna sababu za kihistoria kwa ajili hiyo. 1101 01:01:43,910 --> 01:01:46,180 Ni walidhani kuokoa kutoka mwenyewe. 1102 01:01:46,180 --> 01:01:49,899 Kama hii kwa mfano, huwezi kuondoa braces curly kuzunguka kwamba 1103 01:01:49,899 --> 01:01:50,440 kama taarifa. 1104 01:01:50,440 --> 01:01:52,730 Wale ni kwa kweli inahitajika. 1105 01:01:52,730 --> 01:01:54,480 Hivyo Mimi moyo tuangalie hii. 1106 01:01:54,480 --> 01:01:56,230 Lakini kuna moja zaidi kujenga kwamba nataka 1107 01:01:56,230 --> 01:02:02,640 kuwaonyesha kuhusu Swift kwamba ni mpya kwa Swift 2.0 ikilinganishwa 1108 01:02:02,640 --> 01:02:08,460 kwa matoleo ya zamani ya Swift, ambayo ni yafuatayo. 1109 01:02:08,460 --> 01:02:11,620 Hebu angalia wapi mimi kuweka hapa? 1110 01:02:11,620 --> 01:02:16,630 >> Hivyo katika kazi hii inaitwa fetchJSON, kazi hii 1111 01:02:16,630 --> 01:02:23,450 ina jukumu la kuunganisha kwamba JSON faili kutoka URL, ambayo tu hivyo hutokea 1112 01:02:23,450 --> 01:02:26,310 kuwa mbio juu ya CS50 yangu IDE. 1113 01:02:26,310 --> 01:02:28,580 Mimi tu ya kuanza Apache, kuweka JSON faili yangu huko, 1114 01:02:28,580 --> 01:02:32,110 na mimi nina uwezo wa kuvuta kwamba basi data kutoka kwa mtandao kwa kutumia 1115 01:02:32,110 --> 01:02:36,430 kazi hii na URL hii, ambayo hutolewa kwa njia ya simu. 1116 01:02:36,430 --> 01:02:40,490 Ni zinazotolewa na maktaba kwamba matumizi wakati 1117 01:02:40,490 --> 01:02:43,140 unafanya baadhi iOS programu ya maendeleo. 1118 01:02:43,140 --> 01:02:49,690 >> Taarifa hapa kwamba kuna hii isiyo ya kawaida syntactical kujenga aitwaye walinzi. 1119 01:02:49,690 --> 01:02:53,530 Na kwa kweli yote haya ni katika Swift ni njia ya kuthibitisha 1120 01:02:53,530 --> 01:02:56,870 kwamba baadhi ya mambo na alikutana kabla 1121 01:02:56,870 --> 01:03:00,000 kuendelea na mapumziko ya kazi. 1122 01:03:00,000 --> 01:03:04,260 Ili niweze kuwa, kwa kutumia aina hii ya hiari, 1123 01:03:04,260 --> 01:03:10,530 Mimi naweza wamegundua URL na mbio kazi hii NSURL 1124 01:03:10,530 --> 01:03:16,640 na kuhifadhi kwamba katika URL mara kwa mara, na kisha kuangalia 1125 01:03:16,640 --> 01:03:20,820 ili kuona kama URL ilikuwa haina kabisa, kwa sababu ilikuwa kwenda na kurudi aina ya hiari. 1126 01:03:20,820 --> 01:03:25,660 Na kama ilikuwa haina kabisa, kisha napenda magazeti nje makosa na kisha kurudi. 1127 01:03:25,660 --> 01:03:29,970 >> Lakini badala yake, nini walinzi lets sisi kufanya ni kuwa kitu sana, 1128 01:03:29,970 --> 01:03:34,550 lakini kuhakikisha kwamba ni kweli kesi hiyo url 1129 01:03:34,550 --> 01:03:38,020 imekuwa vizuri kuweka na NSURL. 1130 01:03:38,020 --> 01:03:41,810 Na kama ni, basi ni skips juu ya hili, na ni 1131 01:03:41,810 --> 01:03:46,110 itawawezesha kuendelea na url baada ya kuelezwa vizuri. 1132 01:03:46,110 --> 01:03:48,830 Lakini ikiwa ni kesi hiyo url ni vizuri defined, 1133 01:03:48,830 --> 01:03:52,550 kama kazi hii anarudi makosa au nyingine jambo isiyotarajiwa 1134 01:03:52,550 --> 01:03:58,030 kweli hutokea, huu kujenga ulinzi inaruhusu sisi kisha pato kwamba makosa 1135 01:03:58,030 --> 01:04:00,390 na kurudi mara moja. 1136 01:04:00,390 --> 01:04:00,890 Ndiyo? 1137 01:04:00,890 --> 01:04:04,839 >> Watazamaji: Hivyo ni aina ya kama ikiwa kisha mwingine? 1138 01:04:04,839 --> 01:04:07,130 DAN Armendáriz: Ni aina ya kama ikiwa kisha mwingine, ndiyo, 1139 01:04:07,130 --> 01:04:14,200 isipokuwa kwamba url hii ni kisha inavyoelezwa kwa kila kitu hapa chini hii. 1140 01:04:14,200 --> 01:04:20,420 Kama itapita walinzi hii, basi ni kwa kweli kujazwa na data 1141 01:04:20,420 --> 01:04:29,500 na inatumika katika iliyobaki chanzo kanuni katika kazi yako. 1142 01:04:29,500 --> 01:04:33,790 Hivyo mimi mtuhumiwa kuwa wewe ni kwenda kuanza kuona walinzi huu pia. 1143 01:04:33,790 --> 01:04:36,670 Na kukumbuka ya kwamba. 1144 01:04:36,670 --> 01:04:46,270 >> Hivyo kuangalia tu michache ya wengine mambo, haki hii hapa ni nini, 1145 01:04:46,270 --> 01:04:53,377 unafikiri, tu kulingana na kile sisi walikuwa wanazungumza juu kabla? 1146 01:04:53,377 --> 01:04:56,650 >> Watazamaji: Fikiria kutakuwa na kukimbia katika orodha? 1147 01:04:56,650 --> 01:04:59,100 >> DAN Armendáriz: Basi hiyo ni karibu. 1148 01:04:59,100 --> 01:05:02,360 Hii ni kazi ambayo sisi ni kufafanua. 1149 01:05:02,360 --> 01:05:07,240 Na sisi ni inputting kazi ambayo kama hoja kwa kazi hii hapa. 1150 01:05:07,240 --> 01:05:09,120 >> Watazamaji: [inaudible] kama si nil. 1151 01:05:09,120 --> 01:05:11,470 Hivyo ni katika orodha, sawa? 1152 01:05:11,470 --> 01:05:15,450 >> DAN Armendáriz: Kama kosa ni si haina kabisa, ili is-- hivyo nina kitabu. 1153 01:05:15,450 --> 01:05:18,060 Naam, hebu angalia, siwezi kitabu kwa haki hapa. 1154 01:05:18,060 --> 01:05:23,161 kosa ni hoja kuwa ni kuwa kupita kwa kazi hii bila majina. 1155 01:05:23,161 --> 01:05:24,410 Hii ni kazi bila majina. 1156 01:05:24,410 --> 01:05:25,480 Haina jina. 1157 01:05:25,480 --> 01:05:29,850 Lakini sisi ni kukubali hawa watatu hoja, data, majibu, na makosa. 1158 01:05:29,850 --> 01:05:33,590 Na ni kwenda na kurudi ni batili, hivyo siyo kwenda na kurudi kitu chochote. 1159 01:05:33,590 --> 01:05:37,910 Na hii ni yaliyomo ya kazi hiyo. 1160 01:05:37,910 --> 01:05:41,961 Na kisha sisi kupata ndani ya kwamba kazi kwa kila mmoja wa hoja hizi. 1161 01:05:41,961 --> 01:05:45,650 1162 01:05:45,650 --> 01:05:48,679 >> Hivyo ni kimbunga ziara ya lugha. 1163 01:05:48,679 --> 01:05:50,470 Lakini natumaini na hii, hopefully kama wewe kuchukua 1164 01:05:50,470 --> 01:05:54,490 Kuangalia baadhi ya tutorials maalum kwa iOS maendeleo na Swift, 1165 01:05:54,490 --> 01:05:57,481 hasa kama wewe kwenda Apple developer mtandao page-- 1166 01:05:57,481 --> 01:05:59,980 wana mengi ya mzuri tutorials kupata wewe kuanza. 1167 01:05:59,980 --> 01:06:05,010 Lakini pengine tu hii saa ya kuzungumza kuhusu syntax yenyewe ametoa 1168 01:06:05,010 --> 01:06:08,760 wewe kutosha ya kupata ilianza na kwamba. 1169 01:06:08,760 --> 01:06:12,950 >> Sisi baada ya yote ya chanzo hiki kificho kwenye tovuti semina 1170 01:06:12,950 --> 01:06:17,800 haraka iwezekanavyo, na pia slides hivyo kuwa rejea kwa ajili ya wale wote. 1171 01:06:17,800 --> 01:06:20,530 Lakini bahati nzuri na miradi yako. 1172 01:06:20,530 --> 01:06:23,640 Na kuwashukuru wote sana kwa kuja. 1173 01:06:23,640 --> 01:06:26,990 >> [Makofi] 1174 01:06:26,990 --> 01:06:28,026