1 00:00:00,000 --> 00:00:03,332 >> [MIZIK jwe] 2 00:00:03,332 --> 00:00:06,200 3 00:00:06,200 --> 00:00:09,590 >> DAN AMRMENDARIZ: Tout moun, Byenveni nan seminè a CS50, 4 00:00:09,590 --> 00:00:11,690 iOS Devlopman App ak Swift. 5 00:00:11,690 --> 00:00:15,690 Mwen se Dann Armendariz, ak mwen se yon presèpteur nan syans òdinatè isit la nan Harvard. 6 00:00:15,690 --> 00:00:21,510 >> Apre sa, lè a pwochen a pwal yon toune gwo toubouyon nan kòm anpil bagay 7 00:00:21,510 --> 00:00:25,160 sou sijè sa a kòm nou ka anfòm. 8 00:00:25,160 --> 00:00:29,170 Mwen ap afiche tout nan kòd la sous ke ou pral wè jodi a sou entènèt. 9 00:00:29,170 --> 00:00:31,990 Nou pa ka kapab aktyèlman ale sou tout bagay 10 00:00:31,990 --> 00:00:34,810 ke mwen se ke mwen se ki montre ou nan tan soufrans sa a. 11 00:00:34,810 --> 00:00:37,580 Men, nan omwen èspere ke nan kòmantè sa yo nan kòd la sous, 12 00:00:37,580 --> 00:00:40,830 ou pral kapab pou yo eseye konnen sa ki egzakteman k ap pase pou bagay sa yo 13 00:00:40,830 --> 00:00:42,950 ke nou pa byen ale nan. 14 00:00:42,950 --> 00:00:46,970 >> An jeneral, estrikti a nan pale jodi a yo pral jan sa a. 15 00:00:46,970 --> 00:00:52,820 Nou pral kòmanse soti fè kèk debaz sentaks ak lang nan Swift, 16 00:00:52,820 --> 00:00:56,290 pral antre nan kèk nan ki pi avanse nan sentaks nan lang lan Swift. 17 00:00:56,290 --> 00:00:59,560 Paske lang nan se reyèlman modèn ak li 18 00:00:59,560 --> 00:01:02,110 gen yon anpil nan wo nivo karakteristik, bagay sa yo ke nou pa gen 19 00:01:02,110 --> 00:01:06,600 wè nan C nan tout CS50, oswa menm kèk lòt lang yo 20 00:01:06,600 --> 00:01:09,310 ke nou te te kòmanse lè l sèvi avèk nan CS50 tankou PHP, 21 00:01:09,310 --> 00:01:12,670 se konsa mwen pral jwenn gen pou yo eseye prezante tou gen kèk sijè ki 22 00:01:12,670 --> 00:01:18,580 yo ki gen rapò nan pi wo nivo lang ke ou pa ka wè nan pwofondè nan CS50, 23 00:01:18,580 --> 00:01:21,380 men ou pral wè nan pita klas syans òdinatè. 24 00:01:21,380 --> 00:01:25,290 Se konsa, li k ap pase yo dwe yon byen chaje èdtan. 25 00:01:25,290 --> 00:01:28,897 Apre sa, tanpri, ezite kite m ' konnen si ou gen nenpòt kesyon. 26 00:01:28,897 --> 00:01:30,730 Se konsa, si w ap enterese nan fè devlopman 27 00:01:30,730 --> 00:01:34,442 ak Swift, oswa reyèlman nenpòt iOS devlopman app, 28 00:01:34,442 --> 00:01:35,900 gen yon koup nan kondisyon. 29 00:01:35,900 --> 00:01:39,940 Premye a tout, ou gen lè l sèvi avèk yon Mac, kouri nan egzanp yo 30 00:01:39,940 --> 00:01:43,880 ke nou ap ale nan dwe lè l sèvi avèk jodi a, yon relativman nouvo vèsyon an OS 31 00:01:43,880 --> 00:01:46,580 X. Nan ka sa a, mwen kouri X 10.5. 32 00:01:46,580 --> 00:01:48,600 Ou ka kouri 10.11 si ou vle. 33 00:01:48,600 --> 00:01:52,430 Men, tout bagay ki w ap ale nan wè se ki enplike Xcode 7 ak pita, 34 00:01:52,430 --> 00:01:56,271 ki te gen vèsyon an dènye a Swift, ki se Swift 2.0. 35 00:01:56,271 --> 00:01:58,270 Sa a se aktyèlman yon trè enpòtan distenksyon. 36 00:01:58,270 --> 00:02:01,510 Yon anpil nan sentaks la gen chanje bèl anpil 37 00:02:01,510 --> 00:02:05,890 nan kèk ka soti nan Swift 1.0, ki te lage ane pase a, 38 00:02:05,890 --> 00:02:08,514 Swift 2.0, ki jis te soti sa a tonbe. 39 00:02:08,514 --> 00:02:09,889 Se konsa, nou ap ale nan montre Swift 2.0. 40 00:02:09,889 --> 00:02:13,020 Yon anpil nan bagay sa yo ke ou rechèch pou sou entènèt 41 00:02:13,020 --> 00:02:18,040 lè w ap ap eseye jwenn plis enfòmasyon sou yon varyete de bagay sa yo, 42 00:02:18,040 --> 00:02:20,710 ou ka vle klèman rechèch pou Swift 2 43 00:02:20,710 --> 00:02:24,950 olye ke jis plenn fin vye granmoun Swift fè asire w ke ou jwenn sentaks ki kòrèk la. 44 00:02:24,950 --> 00:02:26,920 >> An reyalite, sa a se jeneralman vre. 45 00:02:26,920 --> 00:02:31,210 Genyen yon kantite lajan rapid nan devlopman pase nan lang la Swift 46 00:02:31,210 --> 00:02:35,110 depi tout tan Apple lage li, mwen panse ke ki sa, li te gen yon ti kras plis pase yon ane 47 00:02:35,110 --> 00:02:36,370 kounye a. 48 00:02:36,370 --> 00:02:39,080 Apre sa, bagay yo chanje dramatikman nan tan sa a. 49 00:02:39,080 --> 00:02:42,160 Se konsa, Ou pa bezwen fwistre.Tanpri si, lè w ap kap alantou 50 00:02:42,160 --> 00:02:48,310 pou sijè sou Swift oswa ki jan yo akonpli yon bagay lè l sèvi avèk kèk kòd egzanp 51 00:02:48,310 --> 00:02:51,210 oswa yon bagay ke li pa fè sa aktyèlman ap travay sou Swift 2.0. 52 00:02:51,210 --> 00:02:53,790 Asire ou ke ou ap chèche espesyalman pou ke vèsyon 53 00:02:53,790 --> 00:02:58,690 eseye pou misyon pou minimize efè nan diferan vèsyon ak kalite sa yo ki nan bagay sa yo. 54 00:02:58,690 --> 00:03:02,470 >> M ap eseye pwen soti jis kèk bagay ki diferan nan vèsyon ki pi ansyen. 55 00:03:02,470 --> 00:03:03,970 Men, li la yon bagay yo gade soti pou. 56 00:03:03,970 --> 00:03:06,770 Sa a pwobableman pral fè youn nan pi gwo tèt fè mal yo 57 00:03:06,770 --> 00:03:11,010 ke ou pral gen ak Swift se pou nou jwenn Kòd egzanp se sa ki pi gran, menm jis 58 00:03:11,010 --> 00:03:14,050 pa yon kèk mwa, ap eseye sèvi ak li nan pwojè modèn plis ou yo. 59 00:03:14,050 --> 00:03:15,430 Epi, se jis tou senpleman pa travay. 60 00:03:15,430 --> 00:03:18,530 W ap vin erè du, sentaks erè, tout kalite bagay fou. 61 00:03:18,530 --> 00:03:21,580 Se konsa, jis pran pasyans ak sa, ak ou pral èspere ke 62 00:03:21,580 --> 00:03:24,200 gen yon eksperyans trè bèl ak Swift an jeneral. 63 00:03:24,200 --> 00:03:28,430 >> Koulye a, ou kapab aktyèlman join-- e mwen espere ke nou aktyèlman toujou gen sa a sa a year-- 64 00:03:28,430 --> 00:03:30,910 CS 50 nan Apple app ekip devlopman, ki 65 00:03:30,910 --> 00:03:34,680 pral pèmèt ou enstale nenpòt apps kote ou kreye sou iOS aparèy ou yo. 66 00:03:34,680 --> 00:03:39,190 Se konsa, pran yon gade nan URL sa a si w enterese nan fè sa. 67 00:03:39,190 --> 00:03:41,450 >> Se konsa, jis yon koup nan bagay sou Swift tèt li. 68 00:03:41,450 --> 00:03:43,580 Li se yon lang konpile. 69 00:03:43,580 --> 00:03:45,870 Men, ou pral wè ke gen kèk nan karakteristik yo ki ke nou itilize 70 00:03:45,870 --> 00:03:50,650 pèmèt li yo dwe itilize tou nan yon ti jan tankou yon entèprete fason kòm byen. 71 00:03:50,650 --> 00:03:56,350 >> Yon anpil nan sentaks la prete soti nan C. Li nan ki baze ak ekri nan C. 72 00:03:56,350 --> 00:04:00,400 Se konsa, nou pral wè ke gen yon anpil nan takeaways 73 00:04:00,400 --> 00:04:04,450 soti nan konesans ki egziste deja ou soti nan C ke nou kapab pò Swift. 74 00:04:04,450 --> 00:04:07,290 >> Men, gen bagay sa yo ke fè li trè diferan de C. 75 00:04:07,290 --> 00:04:08,860 Li se trè fòtman tape. 76 00:04:08,860 --> 00:04:10,380 Genyen jesyon memwa otomatik yo. 77 00:04:10,380 --> 00:04:13,170 Ou pa ap ale nan gen yo itilize malok oswa gratis nenpòt kote. 78 00:04:13,170 --> 00:04:15,110 Li nan ki fèt pou générales. 79 00:04:15,110 --> 00:04:19,480 Se konsa, nan lòt mo, ou ka sèvi ak li nan tout kalite kontèks, ki soti nan Apple Watch 80 00:04:19,480 --> 00:04:26,290 nan iPhone tout wout la jiska OS X, ak menm kèk serveurs, menm kèk scripting. 81 00:04:26,290 --> 00:04:28,400 Men, nou pral wè ke nan sipò pou scripting 82 00:04:28,400 --> 00:04:31,360 se pa byen gen anyen ankò kòm li se nan lòt lang yo. 83 00:04:31,360 --> 00:04:34,930 Se konsa, gen plis chans ou pral lè l sèvi avèk sa a sèlman pou devlopman 84 00:04:34,930 --> 00:04:37,060 sou Mac ou a oswa iPhone ou. 85 00:04:37,060 --> 00:04:40,150 >> Apre sa, li gen yon anpil nan karakteristik modèn. 86 00:04:40,150 --> 00:04:43,380 Ak yon anpil nan bagay sa yo se bagay ki nou ap ale nan eseye adrese jodi a, 87 00:04:43,380 --> 00:04:47,590 men tou, sijè nou an ki franchman, nou ka konsakre kou tout antye. 88 00:04:47,590 --> 00:04:50,140 An reyalite, CS 51, ki se ofri pwochen semès, 89 00:04:50,140 --> 00:04:53,990 konsantre yon anpil sou sijè sa yo ke yo dekri anba a. 90 00:04:53,990 --> 00:04:56,781 Se konsa, ou ka pase yon semès antye konprann bagay sa yo. 91 00:04:56,781 --> 00:04:58,530 Men, nou ap ale nan eseye yo ka resevwa nan yo 92 00:04:58,530 --> 00:05:00,800 omwen ase ke ou ka konprann sa ki nan 93 00:05:00,800 --> 00:05:03,700 ale sou lè ou gade Yon pwogram Swift 94 00:05:03,700 --> 00:05:07,310 epi yo dwe kapab Hack fason ou atravè li pou pwojè a final la. 95 00:05:07,310 --> 00:05:10,780 >> Koulye a, youn nan pi bon fason yo ke ou ka jwenn plis enfòmasyon sou sa a 96 00:05:10,780 --> 00:05:14,700 se franchman jis nan Apple la bay dokiman pou Swift. 97 00:05:14,700 --> 00:05:16,930 Genyen yon anpil nan APIs ki disponib yo. 98 00:05:16,930 --> 00:05:21,170 Lè sa a se yon baz bon pou ou lakay yo gade pou li a, bagay sa yo espesifik ke ou 99 00:05:21,170 --> 00:05:23,020 vle fè ak yon API ki enplike iOS. 100 00:05:23,020 --> 00:05:26,350 Si ou vle sèvi ak kamera a pou egzanp, ou ka kòmanse kap isit la, 101 00:05:26,350 --> 00:05:32,540 epi tou li sèvi ak Google ak Stack Debòde jan ou ta nòmalman. 102 00:05:32,540 --> 00:05:36,670 >> Nenpòt kesyon sou sa a anvan nou so dwa nan? 103 00:05:36,670 --> 00:05:37,880 Tout dwa. 104 00:05:37,880 --> 00:05:38,700 Se pou yo deplase sou. 105 00:05:38,700 --> 00:05:42,620 >> Se konsa, premye, mwen gen yon Nimewo nan dosye egzanp. 106 00:05:42,620 --> 00:05:46,040 Apre sa, mwen pral pou yo eseye etap nan yo relativman byen vit. 107 00:05:46,040 --> 00:05:49,190 Sa a se dosye a Alo Mondyal pou Swift. 108 00:05:49,190 --> 00:05:51,050 Li trè senp. 109 00:05:51,050 --> 00:05:54,360 Genyen fason pi plis kòmantè pase gen Kòd vrè. 110 00:05:54,360 --> 00:05:57,100 Avi kòd la aktyèl se nan pati anba a anpil sou liy 14. 111 00:05:57,100 --> 00:05:57,980 Li di enprime. 112 00:05:57,980 --> 00:05:59,820 Lè sa a, li nan yon apèl fonksyon. 113 00:05:59,820 --> 00:06:03,010 Nou ap pase nan li yon fisèl rele Bonjou CS50. 114 00:06:03,010 --> 00:06:04,750 Remake gen nan pa gen virgules. 115 00:06:04,750 --> 00:06:07,010 Remake gen nan pa gen int prensipal la. 116 00:06:07,010 --> 00:06:10,392 Genyen pa youn nan la cruft ke nou te gen ak C. 117 00:06:10,392 --> 00:06:15,020 Lè nou ap itilize Swift nan fason sa a, ki se jis ekri nan yon dosye tèks 118 00:06:15,020 --> 00:06:18,340 ak ki estoke sou òdinatè mwen an, lè sa a Mwen kapab konpile li epi li kouri li. 119 00:06:18,340 --> 00:06:20,920 >> Remake isit la mwen se pa lè l sèvi avèk IDE nan CS50. 120 00:06:20,920 --> 00:06:24,460 Sa a sipoze ke mwen menm ki kouri ak ke mwen se sou OS X, 121 00:06:24,460 --> 00:06:27,870 e ke mwen te deja enstale Xcode sou machin sa a yo nan lòd pou sa a 122 00:06:27,870 --> 00:06:29,080 ki aktyèlman fonksyon. 123 00:06:29,080 --> 00:06:33,349 Men, sa a se jis yon dosye tèks nòmal ke nou ka Lè sa a konpile ak edit. 124 00:06:33,349 --> 00:06:34,890 Se konsa, kite a wè ki jan sa a aktyèlman ap travay. 125 00:06:34,890 --> 00:06:37,430 E si mwen vle konpile li? 126 00:06:37,430 --> 00:06:40,450 swiftc 1.swift. 127 00:06:40,450 --> 00:06:42,960 Apre yon ti moman oswa de, li pral wè ke nou genyen kounye a 128 00:06:42,960 --> 00:06:45,360 konpile sa a nan yon dosye rele 1. 129 00:06:45,360 --> 00:06:51,090 Epi, koulye a nou te enprime CS50 nou an, aplikasyon Alo mond nou an olye. 130 00:06:51,090 --> 00:06:54,690 >> Avi yon lòt bagay tankou byen se ke pa default, 131 00:06:54,690 --> 00:07:00,090 nou pa t 'gen yo opinyon yon / n nan enprime yon liy nouvo. 132 00:07:00,090 --> 00:07:05,315 Pa default, fonksyon an ekri an lèt detache nan Swift pral enprime yon liy nouvo pou ou. 133 00:07:05,315 --> 00:07:09,284 Ou ka pase yon lòt si ou vle paramèt di li pa fè sa. 134 00:07:09,284 --> 00:07:10,950 Men, Google Pou plis enfòmasyon sou sa. 135 00:07:10,950 --> 00:07:13,450 Pa default, li pral fè liy nan ekri an lèt detache. 136 00:07:13,450 --> 00:07:16,420 >> Tout dwa, se konsa kite a deplase sou Lè sa a, nan kèk lòt bagay. 137 00:07:16,420 --> 00:07:18,620 Se konsa, ki jan nou ka aktyèlman defini varyab? 138 00:07:18,620 --> 00:07:21,960 Nou ka fè sa a, se lè l sèvi avèk youn nan de metòd. 139 00:07:21,960 --> 00:07:26,122 Ak yon sèl la ke mwen vle di ou sou premye se definisyon kite sa a. 140 00:07:26,122 --> 00:07:27,830 Lè sa a se enpòtan paske efektivman 141 00:07:27,830 --> 00:07:30,240 sa n ap fè se defini yon konstan. 142 00:07:30,240 --> 00:07:34,010 Nou pral kreye yon varyab, ou pito yon rele konstan, 143 00:07:34,010 --> 00:07:38,200 bay li kèk nan data-- ka sa a, fisèl la lavil Dann. 144 00:07:38,200 --> 00:07:40,630 Men, lè l sèvi avèk kite sa mo kle, nou ap di 145 00:07:40,630 --> 00:07:43,860 ke sa a variable-- oswa ankò constant-- rele 146 00:07:43,860 --> 00:07:46,220 Non pa janm yo pral chanje. 147 00:07:46,220 --> 00:07:50,120 Li k ap pase yo dwe nan tout imuiabl dire a nan pwogram sa a 148 00:07:50,120 --> 00:07:53,100 oswa nan tout nan dire nan kontèks la 149 00:07:53,100 --> 00:07:55,390 ki varyab sa ki disponib. 150 00:07:55,390 --> 00:08:00,096 >> Sa a se vrèman enpòtan ke lè ou gen kèk done ki pa 151 00:08:00,096 --> 00:08:02,970 pral chanje nan pwogram ou an, epi ou pral wè yon varyete de egzanp 152 00:08:02,970 --> 00:08:06,790 sou lè nou vle sèvi ak kite kont lòt sentaks la, 153 00:08:06,790 --> 00:08:11,040 li enpòtan ke ou itilize se pou kèlkeswa lè sa posib paske sa a notifye 154 00:08:11,040 --> 00:08:13,740 lang nan ke li se pa ale nan yo chanje yo, 155 00:08:13,740 --> 00:08:16,590 epi li ka aktyèlman fè yon anpil nan optimizasyon 156 00:08:16,590 --> 00:08:19,560 amelyore vitès la ak sekirite a nan pwogram ou an. 157 00:08:19,560 --> 00:08:24,480 Ak nan sekirite, pa vle di se pou mwen li aksidan ak erè fou 158 00:08:24,480 --> 00:08:27,910 ke nou ta ka abitye wè nan C. 159 00:08:27,910 --> 00:08:32,460 >> Lè sa a, nou ka sèvi ak fisèl entèpolasyon ankapsulasyon sa a ki nan yon fisèl. 160 00:08:32,460 --> 00:08:35,200 Se konsa, nou ka wè nan sa a liy enprime, enprime hello, 161 00:08:35,200 --> 00:08:38,950 Lè sa a, lè l sèvi avèk antislach ak paran louvri, ak Lè sa a non an nan varyab m 'yo, 162 00:08:38,950 --> 00:08:41,809 nan sa a konstan ka, fèmen parantèz yo. 163 00:08:41,809 --> 00:08:46,400 Mwen Lè sa a, esansyèlman mete nan sa a varyab rele non sa a 164 00:08:46,400 --> 00:08:50,240 andedan nan fisèl la ak Lè sa a enprime rezilta a la. 165 00:08:50,240 --> 00:08:54,070 >> Genyen yon lòt chanjman nan sa a ranpli ki se ke mwen gen, nan tèt la anpil, 166 00:08:54,070 --> 00:08:57,340 mete nan yon liy kaz, ki fondamantalman jis presize 167 00:08:57,340 --> 00:09:00,180 ke mwen vle sèvi ak nan Swift entèprèt, ki 168 00:09:00,180 --> 00:09:04,190 vle di ke mwen pa gen okenn ankò gen konpile pwogram sa a an patikilye. 169 00:09:04,190 --> 00:09:06,567 Mwen ka jis kouri li tankou script pwòp li yo. 170 00:09:06,567 --> 00:09:09,400 Men, sa a se, nan ka sa a, dèyè sèn nan ke yo te konpile ak Lè sa a 171 00:09:09,400 --> 00:09:10,030 ke yo te kouri. 172 00:09:10,030 --> 00:09:13,540 Se jis envizib yo ban nou. 173 00:09:13,540 --> 00:09:15,880 >> Tout dwa, se konsa kite a deplase sou. 174 00:09:15,880 --> 00:09:19,650 Se konsa, gen nan yon ti jan nan artifices ki jis ki te pase anvan. 175 00:09:19,650 --> 00:09:23,230 Mwen te montre nou se mwen te kapab defini yon konstan. 176 00:09:23,230 --> 00:09:25,490 Apre sa, mwen te kapab bay kèk done fè li. 177 00:09:25,490 --> 00:09:29,240 Men, nan ka sa a, remake ke mwen pa t ' aktyèlman presize ki kalite done 178 00:09:29,240 --> 00:09:29,820 ke li se. 179 00:09:29,820 --> 00:09:32,780 Epi sa a, paske nan du, Swift kapab 180 00:09:32,780 --> 00:09:36,910 dégager ki kalite done jis ki baze sou done a ke mwen mete nan li. 181 00:09:36,910 --> 00:09:41,760 Paske li konnen ke pa evalye sa a varyab dwa isit la, sa a dwat done 182 00:09:41,760 --> 00:09:43,370 isit la, li konnen ke li se yon fisèl. 183 00:09:43,370 --> 00:09:48,690 Se konsa, non sa a Se poutèt sa se konstan pral gen yon fisèl kòm byen. 184 00:09:48,690 --> 00:09:52,730 >> Men, nou kapab tou gen pou eksplisit sou kalite a sa a, se 185 00:09:52,730 --> 00:09:55,790 nou pral pou itilize pou konstan oswa varyab 186 00:09:55,790 --> 00:10:01,590 lè l sèvi avèk sentaks sa a instead-- kite Non kolon fisèl egal 187 00:10:01,590 --> 00:10:05,530 Dann, ki nan ka sa a vle di nou ap ale nan defini yon rele konstan. 188 00:10:05,530 --> 00:10:07,150 Li k ap pase yo dwe nan kalite fisèl. 189 00:10:07,150 --> 00:10:10,550 Epi se valè a pral fè lavil Dann. 190 00:10:10,550 --> 00:10:12,550 Koulye a, nan lòt fason ki nou ka kreye variables-- 191 00:10:12,550 --> 00:10:15,549 ak sa yo, se varyab mutabl, ki vle di ke nou se, an reyalite, ale 192 00:10:15,549 --> 00:10:19,670 chanje sa yo nenpòt moman nan dire a nan kontèks la 193 00:10:19,670 --> 00:10:23,890 ki varyab sa se defined-- nou itilize mo kle a var olye pou yo kite. 194 00:10:23,890 --> 00:10:27,400 Men, ankò, pa default, sof si ou konnen ke ou bezwen manipile ki done, 195 00:10:27,400 --> 00:10:30,510 eseye sèvi ak kite pou pèfòmans amelyorasyon. 196 00:10:30,510 --> 00:10:33,740 >> Nan ka sa a, mwen kapab Lè sa a, presize ki kalite done 197 00:10:33,740 --> 00:10:37,650 ki nou espere yo dwe andedan nan varyab sa a nouvo rele mete etikèt sou. 198 00:10:37,650 --> 00:10:38,800 Li k ap pase yo dwe yon fisèl. 199 00:10:38,800 --> 00:10:43,030 Epi nou ap ale nan Lè sa a, anchene de strings ansanm, fisèl la hello, 200 00:10:43,030 --> 00:10:48,070 ak fisèl la reprezante pa la varyab, ou pito non an konstan. 201 00:10:48,070 --> 00:10:50,660 >> Se konsa, sa se bèl paske sa a se yon ti jan tankou nan PHP ke nou 202 00:10:50,660 --> 00:10:52,250 gen trè fasil Anchènman fisèl. 203 00:10:52,250 --> 00:10:56,350 Nou pa bezwen otomatikman itilize nenpòt ki sòt nan jesyon memwa 204 00:10:56,350 --> 00:11:00,580 ogmante gwosè a ak fè nenpòt ki sòt de bagay sa yo komik la. 205 00:11:00,580 --> 00:11:05,040 Sa a ap travay kòm nou ta aktyèlman atann. 206 00:11:05,040 --> 00:11:09,370 >> Tout dwa, nenpòt kesyon sou sa a? 207 00:11:09,370 --> 00:11:12,520 >> Koulye a, lòt rezon ki fè nou bezwen ou gen kapasite nan 208 00:11:12,520 --> 00:11:15,490 pou kapab defini ki sa di ki kalite varyab telefòn nan 209 00:11:15,490 --> 00:11:18,170 se paske pafwa nou pa fè sa vle inisyalize varyab 210 00:11:18,170 --> 00:11:21,080 ak kèk done nan la pwen nan definisyon. 211 00:11:21,080 --> 00:11:23,500 Se konsa, nan ka sa a, se pou yo di ke mwen vle kòmanse Anthrax 212 00:11:23,500 --> 00:11:25,040 kèk klas nan yon liv klas. 213 00:11:25,040 --> 00:11:27,530 Oke mwen konnen ke youn nan la varyab ke mwen vle yo dwe 214 00:11:27,530 --> 00:11:30,280 a pwal yon nòt mutabl. 215 00:11:30,280 --> 00:11:33,010 E nou konnen tou ke nou vle li nan dwe yon nonb antye relatif. 216 00:11:33,010 --> 00:11:36,030 Men, petèt nou pa fè sa ankò gen sa klas yo ki disponib. 217 00:11:36,030 --> 00:11:39,570 >> Nan Swift, ou gen defini kalite a nan done 218 00:11:39,570 --> 00:11:44,000 ki asosye avèk yon varyab oswa yon kite konstan 219 00:11:44,000 --> 00:11:47,840 anvan ou kapab aktyèlman sèvi ak sa varyab. 220 00:11:47,840 --> 00:11:51,170 Paske li se fòtman tape, ou gen yo asosye yon kalite 221 00:11:51,170 --> 00:11:52,890 ak varyab sa yo. 222 00:11:52,890 --> 00:11:56,120 >> Se konsa, nan ka sa a, si mwen te pa byen inisyalizèd premye a ak kèk valè, 223 00:11:56,120 --> 00:12:00,520 lè sa a mwen bezwen di sa Swift Mwen atann mwen kalite nan done yo dwe. 224 00:12:00,520 --> 00:12:02,650 Epi, se k ap pase yo rete ki menm kalite done 225 00:12:02,650 --> 00:12:05,780 nan tout istwa a nan pwogram sa a. 226 00:12:05,780 --> 00:12:10,050 >> Koulye a, ou ta ka dwe tante le pli vit ke Mwen te kreye sa a varyab klas 227 00:12:10,050 --> 00:12:13,530 ak bay li yon nonb antye relatif nan 100, kounye a si mwen 228 00:12:13,530 --> 00:12:18,540 vle pou yo eseye anchene yon afè ak sa nonb antye relatif, 229 00:12:18,540 --> 00:12:21,610 ta ka vin tante l 'toujou itilize ki operatè fisèl Anchènman 230 00:12:21,610 --> 00:12:24,500 tankou nou te fè jis yon liy kèk anvan. 231 00:12:24,500 --> 00:12:26,460 Men, malerezman, sa a pral aktyèlman pa 232 00:12:26,460 --> 00:12:29,270 travay, paske ou se esansyèlman fè 233 00:12:29,270 --> 00:12:32,380 yon operasyon sou de kalite diferan. 234 00:12:32,380 --> 00:12:36,856 >> Koulye a, sa a se trè diferan de lòt lang tankou PHP ki yo se reyèlman 235 00:12:36,856 --> 00:12:38,480 loosey goosey ak sòt yo nan kalite. 236 00:12:38,480 --> 00:12:40,030 Yo ap jis tankou, yeah, tou sa, mwen pa pran swen. 237 00:12:40,030 --> 00:12:42,710 Jis ban m 'yon kalite, ak petèt mwen pral fè sa ki dwat. 238 00:12:42,710 --> 00:12:46,060 >> Nan ka sa a, se Swift trè strik sou kalite mouvman yo 239 00:12:46,060 --> 00:12:47,350 ke ou ap fè fas ak. 240 00:12:47,350 --> 00:12:50,700 Operatè somasyon sa a oswa operatè Anchènman 241 00:12:50,700 --> 00:12:54,400 gen esansyèlman se yon koup la diferan opsyon posib. 242 00:12:54,400 --> 00:12:56,970 Ou ka fè somasyon ak nonm antye relatif, oswa ou 243 00:12:56,970 --> 00:13:00,870 kapab fè fisèl Anchènman, ak petèt kèk lòt bagay yo tou. 244 00:13:00,870 --> 00:13:05,550 Men, si ke operatè pa rekonèt ki sa ki sou chak bò nan li, 245 00:13:05,550 --> 00:13:10,452 ou pito konbinezon an nan tout sa yo de kalite, se pa sa ki li nan tann, 246 00:13:10,452 --> 00:13:11,910 lè sa a li k ap pase yo lakòz yon echèk. 247 00:13:11,910 --> 00:13:16,690 >> Se konsa, nan ka sa a, ki sa sa vle di gen yon fisèl plis yon nonb antye relatif? 248 00:13:16,690 --> 00:13:18,880 Oke nan yon kontèks sa a, nou pwobableman vle 249 00:13:18,880 --> 00:13:21,990 fè yon operasyon fisèl Anchènman. 250 00:13:21,990 --> 00:13:26,420 Men, nan kou òdinatè a pa gen ki sòt de kontèks. 251 00:13:26,420 --> 00:13:29,950 Se konsa, nou bezwen bay ki plis enfòmasyon 252 00:13:29,950 --> 00:13:32,390 kite li konnen ki sa li se ke nou vle fè. 253 00:13:32,390 --> 00:13:36,860 >> Se konsa, nan lòt mo, lefèt ki se fòtman tape Swift 254 00:13:36,860 --> 00:13:39,520 vle di ou dwe fè yon ti kras nan plis travay 255 00:13:39,520 --> 00:13:42,100 jwenn li yo opere nan fason ke ou ta vle. 256 00:13:42,100 --> 00:13:43,710 Men, kòm yon rezilta, li se pi an sekirite. 257 00:13:43,710 --> 00:13:46,290 Apre sa, yon fwa ou gen pran nan kont sa yo kalite, 258 00:13:46,290 --> 00:13:49,300 bagay sa yo jis kòmanse franchman nan travay trè byen. 259 00:13:49,300 --> 00:13:52,520 >> Se konsa, nan ka sa a, nou Lè sa a ta fè fisèl Anchènman 260 00:13:52,520 --> 00:13:56,040 pa klèman Distribisyon nonb antye relatif nan yon fisèl 261 00:13:56,040 --> 00:13:58,490 pa vlope l 'nan sa a kapital S fisèl fonksyon, 262 00:13:58,490 --> 00:14:03,510 Lè sa a, lè l sèvi avèk Anchènman ak nan fisèl operatè li modifye varyab etikèt nou an, 263 00:14:03,510 --> 00:14:06,280 ak Lè sa a enprime li soti. 264 00:14:06,280 --> 00:14:08,420 >> Se konsa, lwen, se konsa sa ki bon? 265 00:14:08,420 --> 00:14:12,020 Tout dwa, se pou yo deplase sou. 266 00:14:12,020 --> 00:14:16,300 >> Koulye a, gen yon varyete de done kalite ke nou ka itilize nan Swift. 267 00:14:16,300 --> 00:14:21,620 Kòm ou te vin tounen abitye, nou kapab kreye yon etalaj mutabl. 268 00:14:21,620 --> 00:14:26,140 Epi sa etalaj ka sèlman gen yon kalite sèl. 269 00:14:26,140 --> 00:14:30,360 >> Se konsa, nan ka sa a, nou ap ale nan kreye yon ranje mutabl nan nonm antye relatif, ki 270 00:14:30,360 --> 00:14:34,800 nou pral rele klas, epi nou yo pral kapab nan magazen ki nan bracket kare sa a 271 00:14:34,800 --> 00:14:38,650 fòma menm jan ou te grandi abitye yo bay nan yon varyete de lòt lang. 272 00:14:38,650 --> 00:14:41,150 Men, remake ke isit la nou ap defini yon koup nan bagay sa yo. 273 00:14:41,150 --> 00:14:45,350 klas se yon variable-- mutabl nou pa itilize mo kle a kite. 274 00:14:45,350 --> 00:14:49,620 Se konsa, ki vle di nou ka Lè sa a modifye sa ki nan sa a etalaj. 275 00:14:49,620 --> 00:14:53,420 Li se nan kalite Array Int, epi nou ka di ke 276 00:14:53,420 --> 00:14:56,260 ki baze sou parantèz kare sa yo isit la. 277 00:14:56,260 --> 00:14:58,930 >> Koulye a, youn nan bagay ki bèl sou sa a se ke nou 278 00:14:58,930 --> 00:15:02,310 gen aksè a yon anpil nan plis enfòmasyon 279 00:15:02,310 --> 00:15:07,110 sou etalaj la jis lè l sèvi avèk kèk notasyon dot senp. 280 00:15:07,110 --> 00:15:10,500 Se konsa, pou egzanp, grades.count bay yo ban nou 281 00:15:10,500 --> 00:15:14,820 Nimewo a nan atik ki egziste nan ki etalaj, ki nou ka Lè sa a, jwenn aksè nan bèl 282 00:15:14,820 --> 00:15:19,090 fasil tou senpleman lè l sèvi avèk ki notasyon dot. 283 00:15:19,090 --> 00:15:21,830 >> Si ou vle ajoute plis atik yo etalaj sa a, 284 00:15:21,830 --> 00:15:27,220 ou pa kapab fè style la PHP kote ou jis klèman defini, 285 00:15:27,220 --> 00:15:30,910 Yon endèks bay yo, kèk valè ke ou vle insert. 286 00:15:30,910 --> 00:15:37,210 Olye de sa, sèvi ak ajoutra nan metòd an kalite a etalaj 287 00:15:37,210 --> 00:15:40,920 kole ki atik, 95, nan lis sa a. 288 00:15:40,920 --> 00:15:45,990 >> Se konsa, kounye etalaj sa a gen sa ki annapre yo contents-- 100, 0, 90, 85. 289 00:15:45,990 --> 00:15:49,270 Epi, koulye a nou te fen liv 95 ak sa yo ki kòm byen. 290 00:15:49,270 --> 00:15:51,830 >> Gen lòt fason nou ka kole bagay sa yo. 291 00:15:51,830 --> 00:15:55,030 Ou ka aktyèlman sèvi ak yon operatè somasyon, 292 00:15:55,030 --> 00:15:59,200 ki pral kapab entèprete kòm yon operasyon etalaj ajoutra. 293 00:15:59,200 --> 00:16:04,680 Epi ou ka Lè sa a, kole yon lòt etalaj, ki gen sa yo se 70 ak 80, 294 00:16:04,680 --> 00:16:05,560 ak sa yo ki etalaj. 295 00:16:05,560 --> 00:16:08,250 Se konsa, kounye a nou gen nan sa nan varyab sa a 296 00:16:08,250 --> 00:16:17,220 grades-- 100, 0, 90, 85, 95, 70, ak 80. 297 00:16:17,220 --> 00:16:21,850 Sa a se jis yon bèl ti kras Massachusetts Institute of Technology sik ki Swift bay yo ban nou. 298 00:16:21,850 --> 00:16:23,850 >> Se konsa, si nou vle sòm la klas, nou ap petèt 299 00:16:23,850 --> 00:16:27,340 ale nan vle repekte sou tout atik nan sa a riban. 300 00:16:27,340 --> 00:16:32,150 Epi nou gen, nan Swift, nosyon a nan yon pou riban menm jan ou ta atann. 301 00:16:32,150 --> 00:16:35,350 Men, wout la ke nou endike yon seri se yon ti kras diferan. 302 00:16:35,350 --> 00:16:37,790 Se konsa, nan ka sa a, nan sòm tout bagay, nou pral 303 00:16:37,790 --> 00:16:40,650 ale nan kreye yon tanporè varyab rele sòm nan lòd pou nou 304 00:16:40,650 --> 00:16:42,580 yo kenbe konte sa a. 305 00:16:42,580 --> 00:16:44,430 >> Apre sa, remake pou nou an bouk konstriksyon isit la. 306 00:16:44,430 --> 00:16:46,820 Pou endèks nan 0 .. 00:16:51,480 308 00:16:51,480 --> 00:16:57,390 Se konsa, konstriksyon sa a, 0 .. 00:17:01,860 ki di ke nou ap ale nan kreye yon seri de nonm antye relatif ki ant 0 moute 310 00:17:01,860 --> 00:17:05,750 men eksepte grades.count. 311 00:17:05,750 --> 00:17:09,577 Se konsa, sa a pral 0, 1, 2, 3, 4, 5, moute jouk sepandan anpil youn 312 00:17:09,577 --> 00:17:10,410 anvan grades.count. 313 00:17:10,410 --> 00:17:14,160 >> Se konsa, sa a se diferan pase ki jan nou ta anjeneral yo itilize pou pasan 314 00:17:14,160 --> 00:17:18,569 ki kote ou ta gen kèk endèks varyab, mete l 'egal a 0 nan premye, 315 00:17:18,569 --> 00:17:25,480 ak Lè sa a entegre sa jouk lè kèk valè mwens pase konte a nan atik 316 00:17:25,480 --> 00:17:27,140 nan ki etalaj. 317 00:17:27,140 --> 00:17:29,820 >> Se konsa, gen se yon modifikasyon nan sa a, aktyèlman, 318 00:17:29,820 --> 00:17:35,010 ki pèmèt nou trè fasil mete diferan kalite chenn. 319 00:17:35,010 --> 00:17:40,570 Si w chanje sa a ranje twa pwen, 0 ... grade.count, 320 00:17:40,570 --> 00:17:45,120 sa a reprezante seri a 0 grades.count enklizif, 321 00:17:45,120 --> 00:17:49,260 sa vle di ke nimewo se tou Lè sa a, ki enkli nan ki pòte. 322 00:17:49,260 --> 00:17:52,110 >> Men, sa a se yon bagay ki sou la men pou bagay sa yo egzak sa yo, 323 00:17:52,110 --> 00:17:54,590 lè nou gen fè itérations sou bouk 324 00:17:54,590 --> 00:17:59,630 paske moun endis yo zewo Catalogue, kòm nou te wè nan lòt lang 325 00:17:59,630 --> 00:18:02,360 kòm byen. 326 00:18:02,360 --> 00:18:05,210 Nenpòt kesyon sou sa a pou riban? 327 00:18:05,210 --> 00:18:10,660 >> Se konsa, gen nan definisyon enplisit nan varyab endèks sa a, 328 00:18:10,660 --> 00:18:14,350 valè ki gen kòmanse nan 0, epi kontinye nan chak iterasyon bouk 329 00:18:14,350 --> 00:18:17,950 ogmante pa 1 jiska yon pwen ki se egal a grades.count, 330 00:18:17,950 --> 00:18:20,380 nan ki pwen, riban an echou. 331 00:18:20,380 --> 00:18:23,730 >> Remake nan fisèl nou an entèpolasyon isit la, 332 00:18:23,730 --> 00:18:26,910 nou ka aktyèlman fè kèk senp manipilasyon ak sa ki valè. 333 00:18:26,910 --> 00:18:31,230 Se konsa, endèks plis 1 pral aktyèlman fè yon somasyon nan ke valè 334 00:18:31,230 --> 00:18:34,780 paske endèks se, nan ka sa a, yon nonb antye relatif. 335 00:18:34,780 --> 00:18:37,810 Apre sa, nan pwen sa a, li pral Lè sa a, dwe konvèti nan yon fisèl 336 00:18:37,810 --> 00:18:42,230 ak entèrpole nan fisèl sa a isit la, ak enprime soti kòm nou ta atann. . 337 00:18:42,230 --> 00:18:44,520 >> Epi bagay la bèl sou ranje yo isit la se 338 00:18:44,520 --> 00:18:50,730 ke nou yo tou kapab gen valè atiran ak anviwònman valè 339 00:18:50,730 --> 00:18:54,080 lè l sèvi avèk notasyon bracket kare a kòm nou te wè nan lòt lang tou. 340 00:18:54,080 --> 00:18:57,130 341 00:18:57,130 --> 00:19:01,030 >> Tout dwa, se konsa soti isit la, kounye a nou kalkile sòm nou an nan tout nan klas nou an. 342 00:19:01,030 --> 00:19:02,780 Koulye a, sòt de pwochen an etap ki lojik ta dwe 343 00:19:02,780 --> 00:19:07,580 fè yon operasyon divizyon jwenn soti mwayèn nan nan tout sa yo klas. 344 00:19:07,580 --> 00:19:10,150 Men, yon bagay enpòtan isit la k ap pase ki 345 00:19:10,150 --> 00:19:15,020 se ke sa a sòm se petèt yon nonb antye relatif. 346 00:19:15,020 --> 00:19:18,020 Men, nou bezwen fè kèk sòt de doub divizyon. 347 00:19:18,020 --> 00:19:20,600 Lè sa a a pwal trè enpòtan lè 348 00:19:20,600 --> 00:19:24,140 nou vle fè operasyon sa a, paske sa nou ap di 349 00:19:24,140 --> 00:19:28,430 se ke nou bezwen aktyèlman fè divizyon sou de double. 350 00:19:28,430 --> 00:19:31,370 Epi ankò, paske Swift se yon bagay ki fòtman tape, 351 00:19:31,370 --> 00:19:36,760 nou dwe klèman mete tout nan la atik yo double anvan nou aktyèlman 352 00:19:36,760 --> 00:19:38,300 fè ki operasyon. 353 00:19:38,300 --> 00:19:40,550 >> Se konsa, nan lòd pou nou pou n fè doub divizyon, 354 00:19:40,550 --> 00:19:43,730 li pa ase pou sèlman yon sèl nan atik sa yo dwe yon doub. 355 00:19:43,730 --> 00:19:46,400 Tou de nan yo gen yo dwe yon doub nan lòd pou rapid 356 00:19:46,400 --> 00:19:50,860 yo dwe asire ke sa a se sa nou vle fè. 357 00:19:50,860 --> 00:19:54,360 Se konsa, nou pral Lè sa a klèman kataloge sòm total la ki nou te calculée pi wo a 358 00:19:54,360 --> 00:19:58,970 ak konte a nan klas double, ak Lè sa a, fè ke operasyon ak magazen 359 00:19:58,970 --> 00:20:02,390 ki nan varyab nouvo sa a, ou pito konstan sa a nouvo rele mwayèn, 360 00:20:02,390 --> 00:20:06,810 ki pral gen sa kalite, ou ka imajine? 361 00:20:06,810 --> 00:20:07,587 Double, yeah. 362 00:20:07,587 --> 00:20:09,420 Se konsa, nan ka sa a, nou pa gen ou presize li 363 00:20:09,420 --> 00:20:13,450 paske li ka fè dedwi soti nan la operasyon ki kalite jou mwayèn done 364 00:20:13,450 --> 00:20:14,730 yo pral. 365 00:20:14,730 --> 00:20:19,025 Apre sa, Swift se jeneralman trè bon sou ke yo te kapab dégager kalite yo. 366 00:20:19,025 --> 00:20:22,116 367 00:20:22,116 --> 00:20:24,200 >> Ou vle wè sa a kouri, oswa mwen ka deplase sou? 368 00:20:24,200 --> 00:20:25,640 Mwen vle kenbe prale. 369 00:20:25,640 --> 00:20:28,130 Nenpòt kesyon sou nenpòt nan sa a? 370 00:20:28,130 --> 00:20:28,630 Great. 371 00:20:28,630 --> 00:20:31,160 372 00:20:31,160 --> 00:20:35,010 >> Koulye a, nou ap ale nan kòmanse pou li ale nan bon fonksyon yo defini stuff--, 373 00:20:35,010 --> 00:20:39,090 ak yon koup la lòt kalite ki inik nan Swift ke ou gen pa 374 00:20:39,090 --> 00:20:41,620 wè nan lòt lang moute jouk pwen sa a, 375 00:20:41,620 --> 00:20:46,290 men yo ap prezan nan lòt lang ke ou ta ka jwenn pita sou. 376 00:20:46,290 --> 00:20:48,210 Se konsa, premye si ou vle yo defini yon fonksyon, 377 00:20:48,210 --> 00:20:52,170 ou defini l 'ak pawòl Bondye a Funky fonksyon, ak Lè sa a non an fonksyon, 378 00:20:52,170 --> 00:20:56,710 ak Lè sa a nan parantèz, agiman yo ke ou vle ke fonksyon yo aksepte. 379 00:20:56,710 --> 00:21:00,280 Agiman yo dwe tou specify-- generally-- 380 00:21:00,280 --> 00:21:05,010 dwe presize tou ki kalite done ki yo ye, sof si yo ka dedwi. 381 00:21:05,010 --> 00:21:07,500 Epitou, n ap wè ke ti kras opozisyon nan jis yon ti kras. 382 00:21:07,500 --> 00:21:09,920 >> Se konsa, nan ka sa a nou gen yon fonksyon rele printGradeCount. 383 00:21:09,920 --> 00:21:12,840 Nou pwal aksepte yon variable-- ou pito nan ka sa a, 384 00:21:12,840 --> 00:21:14,450 yon constant-- rele Gradebook. 385 00:21:14,450 --> 00:21:18,517 Epi, se a pwal nan tape etalaj de nonm antye relatif. 386 00:21:18,517 --> 00:21:20,600 Koulye a, gen nan yon bagay sa ki nan vrèman enpòtan isit la 387 00:21:20,600 --> 00:21:21,849 ke mwen ta vle nou vin konprann. 388 00:21:21,849 --> 00:21:27,560 Sa se ke pa default, sa yo agiman ki entrain nan fonksyon sa a yo 389 00:21:27,560 --> 00:21:34,380 defini ak yon mo kle kite enplisit, ki vle di ke mwen pa ka modifye sa a 390 00:21:34,380 --> 00:21:39,850 Gradebook varyab isit la. 391 00:21:39,850 --> 00:21:43,360 Ak ki sòt de fè sans, paske w ap pase done nan. 392 00:21:43,360 --> 00:21:45,860 Epi ou petèt pa vle li yo dwe chanje nan anba ou. 393 00:21:45,860 --> 00:21:50,800 Li posib yo klèman mansyone ke sa a se yon varyab pa mete 394 00:21:50,800 --> 00:21:52,070 mo kle a var isit la. 395 00:21:52,070 --> 00:21:56,832 Men, sa a se yon gotcha ke nou te moun ki te fè remake nan tan lontan an 396 00:21:56,832 --> 00:21:59,790 se yo ke yo sipoze ke li pral yo dwe yon varyab lè, an reyalite, li 397 00:21:59,790 --> 00:22:02,640 se yon konstan. 398 00:22:02,640 --> 00:22:07,340 >> Tout dwa, se konsa isit la lè sa a, nan ka sa a, nou pa espesifye nenpòt ki kalite retou. 399 00:22:07,340 --> 00:22:09,460 Nou pral montre w ki jan fè ki nan jis yon moman. 400 00:22:09,460 --> 00:22:12,340 Men, remake ke isit la nou gen jis yon senp si kondisyon. 401 00:22:12,340 --> 00:22:14,560 Si Gradebook la se vid, ki nan ka sa a 402 00:22:14,560 --> 00:22:19,310 se jis pwopriyete a nan nonb antye relatif sa a etalaj, lè sa a nou enprime soti yon bagay. 403 00:22:19,310 --> 00:22:23,100 Sinon nou fè yon lòt bagay. 404 00:22:23,100 --> 00:22:25,000 >> Trè dwat byen lwen tèlman mwen panse ke. 405 00:22:25,000 --> 00:22:27,960 Men, sispann m 'si ou gen nenpòt kesyon. 406 00:22:27,960 --> 00:22:33,350 >> Koulye a, fonksyon sa a, mwayèn, tou pran kèk agiman, ou pito yon sèl agiman, 407 00:22:33,350 --> 00:22:37,507 ki se Gradebook la, ak tan sa a ki pral retounen yon kalite doub. 408 00:22:37,507 --> 00:22:39,340 Paske li se informatique mwayèn nan ak li a 409 00:22:39,340 --> 00:22:45,010 ale nan aktyèlman retounen ki Computed mwayèn nan liy lan rele. 410 00:22:45,010 --> 00:22:50,070 >> Nan ka sa a, nou presize an retounen di ki apre yon flèch. 411 00:22:50,070 --> 00:22:53,260 Lè sa a ka santi kalite etranj nan premye. 412 00:22:53,260 --> 00:22:55,610 Ou te grandi abitye mete retounen nan 413 00:22:55,610 --> 00:22:57,720 tape anvan non an nan fonksyon an. 414 00:22:57,720 --> 00:23:00,310 Men, si ou panse a sa a an tèm de matematik, 415 00:23:00,310 --> 00:23:03,320 tankou lè ou gen matematik ki defini yon fonksyon, 416 00:23:03,320 --> 00:23:06,807 ou gen yon fonksyon ak kèk entrain, epi li pwodui yon pwodiksyon. 417 00:23:06,807 --> 00:23:08,890 Epi sa a, egzakteman ki sa sa a se ta sipoze imite. 418 00:23:08,890 --> 00:23:12,460 Apre sa, nan yon koup la lòt lang sa yo ki te menm jan an sentaks kòm byen, 419 00:23:12,460 --> 00:23:15,674 men pwobableman pa youn ki ou te wè nan CS50. 420 00:23:15,674 --> 00:23:17,090 Men, toujou pa dwe mele nan li. 421 00:23:17,090 --> 00:23:21,650 Flèch la vle di ki sa ki pwal yo dwe retounen nan ka sa a. 422 00:23:21,650 --> 00:23:23,650 OK, Se konsa, kouman nou pral yo kalkile sa a mwayèn? 423 00:23:23,650 --> 00:23:25,649 Bon, si Gradebook la a vid, byen Lè sa a, nou ap 424 00:23:25,649 --> 00:23:30,731 pral retounen 0, ki petèt yon fason rezonab nan trete sa a. 425 00:23:30,731 --> 00:23:32,980 Mwen pa konnen, se pou yo vini tounen nan ke nan yon ti kras. 426 00:23:32,980 --> 00:23:34,688 Sa a ka pa aktyèlman gen yon fason ki rezonab 427 00:23:34,688 --> 00:23:38,310 yo kalkile yon mwayèn si nou gen yon Gradebook vid. 428 00:23:38,310 --> 00:23:41,260 >> Lè sa a, nou pral jis fè somasyon nou an. 429 00:23:41,260 --> 00:23:43,900 Remake isit la nou aktyèlman gen yon vèsyon altène nan yon 430 00:23:43,900 --> 00:23:49,190 pou riban, ki pèmèt nou repekte sou tout atik yon sèl nan yon etalaj 431 00:23:49,190 --> 00:23:53,630 epi mete chak eleman nan varyab pwòp li yo. 432 00:23:53,630 --> 00:23:56,200 Pa ki espesifye pou klas nan Gradebook, ki sa nou ap di 433 00:23:56,200 --> 00:24:00,560 se ke nou ap ale nan chal kreye yon konstan nouvo rele 434 00:24:00,560 --> 00:24:05,180 klas yo ki pral reprezante chak atik inik nan Gradebook la 435 00:24:05,180 --> 00:24:06,769 chak fwa ki la pou iterates riban. 436 00:24:06,769 --> 00:24:08,560 Se konsa, premye fwa ke li nan kouri, klas yo pral 437 00:24:08,560 --> 00:24:09,800 gen atik la premye nan Gradebook la. 438 00:24:09,800 --> 00:24:12,300 Dezyèm fwa a li pral nan dezyèm atik, sou sa ak pou fè 439 00:24:12,300 --> 00:24:15,970 jouk Gradebook gen fin itilize tèt li nan eleman. 440 00:24:15,970 --> 00:24:20,390 Apre sa, nou yo pral kapab sòm ki klas yo nan varyab somasyon nou an 441 00:24:20,390 --> 00:24:22,570 epi retounen jou mwayèn nou an kòm nou te wè anvan. 442 00:24:22,570 --> 00:24:25,670 443 00:24:25,670 --> 00:24:26,950 OK, nenpòt kesyon? 444 00:24:26,950 --> 00:24:27,699 Wi? 445 00:24:27,699 --> 00:24:28,990 ODYANS: Mwen gen de kesyon. 446 00:24:28,990 --> 00:24:33,586 Nimewo yon sèl, ipotèz, kapab ou kouri nonb antye relatif sou sa a youn? 447 00:24:33,586 --> 00:24:35,604 Pa gen yo dwe yon doub, se ke kòrèk? 448 00:24:35,604 --> 00:24:37,520 DAN AMRMENDARIZ: Èske ou ka repete kesyon sa a? 449 00:24:37,520 --> 00:24:39,587 ODYANS: Èske mwen ka fè nonb antye relatif kòm mwayèn a? 450 00:24:39,587 --> 00:24:41,670 DAN AMRMENDARIZ: Èske ou ka fè nonb antye relatif kòm yon mwayèn? 451 00:24:41,670 --> 00:24:45,015 Se konsa, retounen yon nonb antye relatif mwayèn olye pou yo yon doub? 452 00:24:45,015 --> 00:24:48,204 >> ODYANS: Return-- ou gen sa kounye a pi ba a. 453 00:24:48,204 --> 00:24:49,870 DAN AMRMENDARIZ: Dwa isit la, retounen 0.0? 454 00:24:49,870 --> 00:24:51,790 ODYANS: Yeah, jis retounen 0. 455 00:24:51,790 --> 00:24:56,590 Se konsa, li pral swa 80 oswa 85, men se pa 85.2. 456 00:24:56,590 --> 00:24:59,465 >> DAN AMRMENDARIZ: Se konsa, nan ka sa a, se konsa gen nan yon koup diferan fason 457 00:24:59,465 --> 00:25:00,090 reponn sa. 458 00:25:00,090 --> 00:25:02,760 Kite m 'reponn yo nan lòd. 459 00:25:02,760 --> 00:25:06,740 Se konsa, si mwen jis fè retounen sa a 0, yon 0 se yon valè nonb antye relatif. 460 00:25:06,740 --> 00:25:09,730 Se konsa, ki pral lakòz yon erè kalite pou ka sa a 461 00:25:09,730 --> 00:25:13,210 paske li ap tann yon doub men se lè sa a retounen yon nonb antye relatif. 462 00:25:13,210 --> 00:25:16,770 Si m 'vle retounen yon nonb antye relatif, mwen kapab. 463 00:25:16,770 --> 00:25:20,450 Mwen ka mete kalite a retounen int, retounen 0 isit la, 464 00:25:20,450 --> 00:25:22,047 epi yo pa fè doub divizyon. 465 00:25:22,047 --> 00:25:23,880 Men, lè sa a nou ta dwe fè divizyon nonb antye relatif. 466 00:25:23,880 --> 00:25:27,080 Se konsa, nou Lè sa a, pa ta jwenn nan mwayèn ke nou ta pètèt atann. 467 00:25:27,080 --> 00:25:29,210 Men, repons lan se wi nou ka modifye kalite yo nan fason sa a. 468 00:25:29,210 --> 00:25:32,598 >> ODYANS: Ak Dezyèmman, ou gen yon sèl Double nan sou tèt la. 469 00:25:32,598 --> 00:25:35,502 Men, desann anba a, lè ou fè retounen Double Double, 470 00:25:35,502 --> 00:25:38,280 sa a, se deja otomatikman retounen Double fòma. 471 00:25:38,280 --> 00:25:42,278 Poukisa ou toujou bezwen defini li ak flèch sou tèt ak yon Double? 472 00:25:42,278 --> 00:25:45,010 >> DAN AMRMENDARIZ: Se konsa, nan ka, sa a se yon pati 473 00:25:45,010 --> 00:25:50,580 a the-- se konsa yo repete kesyon an, paske li nan soti nan retounen nan enplisit 474 00:25:50,580 --> 00:25:56,030 kalite isit la, ki kalite sa a aktyèlman se, nou bezwen yo dwe eksplisit ak Swift 475 00:25:56,030 --> 00:25:59,970 sou sa nou vle retounen soti nan fonksyon sa a 476 00:25:59,970 --> 00:26:02,690 se konsa ke lè li fè tape tcheke, li ka asire w 477 00:26:02,690 --> 00:26:05,850 ki sa nou te aktyèlman ekri desann anba a aktyèlman konfòm ak sa yo ki. 478 00:26:05,850 --> 00:26:10,225 Se konsa, li sòt de tankou yon chèk ak tèt ou sòt de sitiyasyon. 479 00:26:10,225 --> 00:26:11,050 Men, gen sont- 480 00:26:11,050 --> 00:26:12,560 >> ODYANS: [fèbl] flèch? 481 00:26:12,560 --> 00:26:19,490 >> DAN AMRMENDARIZ: Gen ka lè nou ka presize ke nou kapab chal 482 00:26:19,490 --> 00:26:21,550 mete kalite a retounen. 483 00:26:21,550 --> 00:26:23,940 Men, nan ka sa a, mwen pa fè sa panse ki ta travay. 484 00:26:23,940 --> 00:26:26,190 Genyen kèk lòt sentaks ke nou pral wè pita. 485 00:26:26,190 --> 00:26:30,320 486 00:26:30,320 --> 00:26:35,280 >> Tout dwa, se konsa sa a sous kòd se yon ti jan diferan 487 00:26:35,280 --> 00:26:41,839 paske sa a analysis agiman soti nan fonksyon an ke nou ap rele. 488 00:26:41,839 --> 00:26:44,130 Kite m 'montre w ki jan li fonksyone anvan nou aktyèlman deplase sou 489 00:26:44,130 --> 00:26:48,050 nan kèk bagay sa yo enteresan ki nan k ap pase nan Swift. 490 00:26:48,050 --> 00:26:51,870 >> Se konsa, nan ka sa a, si mwen jis kouri sa a kòd, remake ke sa li ap fè 491 00:26:51,870 --> 00:26:54,900 is-- ti tan, li kalite ki ban m 'yon erè etranj. 492 00:26:54,900 --> 00:26:59,730 Mwen bezwen pase l yon koup la nonm antye relatif kòm yon agiman liy lòd. 493 00:26:59,730 --> 00:27:06,220 Se konsa, kite a wè, 150 ak 80, ak frape Antre yo chèche konnen ki sa li la aktyèlman fè. 494 00:27:06,220 --> 00:27:09,890 Li nan aksepte chak nan valè sa yo kòm nonm antye relatif. 495 00:27:09,890 --> 00:27:12,040 Li nan Anthrax yo nan yon Gradebook. 496 00:27:12,040 --> 00:27:14,470 Lè sa a, li nan fè ki kalkil mwayèn 497 00:27:14,470 --> 00:27:16,650 ak sorti ki jan nou ta atann. 498 00:27:16,650 --> 00:27:19,950 >> Men evidamman gen nan yon bagay ale sou ak yon bagay sa a rejte 499 00:27:19,950 --> 00:27:23,300 yon bagay kòm yon nonb antye relatif. 500 00:27:23,300 --> 00:27:27,300 Kòm ou ta ka sonje soti nan lè nou te fè fas ak liy lòd agiman 501 00:27:27,300 --> 00:27:32,640 nan C ak lòt lang, trè premye nan 0-th atik nan ki agiman liy lòd 502 00:27:32,640 --> 00:27:35,774 lis se non an nan yo lòd, ki ke nou aktyèlman egzekite. 503 00:27:35,774 --> 00:27:38,690 Se konsa, nan ka sa a, mwen jis loupin sou tout liy lòd agiman yo. 504 00:27:38,690 --> 00:27:41,650 Men, mwen pa ap fè nenpòt ki sòt de anpenpan tcheke yo sote sou ke premye yon sèl. 505 00:27:41,650 --> 00:27:45,920 Mwen jis klèman oswa mwen se chal tcheke kilès nan sa yo kalite 506 00:27:45,920 --> 00:27:49,900 se nonm antye relatif mwen anvan m 'aktyèlman fè kalkil sa a. 507 00:27:49,900 --> 00:27:52,420 >> Epi sa a, esansyèlman sa k ap pase isit la. 508 00:27:52,420 --> 00:27:55,860 Pou chak agiman an agiman pwosesis la, 509 00:27:55,860 --> 00:27:59,210 Mwen pral fè kèk chèk la. 510 00:27:59,210 --> 00:28:01,970 Ak nan ka sa a, mwen pral pou yo eseye premye konvèti 511 00:28:01,970 --> 00:28:07,620 ki agiman an yon nonb antye relatif pa fè yon kataloge eksplisit, 512 00:28:07,620 --> 00:28:12,310 paske li se, sou D ', yon afè epi yo pa an reyalite yon nonb antye relatif. 513 00:28:12,310 --> 00:28:18,140 >> Men, sa a se kalite yon sentaks etranj, si se pou klas yo egal Int (agiman). 514 00:28:18,140 --> 00:28:21,120 Ki sa ki aktyèlman pase isit la se trè 515 00:28:21,120 --> 00:28:24,390 enpòtan yo ou itilize Swift. 516 00:28:24,390 --> 00:28:27,610 Sa a se lè l sèvi avèk sa ki nan rele yon kalite si ou vle. 517 00:28:27,610 --> 00:28:34,790 >> Se konsa, fonksyon sa a, Int (agiman), retounen pa sèlman yon nonb antye relatif, men retounen 518 00:28:34,790 --> 00:28:37,470 sa ki rele yon nonb antye relatif si ou vle. 519 00:28:37,470 --> 00:28:41,200 Se konsa, sa a se sòt de yon kalite sou tèt yon kalite. 520 00:28:41,200 --> 00:28:45,900 Ou ka sòt de imajine li tankou li nan retounen tankou yon pake. 521 00:28:45,900 --> 00:28:47,750 Men, lè ou louvri ki pake, li swa 522 00:28:47,750 --> 00:28:53,930 gen yon nonb antye relatif, ki se rezilta nan, oswa li gen absoliman anyen nan li nan tout. 523 00:28:53,930 --> 00:28:58,140 Lè sa a se itil kòm yon kont kouran erè mekanis, paske se nan ka sa a 524 00:28:58,140 --> 00:29:02,080 nou ka chèche konnen, te sa a konvèsyon kalite reyisi? 525 00:29:02,080 --> 00:29:05,810 Si li te, lè sa a li se an reyalite ale nan gen yon nonb antye relatif anndan an. 526 00:29:05,810 --> 00:29:08,750 Sinon li k ap pase yo gen kèk valè ke nou pral rele nil, ki 527 00:29:08,750 --> 00:29:10,920 se reprezantan ki pa gen nonb antye relatif nan tout. 528 00:29:10,920 --> 00:29:13,270 Li nan reyèlman reprezantan nan pa gen anyen. 529 00:29:13,270 --> 00:29:18,130 >> Se konsa, sa a si konstriksyon pèmèt nou ouvrier ki pake, 530 00:29:18,130 --> 00:29:19,850 ki si ou vle obligatwa. 531 00:29:19,850 --> 00:29:25,560 Men, si nou yo kapab ouvrier ki package epi jwenn yon nonb antye relatif andedan, 532 00:29:25,560 --> 00:29:27,720 Lè sa a, ki sa nou ap di isit la se ke nou pral Lè sa a, 533 00:29:27,720 --> 00:29:33,090 pèmèt ak sa yo ki valè dwe mete nan konstan sa a yo rele klas. 534 00:29:33,090 --> 00:29:36,590 Ansanm ak pòsyon sa a nan si deklarasyon an, pòsyon nan tèt nan si deklarasyon an 535 00:29:36,590 --> 00:29:40,390 pral kouri, paske ki defèr te gen siksè. 536 00:29:40,390 --> 00:29:43,290 >> Si li jis pou k ap pase ki te gen yon erè petèt 537 00:29:43,290 --> 00:29:47,040 nan sa a konvèsyon kalite eksplisit ki sòti nan yon fisèl nan yon nonb antye relatif, petèt 538 00:29:47,040 --> 00:29:49,160 li nan ABC a valè pou egzanp. 539 00:29:49,160 --> 00:29:52,120 Epi sa a, aktyèlman pa pral konvèti nan yon nonb antye relatif. 540 00:29:52,120 --> 00:29:55,520 Lè sa a, li pral retounen nil, ki se pa yon nonb antye relatif. 541 00:29:55,520 --> 00:29:57,570 Lè sa a si deklarasyon byen Lè sa a, febli. 542 00:29:57,570 --> 00:30:01,930 klas yo pa pral egziste paske li pa gen okenn kontni nonb antye relatif. 543 00:30:01,930 --> 00:30:06,391 Epi li pral kouri sa a blòk lòt olye. 544 00:30:06,391 --> 00:30:06,890 Wi? 545 00:30:06,890 --> 00:30:09,652 >> ODYANS: Nil se N-I-L? 546 00:30:09,652 --> 00:30:11,110 DAN AMRMENDARIZ: nil se N-I-L, wi. 547 00:30:11,110 --> 00:30:14,970 548 00:30:14,970 --> 00:30:20,310 >> Se konsa, sa a se petèt youn nan nan pi di bagay sou Swift, 549 00:30:20,310 --> 00:30:23,690 espesyalman lè w ap nan move zèb yo sou yon app iOS 550 00:30:23,690 --> 00:30:27,442 epi ou ap aktyèlman ap fè kèk devlopman la. 551 00:30:27,442 --> 00:30:29,400 Li k ap pase yo dwe tap rele ke nan ou sou si ou vle. 552 00:30:29,400 --> 00:30:33,050 Li k ap pase yo dwe mande ou pou mak kesyon ak pwen esklamasyon. 553 00:30:33,050 --> 00:30:37,100 Men, yon fwa ou konnen si ou out-- konsakre kèk tan yo n ap kalkile konnen 554 00:30:37,100 --> 00:30:41,990 ki sa ki pwal sou ak kalite si ou vle, ou pral sove tèt ou yon anpil nan tèt fè mal 555 00:30:41,990 --> 00:30:46,040 jan ou yo ap eseye ekri yon app nan Swift. 556 00:30:46,040 --> 00:30:47,660 >> Li nan aktyèlman yon karakteristik gen anpil pouvwa. 557 00:30:47,660 --> 00:30:49,826 Men, ou pral jis gen nan pran pawòl mwen pou li pou kounye a. 558 00:30:49,826 --> 00:30:52,620 Men, nou pral wè sa a konstriksyon ak kèk lòt moun renmen li 559 00:30:52,620 --> 00:30:56,740 nan kèk nan kòd la sous lòt ki nou pral montre w nan jis yon ti kras. 560 00:30:56,740 --> 00:31:00,440 >> Èske gen nenpòt kesyon inisyal isit la? 561 00:31:00,440 --> 00:31:03,790 562 00:31:03,790 --> 00:31:08,690 Se konsa, Takeaway la enpòtan an se ke yon kalite si ou vle se sòt de yon metatype. 563 00:31:08,690 --> 00:31:12,500 Li swa gen yon valè, epi si li fè sa, lè sa a li 564 00:31:12,500 --> 00:31:18,110 pral petèt gen ke valè ki asosye ak li, oswa li pa gen okenn valè tou sa, 565 00:31:18,110 --> 00:31:19,620 epi li se reprezante pa nil. 566 00:31:19,620 --> 00:31:24,210 567 00:31:24,210 --> 00:31:28,870 Rès la nan sa a se petèt menm jan ou ta atann. 568 00:31:28,870 --> 00:31:32,900 >> Se konsa nou ranp moute nan difikilte ankò. 569 00:31:32,900 --> 00:31:37,070 Ak tan sa a, kite a pran yon gade nan kèk kalite done lòt ki aktyèlman egziste. 570 00:31:37,070 --> 00:31:41,290 Youn nan yo se diksyonè, ki se trè menm jan ak Piton diksyonè. 571 00:31:41,290 --> 00:31:48,270 Li nan yon ti jan ki sanble ak yon tab regle nan C. Li se esansyèlman se yon kat nan kle 572 00:31:48,270 --> 00:31:49,820 kote kle kapab strings. 573 00:31:49,820 --> 00:31:52,670 Men, lè ou gade moute kle sa yo, kle sa yo pral gen yon valè. 574 00:31:52,670 --> 00:31:56,020 Se konsa, li pa byen yon etalaj, men olye de sa, pi byen ki asosye 575 00:31:56,020 --> 00:31:58,810 nan yon kat jeyografik regle oswa yon tab regle. 576 00:31:58,810 --> 00:32:02,420 >> Ann wè ki jan sa a se ta sipoze nan travay anvan nou aktyèlman 577 00:32:02,420 --> 00:32:05,210 ale nan kòd la sous tèt li. 578 00:32:05,210 --> 00:32:07,680 Si m 'jis kouri sa a, pa gen anyen vrèman k ap pase. 579 00:32:07,680 --> 00:32:12,430 Li nan di m 'ke mwen tann kèk paramèt nan kalite sa a. 580 00:32:12,430 --> 00:32:16,050 Se konsa, mwen pral bay li kèk non pwoblèm mete, 581 00:32:16,050 --> 00:32:18,490 se konsa pset0, petèt mwen te resevwa 100. 582 00:32:18,490 --> 00:32:20,790 Apre sa, pset1, mwen te resevwa yon 5. 583 00:32:20,790 --> 00:32:24,630 Lè sa a, sou egzamen an, mwen te fè vrèman byen ak te resevwa 30. 584 00:32:24,630 --> 00:32:27,180 Apre sa, Wouch, mwen frape yon espas isit la. 585 00:32:27,180 --> 00:32:30,940 >> Lè m 'frape Antre, ou ka wè li fè kèk kalkil. 586 00:32:30,940 --> 00:32:33,740 Li di Gradebook se twa klas, pset1, pset0, konkou yo. 587 00:32:33,740 --> 00:32:36,120 Apre sa, Gradebook la gen sa a jou mwayèn espesifik. 588 00:32:36,120 --> 00:32:38,370 Se konsa, ankò, nou ap travay ak sa a lide Gradebook, 589 00:32:38,370 --> 00:32:44,650 men nou ap ale nan kontinye iteration ak konpleksite a nan fonksyon nou an. 590 00:32:44,650 --> 00:32:47,650 >> Se konsa, nan kòmansman an, nou ap jis ale nan kreye yon fonksyon ki 591 00:32:47,650 --> 00:32:49,390 ki responsab pou enprime l 'a. 592 00:32:49,390 --> 00:32:51,920 Apre sa, nan sa a sòti fonksyon ki pral jis 593 00:32:51,920 --> 00:32:53,710 lafòs kite aplikasyon an. 594 00:32:53,710 --> 00:32:56,530 Sa a se pa yon bagay ki ou pral sèvi avèk nan yo app. 595 00:32:56,530 --> 00:32:59,750 Sa a se sèlman, nan ka sa a, ak yon agiman liy lòd. 596 00:32:59,750 --> 00:33:01,990 Next nou pral kòmanse deplase nan direksyon pou Xcode. 597 00:33:01,990 --> 00:33:07,760 Men, sa a se espesifik nan yon lòd pwogram style liy nan Swift. 598 00:33:07,760 --> 00:33:11,490 >> Se pou nou pran yon gade nan kèk nan bagay sa yo ki enteresan isit la. 599 00:33:11,490 --> 00:33:15,150 Ann wè, se sèlman yon koup la bagay sa yo enteresan mansyone petèt 600 00:33:15,150 --> 00:33:19,930 se ke nan fonksyon m 'lan nan enprime ki kantite klas, 601 00:33:19,930 --> 00:33:26,090 ou ta ka sonje ke mwen te gen ke lis a items-- pset1, pset0, ak konkou yo. 602 00:33:26,090 --> 00:33:29,130 Ou ka aktyèlman byen vit ak byen fasil fè sa 603 00:33:29,130 --> 00:33:34,490 lè yo pran Gradebook la, ki se yon diksyonè ki te gen kle ak valè. 604 00:33:34,490 --> 00:33:38,730 Jwenn tout nan kle a se nan kle dot metòd la isit la, 605 00:33:38,730 --> 00:33:43,180 ak Lè sa a sèvi ak joinWithSeparator sa a, ki pral Lè sa a pran tout nan kle yo 606 00:33:43,180 --> 00:33:48,590 ke nou te tape nan, pset1-- oswa regrèt, pset0, pset1, ak exam-- 607 00:33:48,590 --> 00:33:53,030 ak anchene yo ansanm lè l sèvi avèk yon vigil ak yon espas 608 00:33:53,030 --> 00:33:55,400 yo kreye yon sèl fisèl lontan. 609 00:33:55,400 --> 00:34:00,190 Sa a operasyon rantre nan se jis phenomenally itil nan yon varyete de kontèks. 610 00:34:00,190 --> 00:34:03,450 Se konsa, li se joinWithSeparator sa a. 611 00:34:03,450 --> 00:34:06,939 >> Lè sa a se yon sèl bagay sa a, se chanje soti nan 1 rive nan Swift Swift 2. 612 00:34:06,939 --> 00:34:08,730 Gen itilize yo dwe yon Style-- Piton si w ap 613 00:34:08,730 --> 00:34:13,219 abitye avèk Python-- yon Piton style rantre nan metòd sou strings. 614 00:34:13,219 --> 00:34:15,699 Men sa se pa gen okenn ankò ka a nan Swift 2. 615 00:34:15,699 --> 00:34:19,400 Ou vle itilize sa a si ou vle anchene yon etalaj de bagay 616 00:34:19,400 --> 00:34:23,380 ansanm ak yon fisèl. 617 00:34:23,380 --> 00:34:27,889 >> Se konsa, petèt Lè sa a, nan nou an diskisyon sou jou mwayèn anvan, 618 00:34:27,889 --> 00:34:32,659 li fè yon ti jan ti kras pi plis sans pou nou pou n mete fonksyon an mwayèn 619 00:34:32,659 --> 00:34:36,610 yo dwe genyen yon doub si ou vle olye pase jis yon doub eksplisit. 620 00:34:36,610 --> 00:34:39,239 Paske nou te gen ki kondisyon dwòl kote, 621 00:34:39,239 --> 00:34:41,550 sa ki si Gradebook aktyèlman pa gen okenn valè nan li? 622 00:34:41,550 --> 00:34:44,280 Ki sa ki ta dwe retounen nan mwayèn? 623 00:34:44,280 --> 00:34:46,350 >> Oke petèt nan C ou ta gen fè yon bagay 624 00:34:46,350 --> 00:34:50,040 tankou bay yon valè Sentinel, tankou 0.0, oswa petèt yon PO negatif, 625 00:34:50,040 --> 00:34:53,690 oswa yon bagay jis reprezante lefèt ke te gen kèk kondisyon erè 626 00:34:53,690 --> 00:34:57,910 epi ou petèt pa gen aktyèlman kapasite nan kalkile ki mwayèn. 627 00:34:57,910 --> 00:35:05,590 Oke bote nan ki espesifye yon kalite si ou vle ta dwe fè sa. 628 00:35:05,590 --> 00:35:09,540 Apre sa, mwen kounye a li di tout pawòl sa yo, men sa a aktyèlman pa sèvi ak opsyonèl. 629 00:35:09,540 --> 00:35:12,970 Men, nou pral wè ke nan jis minit kote nou ka mete jou mwayèn 630 00:35:12,970 --> 00:35:17,230 yo dwe genyen yon kalite done si ou vle pou ke si li aktyèlman retounen kèk done, lè sa a 631 00:35:17,230 --> 00:35:18,470 Nou prale ke done. 632 00:35:18,470 --> 00:35:20,570 Sinon nou pral retounen nil, ki di ke sa a 633 00:35:20,570 --> 00:35:22,200 pa gen okenn kalkil ki gen sans. 634 00:35:22,200 --> 00:35:25,650 635 00:35:25,650 --> 00:35:28,570 >> Se pou yo deplase sou li nan yon lòt bagay. 636 00:35:28,570 --> 00:35:35,910 Se konsa, soti isit la, nou ve yo te kap nan tout egzanp sa yo nan liy nan lòd. 637 00:35:35,910 --> 00:35:39,470 Men, reyèlman sa w ap ale yo dwe fè fas ak se Xcode. 638 00:35:39,470 --> 00:35:43,720 Apre sa, youn nan bagay ki bèl sou Xcode se, ak espesyalman nan Swift, 639 00:35:43,720 --> 00:35:47,450 se ke nou gen sa a bagay yo te rele yon Lakou rekreyasyon. 640 00:35:47,450 --> 00:35:51,470 Ak yon Lakou rekreyasyon se pa nan tout yon app iOS. 641 00:35:51,470 --> 00:35:54,751 Men, li pèmèt ou fè eksperyans ak Swift nan yon fason trè fasil. 642 00:35:54,751 --> 00:35:56,000 Ou ka tape tout nan kòd ou a. 643 00:35:56,000 --> 00:35:58,140 Li nan joliman sentaks make isit la. 644 00:35:58,140 --> 00:36:01,600 Lè ou kreye yon nouvo dosye, li pral mande ou si ou vle kreye yon Lakou rekreyasyon. 645 00:36:01,600 --> 00:36:08,720 Men, bagay la bèl sou Lakou rekreyasyon an se ke sou bò dwat la nan fenèt ou, 646 00:36:08,720 --> 00:36:12,020 li aktyèlman montre w Sòti nan kòd ou a. 647 00:36:12,020 --> 00:36:16,110 Se konsa, si mwen desann, nou ka wè sa ki pwodiksyon an nan divès kalite liy nan Kòd 648 00:36:16,110 --> 00:36:17,200 aktyèlman k ap pase yo. 649 00:36:17,200 --> 00:36:19,850 650 00:36:19,850 --> 00:36:26,790 >> Se konsa, nan ka sa a, nou ap ale nan chanje direksyon jis yon ti jan 651 00:36:26,790 --> 00:36:30,960 epi pale sou yon bagay sa ki nan vrèman enpòtan nan fason sa a wo nivo 652 00:36:30,960 --> 00:36:34,020 ki Swift opere, epi li se lide sa a nan fèmti. 653 00:36:34,020 --> 00:36:36,960 Apre sa, ou te pwobableman wè sa a yon ti jan nan JavaScript. 654 00:36:36,960 --> 00:36:40,770 Pou moun nan nou ki se nan CS50, fèmen 655 00:36:40,770 --> 00:36:47,240 yo trè popilè, trè bon fason pou fè bagay wo nivo nan lang modèn. 656 00:36:47,240 --> 00:36:50,270 Men, li la tou kalite difisil a vlope tèt ou otou premye fwa. 657 00:36:50,270 --> 00:36:52,269 Se konsa, si ou ap chache nan sa a premye fwa, sa se OK. 658 00:36:52,269 --> 00:36:56,740 Jis gade nan kòd la sous ak wè si ou ka figi li soti nan kay la. 659 00:36:56,740 --> 00:37:01,050 >> Se konsa, nan ka sa a, se pou yo di ke nou vle kreye yon anpil nan ekspozan 660 00:37:01,050 --> 00:37:04,134 ak kèk valè fiks yo. 661 00:37:04,134 --> 00:37:05,800 Se konsa, nan ka sa a mwen kapab kreye yon fonksyon. 662 00:37:05,800 --> 00:37:09,270 Mwen pral rele li pouvwa nan 2 objektif ki gen sèl nan lavi 663 00:37:09,270 --> 00:37:15,770 se pran kèk D 'ak doub li, epi retounen ke valè. 664 00:37:15,770 --> 00:37:21,210 Remake isit la mwen menm aksepte yon kalite done. 665 00:37:21,210 --> 00:37:23,137 Li k ap pase yo dwe yon varyab rele x. 666 00:37:23,137 --> 00:37:23,970 Li nan nan kalite Double. 667 00:37:23,970 --> 00:37:26,190 Apre sa, mwen pral retounen yon Double isit la. 668 00:37:26,190 --> 00:37:29,100 Apre sa, mwen jis pral fè yon trè, franchman, trè 669 00:37:29,100 --> 00:37:32,650 nayif fason pou double valè sa a. 670 00:37:32,650 --> 00:37:35,600 Apre sa, mwen pral montre w poukisa sa a se itil nan jis yon dezyèm fwa. 671 00:37:35,600 --> 00:37:40,418 >> Remake isit la nou gen sa a ranje ankò. pou yon bagay nan 1, dot 672 00:37:40,418 --> 00:37:44,130 dot dot, 2, ki vle di ke sa a riban pral kouri de fwa. 673 00:37:44,130 --> 00:37:46,480 Men, sa a reprezante yon varyab egare. 674 00:37:46,480 --> 00:37:49,650 Sa vle di mwen pa reyèlman ale nan lè l sèvi avèk varyab sa nenpòt kote 675 00:37:49,650 --> 00:37:51,070 andedan nan sa a riban. 676 00:37:51,070 --> 00:37:55,380 Mwen jis vle liy sa a nan kòd nan kouri de fwa, 677 00:37:55,380 --> 00:37:58,980 san yo pa bezwen konnen valè a nan ki pòte. 678 00:37:58,980 --> 00:38:02,570 >> Se konsa, nan ka sa a mwen kouri rezilta fwa x de fwa, ki esansyèlman 679 00:38:02,570 --> 00:38:06,560 vle di ke mwen kwadratur valè sa a. 680 00:38:06,560 --> 00:38:10,230 Lè sa a k ap pase nan travay kòm nou ta atann. 681 00:38:10,230 --> 00:38:16,410 Power of 2, pase yon valè de 2.0 ba nou yon pwodiksyon nan 4. 682 00:38:16,410 --> 00:38:18,810 3.2 travay pou 10,24. 683 00:38:18,810 --> 00:38:22,660 >> Koulye a, nou kapab fè yon menm jan an bagay pou pouvwa nan 3. 684 00:38:22,660 --> 00:38:25,330 Men koulye a, chanje sèlman seri a. 685 00:38:25,330 --> 00:38:28,840 Pou egare varyab nan 1 a 3, anpil anpil pitit 3 fwa, 686 00:38:28,840 --> 00:38:29,830 ak fè menm bagay la. 687 00:38:29,830 --> 00:38:32,240 >> Se konsa, sa a ta ka santi yon ti kras parvenus. 688 00:38:32,240 --> 00:38:34,270 Men, gen nan yon enpòtan bagay isit la ki 689 00:38:34,270 --> 00:38:37,770 se ke gade nan sa yo de fonksyon, gen nan 690 00:38:37,770 --> 00:38:43,600 sèlman yon sèl bagay sa a, se diferan, ki se valè sa a nan seri a. 691 00:38:43,600 --> 00:38:46,910 Tout lòt bagay sou sa yo de fonksyon, pouvwa nan 3 ak pouvwa nan 2, 692 00:38:46,910 --> 00:38:50,440 se, an reyalite, ki idantik paske yo travay nan menm fason an. 693 00:38:50,440 --> 00:38:53,460 >> Se konsa, nan pwen sa a, yon ti kras klòch alam yo ta dwe ale nan. 694 00:38:53,460 --> 00:38:56,200 Nou swete ke sa w di a, ou konnen, sa a santi l yon ti jan 695 00:38:56,200 --> 00:38:59,250 tankou repetisyon nan efò. 696 00:38:59,250 --> 00:39:02,950 Petèt gen nan yon fason ki mwen ta kapab ankapsulasyon tout bagay sa yo 697 00:39:02,950 --> 00:39:06,630 epi yo bay yon fonksyon oubyen kreye yon fonksyon ki 698 00:39:06,630 --> 00:39:11,550 fè egzakteman sa m 'vle san yo pa ki bezwen tape li soti klèman. 699 00:39:11,550 --> 00:39:15,732 Lè sa a se sa ki pouvwa a nan yon fèmen pèmèt nou fè. 700 00:39:15,732 --> 00:39:16,940 Se konsa, kite a pran yon gade nan sa a. 701 00:39:16,940 --> 00:39:18,700 Apre sa, mwen pral depanse yon koup minit sou sa a, paske sa a 702 00:39:18,700 --> 00:39:20,310 se trè enpòtan pou Swift. 703 00:39:20,310 --> 00:39:22,900 Nou wè sa a tout tan tout tan an. 704 00:39:22,900 --> 00:39:24,550 Nou pral defini yon fonksyon. 705 00:39:24,550 --> 00:39:26,380 Li k ap pase yo dwe rele powerOf. 706 00:39:26,380 --> 00:39:29,470 Li nan ale nan aksepte yon paramèt rele y nan kalite Int. 707 00:39:29,470 --> 00:39:32,220 Men, pran yon gade nan kalite nan retou. 708 00:39:32,220 --> 00:39:38,730 Kalite a retounen se, nan parantèz, Double flèch Double. 709 00:39:38,730 --> 00:39:43,370 Ki vle di ke fonksyon sa a, sa a powerOf fonksyon, 710 00:39:43,370 --> 00:39:46,550 se retounen yon fonksyon. 711 00:39:46,550 --> 00:39:50,845 Sa se aksepte yon Double epi retounen yon Double. 712 00:39:50,845 --> 00:39:53,720 Se konsa, ki ta ka son kalite fou, men kite a desann yon ti jan 713 00:39:53,720 --> 00:39:55,060 epi gade yo wè sa ki k ap pase. 714 00:39:55,060 --> 00:39:57,910 Nou andedan nan sa a powerOf fonksyon. 715 00:39:57,910 --> 00:40:00,760 Nou ap kreye yon fonksyon nouvo rele exponentiator, 716 00:40:00,760 --> 00:40:02,900 men li pa gen pwoblèm sa li ye. 717 00:40:02,900 --> 00:40:06,410 >> Remake sa a gen yon valè D 'a x. 718 00:40:06,410 --> 00:40:09,910 Epi li se pran nan yon Double epi retounen yon Double. 719 00:40:09,910 --> 00:40:16,320 Lè sa a se kòd la menm ke nou wè pi wo a, eksepte ke valè a nan 2 720 00:40:16,320 --> 00:40:20,060 oswa valè a nan 3, ki anwo mare nan ki ranje, 721 00:40:20,060 --> 00:40:23,210 ki te ranplase ak sa a valè de y, ki 722 00:40:23,210 --> 00:40:27,230 te premye paramèt la nan fonksyon powerOf nou an. 723 00:40:27,230 --> 00:40:31,700 Apre sa, nan pwen sa a, nou retounen exponentiator. 724 00:40:31,700 --> 00:40:33,345 Nou ap retounen fonksyon an. 725 00:40:33,345 --> 00:40:36,300 726 00:40:36,300 --> 00:40:39,550 >> Li nan kalite tankou yon ti mouche tèt ou. 727 00:40:39,550 --> 00:40:44,360 Men, kite a imajine sa k ap pase lè m 'rele fonksyon sa a powerOf 728 00:40:44,360 --> 00:40:47,610 epi yo pase nan li kèk valè tankou 2. 729 00:40:47,610 --> 00:40:50,020 Ki sa sa vle di se ke Mwen kounye a gen valè nan 730 00:40:50,020 --> 00:40:55,130 2 pou y, ki vle di ke sa a valè y nan fonksyon sa a exponentiator 731 00:40:55,130 --> 00:40:56,410 yo pral ke valè 2. 732 00:40:56,410 --> 00:41:01,290 Men, mwen retounen sa a fonksyon exponentiator. 733 00:41:01,290 --> 00:41:05,900 >> Se konsa, remake ki sa Swift di mwen te kreye nan ka sa a. 734 00:41:05,900 --> 00:41:10,550 kite kare se yon definisyon, li nan yon fonksyon ki aksepte yon Double 735 00:41:10,550 --> 00:41:12,610 ak retounen yon Double. 736 00:41:12,610 --> 00:41:16,590 Mwen te kreye yon fonksyon ki kare yon bagay 737 00:41:16,590 --> 00:41:19,782 lè l sèvi avèk sa a mekanis dwa isit la. 738 00:41:19,782 --> 00:41:22,490 E reyèlman sa k ap pase se ke li se retounen fonksyon sa a 739 00:41:22,490 --> 00:41:26,390 exponentiator, men sa a valè y se vlope andedan nan li. 740 00:41:26,390 --> 00:41:31,080 Se konsa, kounye a chak fwa mwen sèvi ak sa a varyab oswa konstan sa a yo rele 741 00:41:31,080 --> 00:41:35,180 kare, li li pral konpòte yo kòm yon fonksyon. 742 00:41:35,180 --> 00:41:39,960 Se konsa, mwen ka Lè sa a rele varyab sa tankou mwen ta ka rele yon fonksyon, 743 00:41:39,960 --> 00:41:43,830 epi yo pase nan li yon nimewo, tankou nan ka sa a 3. 744 00:41:43,830 --> 00:41:45,910 Apre sa, mwen pral Lè sa a kare valè sa a. 745 00:41:45,910 --> 00:41:53,340 Se konsa, Lè sa a, 3 au ap vin 9, kòm nou ka wè isit la. 746 00:41:53,340 --> 00:41:56,530 >> Vrèman fou, men sa a kounye a pèmèt m 'opòtinite pou 747 00:41:56,530 --> 00:41:59,040 yo kreye lòt fonksyon powerOf. 748 00:41:59,040 --> 00:42:03,680 Tankou mwen ka di, OK, byen koulye a, mwen vle yo kreye yon fonksyon nouvo, powerOf (3), 749 00:42:03,680 --> 00:42:06,290 epi estoke ki nan yon konstan rele kib. 750 00:42:06,290 --> 00:42:10,220 Epi, koulye a kib ki pral gen yon fonksyon ki pral Lè sa a, separe 751 00:42:10,220 --> 00:42:14,800 pran kèk valè kòm opinyon ak kib ki valè kòm nou ka wè nan liy la anba 752 00:42:14,800 --> 00:42:16,420 isit la. 753 00:42:16,420 --> 00:42:18,590 kib nan 2 ki pral rezilta nan 8. 754 00:42:18,590 --> 00:42:21,330 755 00:42:21,330 --> 00:42:22,680 >> Nou swete ke trè pwòp bagay. 756 00:42:22,680 --> 00:42:25,920 Ou pa janm te wè sa a anvan. 757 00:42:25,920 --> 00:42:29,990 Mwen ankouraje w yo gade nan fèmti ak mennen ankèt sou sa a yon ti jan ti kras pi plis. 758 00:42:29,990 --> 00:42:33,570 Li nan reyèlman pwisan bagay nou wè yon anpil nan JavaScript ak kèk lòt lang. 759 00:42:33,570 --> 00:42:37,160 Li nan reyèlman enpòtan anpil nan konprann APIs kòm byen 760 00:42:37,160 --> 00:42:38,620 ke nou pral ale nan nan jis yon dezyèm fwa. 761 00:42:38,620 --> 00:42:39,456 Wi? 762 00:42:39,456 --> 00:42:43,740 >> ODYANS: Lè ou fè powerOf (2), parantèz, ak Lè sa 763 00:42:43,740 --> 00:42:48,764 yon lòt parantèz, yon lòt input-- w ap fondamantalman ranplase kare a. 764 00:42:48,764 --> 00:42:50,930 DAN AMRMENDARIZ: Se konsa, gade nan liy lan trè dènye isit la. 765 00:42:50,930 --> 00:42:55,930 Li se aktyèlman totalman posib yo fè sa Anchènman jan ou sijere. 766 00:42:55,930 --> 00:43:00,990 Se konsa, powerOf (5) vle di ke nou ap ale gen yon exponentiator nan 5 moute isit la. 767 00:43:00,990 --> 00:43:04,160 Se konsa, sa a se esansyèlman pral fè a menm bagay kòm 4 a senkyèm pouvwa a, 768 00:43:04,160 --> 00:43:07,200 paske nou te kreye yon pisans fonksyone senkyèm pouvwa a, 769 00:43:07,200 --> 00:43:09,920 epi nou ap pase nan ki fonksyone valè a 4. 770 00:43:09,920 --> 00:43:12,619 Apre sa, nou jwenn ke valè ke nou atann, 1024. 771 00:43:12,619 --> 00:43:14,785 ODYANS: Epi li pa yon non, se konsa li fè li pi fasil 772 00:43:14,785 --> 00:43:16,570 li, kare a kèlkeswa sa. 773 00:43:16,570 --> 00:43:17,903 >> DAN AMRMENDARIZ: Dwa, egzakteman. 774 00:43:17,903 --> 00:43:21,120 Se konsa, mwen anvan m 'jis mete l' nan yon konstan isit la se konsa 775 00:43:21,120 --> 00:43:23,808 ke li te fè li fasil yo sèvi ak non sa a. 776 00:43:23,808 --> 00:43:24,308 Wi? 777 00:43:24,308 --> 00:43:26,942 >> ODYANS: Nan kontèks sa a powerOf, li nan yon pati 778 00:43:26,942 --> 00:43:30,774 nan lang lan pwogram kòm opoze a wout la ou 779 00:43:30,774 --> 00:43:33,952 panse a powerOf nan [fèbl]? 780 00:43:33,952 --> 00:43:35,660 DAN AMRMENDARIZ: Se konsa, nan ka sa a, powerOf 781 00:43:35,660 --> 00:43:39,280 se tou senpleman non an nan la fonksyon ke mwen defini moute isit la. 782 00:43:39,280 --> 00:43:41,801 Se konsa, li pa nannan nan lang nan tèt li, 783 00:43:41,801 --> 00:43:43,550 men olye, li nan jis yon fonksyon ki gen 784 00:43:43,550 --> 00:43:45,628 ke non paske mwen bay li non sa a. 785 00:43:45,628 --> 00:43:48,770 786 00:43:48,770 --> 00:43:51,920 Nenpòt lòt kesyon? 787 00:43:51,920 --> 00:43:52,800 Tout dwa. 788 00:43:52,800 --> 00:43:54,750 >> Koulye a, sa a se gwo. 789 00:43:54,750 --> 00:43:58,170 Men, ou pa ap ale nan wè yon anpil nan fonksyon ki fèmen 790 00:43:58,170 --> 00:44:03,440 se tankou sa a kote ou defini, andedan nan yon sèl fonksyon, yon lòt fonksyon. 791 00:44:03,440 --> 00:44:04,320 Epi ou ka fè li. 792 00:44:04,320 --> 00:44:06,430 Men, li la kalite pa vrèman nesesè, dwa? 793 00:44:06,430 --> 00:44:09,189 Fè tankou poutèt sa mwen defini sa a fonksyon rele exponentiator 794 00:44:09,189 --> 00:44:10,480 ak Lè sa a imedyatman retounen li. 795 00:44:10,480 --> 00:44:15,220 Poukisa nou pa Èske mwen ka jis imedyatman retounen fonksyon sa a? 796 00:44:15,220 --> 00:44:18,890 >> Ak nan reyalite, sa a se jisteman lide a dèyè yon konsèp yo rele 797 00:44:18,890 --> 00:44:22,410 fonksyon anonim, kote fonksyon anonim pa fè sa aktyèlman 798 00:44:22,410 --> 00:44:25,270 gen yon non paske yo pa bezwen gen youn. 799 00:44:25,270 --> 00:44:28,700 Se konsa, nan ka sa a, nan 7B, nou ka jwenn jisteman sa. 800 00:44:28,700 --> 00:44:31,470 Li nan tout kòd la menm, fè egzakteman menm bagay la, 801 00:44:31,470 --> 00:44:35,570 men kounye a nou te chanje yon ti kras se konsa li ki fonksyon powerOf sa a imedyatman 802 00:44:35,570 --> 00:44:37,750 retounen yon fonksyon. 803 00:44:37,750 --> 00:44:44,150 Remake apre retou, gen nan yon bracket louvri Curly. 804 00:44:44,150 --> 00:44:46,410 Li nan espere sa a opinyon Double. 805 00:44:46,410 --> 00:44:48,560 Li nan espere ke pwodiksyon Double. 806 00:44:48,560 --> 00:44:52,175 Lè sa a, nan mo kle a separe kòd la tèt li. 807 00:44:52,175 --> 00:44:53,550 Se konsa, sa a se yon fonksyon anonim. 808 00:44:53,550 --> 00:44:57,030 Li pa gen aktyèlman yon non, Lè nou konsidere ke anvan li te rele exponentiator. 809 00:44:57,030 --> 00:45:00,229 Men, jan nou te wè, jis reyèlman pa t 'al gade nan exponentiator 810 00:45:00,229 --> 00:45:01,270 deyò nan ki fonksyon. 811 00:45:01,270 --> 00:45:02,470 Se konsa, li pa t 'gen pwoblèm. 812 00:45:02,470 --> 00:45:06,300 Se konsa, fonksyon sa a anonim se sa yo rele paske li se nameless, 813 00:45:06,300 --> 00:45:09,107 men li la toujou ki te itilize nan yon kontèks la nan kòd sa a. 814 00:45:09,107 --> 00:45:13,690 815 00:45:13,690 --> 00:45:16,079 >> Yo menm ki koup pwochen mwen se pral kontinye èspere ke 816 00:45:16,079 --> 00:45:17,370 mouche tèt ou yon ti kras. 817 00:45:17,370 --> 00:45:20,410 Nou ka senplifye sa a menm plis. 818 00:45:20,410 --> 00:45:24,490 Paske jan sa te astutely vize deyò pi bonè, 819 00:45:24,490 --> 00:45:29,100 petèt nou aktyèlman konnen, pa èksklamasyon nan kòd sa a, ki 820 00:45:29,100 --> 00:45:31,750 pwodiksyon an nan Kòd sa a ki pral yo dwe. 821 00:45:31,750 --> 00:45:38,180 Apre sa, an reyalite, nan fonksyon sa a anonim, nou ka an reyalite dégager ki kalite done. 822 00:45:38,180 --> 00:45:41,650 >> Se konsa, nan yon sèl sa a, nou pa gen okenn ankò bezwen klèman defini 823 00:45:41,650 --> 00:45:44,850 kalite a nan done ki nan ke yo te opinyon ak pwodiksyon soti nan fonksyon sa a 824 00:45:44,850 --> 00:45:45,890 pou yon koup nan rezon. 825 00:45:45,890 --> 00:45:51,390 Youn nan se ke nou te defini, moute nan la pwototip nan fonksyon an jwen, 826 00:45:51,390 --> 00:45:55,770 ki kalite done sa anonim fonksyon yo ta dwe opinyon ak pwodiksyon. 827 00:45:55,770 --> 00:45:57,900 Li te pran depi lòt la, nou ka dégager soti nan kòd la 828 00:45:57,900 --> 00:46:01,930 desann isit la ke nou ap aksepte D 'se sa ki nan kalite Double 829 00:46:01,930 --> 00:46:03,670 epi retounen yon Double. 830 00:46:03,670 --> 00:46:07,890 >> Remake isit la nou gen pa klèman defini non yo nan agiman yo 831 00:46:07,890 --> 00:46:11,220 ki fonksyon sa a aksepte. 832 00:46:11,220 --> 00:46:16,180 Se konsa, nou wè nou ka al gade nan moun lè l sèvi avèk paramèt $ 0, $ 1, 833 00:46:16,180 --> 00:46:20,140 sou sa ak pou fè, tou depann de ki kantite ki paramèt itilize 834 00:46:20,140 --> 00:46:20,850 nan fonksyon sa a. 835 00:46:20,850 --> 00:46:23,370 836 00:46:23,370 --> 00:46:29,740 >> Sa a se yon bagay ki ou yo ale yo wè yon anpil se sa a bracket louvri Curly 837 00:46:29,740 --> 00:46:32,797 definisyon swiv pa yon $ 0, ak Lè sa a kèk operasyon, 838 00:46:32,797 --> 00:46:34,130 ak Lè sa a yon bracket Curly fèmen. 839 00:46:34,130 --> 00:46:38,630 Sa se yon fonksyon anonim ki fè operasyon sa a. 840 00:46:38,630 --> 00:46:42,940 Li te gen paramèt sa a kote li nan di ki kalite se dedwi. 841 00:46:42,940 --> 00:46:44,860 Sa premye paramèt se $ 0. 842 00:46:44,860 --> 00:46:49,010 Se konsa, kèk operasyon se pase sou ke $ 0. 843 00:46:49,010 --> 00:46:52,100 >> ODYANS: Se konsa, siy a an dola vle di paramèt fondamantalman, 844 00:46:52,100 --> 00:46:53,429 ak 0 vle di yon sèl la an premye? 845 00:46:53,429 --> 00:46:54,720 DAN Armendariz: Sa a kòrèk. 846 00:46:54,720 --> 00:46:59,100 Se konsa, siy a an dola fondamantalman vle di paramèt, ak 0 vle di yon sèl la an premye. 847 00:46:59,100 --> 00:47:02,760 Men, li ap travay espesyalman nan ka sa a kote mwen pa yo te rele 848 00:47:02,760 --> 00:47:07,940 agiman yo nan fonksyon anonim mwen. 849 00:47:07,940 --> 00:47:11,119 >> ODYANS: Èske pèrl oswa yon bagay gen sa a siy dola, dola 0 nan la? 850 00:47:11,119 --> 00:47:12,702 DAN Armendariz: Èske ki, Mwen regrèt? 851 00:47:12,702 --> 00:47:15,360 ODYANS: pèrl gen sa a dola 0, dola 1-- 852 00:47:15,360 --> 00:47:17,318 DAN Armendariz: Mwen pa se twò abitye avèk pèrl, 853 00:47:17,318 --> 00:47:21,340 men PHP sa defini varyab ki baze sou siy dola. 854 00:47:21,340 --> 00:47:26,120 Apre sa, gen pouvwa gen kèk lang ki gen karakteristik tankou sa a. 855 00:47:26,120 --> 00:47:28,240 An reyalite, Swift prete yon anpil nan karakteristik tankou sa a 856 00:47:28,240 --> 00:47:29,489 ki sòti nan yon anpil nan lòt lang. 857 00:47:29,489 --> 00:47:32,380 Nou wè sijesyon nan Piton nan li. 858 00:47:32,380 --> 00:47:35,800 Definisyon sa a nan kalite sanble yo soti nan okanl. 859 00:47:35,800 --> 00:47:38,932 Epi nou gen jis yon pakèt antye nan bagay soti nan anpil nan diferan lang. 860 00:47:38,932 --> 00:47:40,640 Sa a youn nan bèl la bagay sou Swift 861 00:47:40,640 --> 00:47:43,390 se ke li pran yon anpil nan pi bon an ide ki soti yon pakèt moun sou lang 862 00:47:43,390 --> 00:47:47,229 ak shoehorns yo tout ansanm nan yon sèl lang super. 863 00:47:47,229 --> 00:47:49,520 An reyalite, si ou pèmèt mwen kontinye mouche tèt ou, 864 00:47:49,520 --> 00:47:51,000 se konsa nou ve yo te fè tout bagay sa yo. 865 00:47:51,000 --> 00:47:56,690 Nou ka petèt senplifye sa a yon ti kras ti jan pa ka akonpli ke, nan kou, 866 00:47:56,690 --> 00:48:02,120 Swift gen yon pisans fonksyon bati nan. 867 00:48:02,120 --> 00:48:04,660 Si m 'enpòte Darwin, ki se jis bibliyotèk la ki 868 00:48:04,660 --> 00:48:09,680 karakteristik fonksyon rele sa a POW, kounye a Mwen kapab senplifye pouvwa mwen nan fonksyon 869 00:48:09,680 --> 00:48:11,830 yo dwe sa ki annapre yo. 870 00:48:11,830 --> 00:48:15,860 Li yo pral retounen fonksyon anonim sa a. 871 00:48:15,860 --> 00:48:17,950 >> Men, gade nan ki jan senp sa a se kounye a. 872 00:48:17,950 --> 00:48:22,780 Sa a se yon fonksyon anonim ki se aksepte kèk kalite done, 873 00:48:22,780 --> 00:48:26,600 epi li ki pral yo dwe youn agiman espesyalman, 874 00:48:26,600 --> 00:48:29,320 referans a $ 0 se sa ki nan kalite Double. 875 00:48:29,320 --> 00:48:32,680 Li se pral retounen yon kalite Double. 876 00:48:32,680 --> 00:48:35,760 Men, deklarasyon an retou se kounye a enplisit. 877 00:48:35,760 --> 00:48:39,990 >> Epi li se sa a style egzak ki se trè, trè répandus nan Swift, 878 00:48:39,990 --> 00:48:40,790 tout lòt peyi sou plas la. 879 00:48:40,790 --> 00:48:43,190 Nou pral wè sa a tout tan tout tan an nan Swift. 880 00:48:43,190 --> 00:48:46,150 Se konsa, mwen ki montre tout nan sa a yo ou paske nan sentaks sa a. 881 00:48:46,150 --> 00:48:49,070 Sa a se trè komen yo wè, ki vle di li 882 00:48:49,070 --> 00:48:51,420 se yon fonksyon anonim ki ap pèfòme 883 00:48:51,420 --> 00:48:54,640 kèk operasyon sou agiman sa yo. 884 00:48:54,640 --> 00:48:56,940 Apre sa, se yon retounen enplisit. 885 00:48:56,940 --> 00:49:01,850 Se konsa, li se absoliman menm bagay la pou nou pou n di sa a, dwa isit la. 886 00:49:01,850 --> 00:49:05,730 887 00:49:05,730 --> 00:49:08,150 >> Paske sa a Curly bracket se yon fonksyon, 888 00:49:08,150 --> 00:49:10,480 nou ap fè operasyon sa a sou agiman an premye. 889 00:49:10,480 --> 00:49:12,170 Nou pral retounen sa. 890 00:49:12,170 --> 00:49:14,815 Men, sa a retounen deyò se retounen ki fonksyon antye, 891 00:49:14,815 --> 00:49:19,855 ki fonksyon antye anonim ke nou te jis kreye. 892 00:49:19,855 --> 00:49:21,689 Nenpòt lòt kesyon? 893 00:49:21,689 --> 00:49:23,980 Tout dwa, Mwen pa konnen si ou nèg yo pare pou sa a, 894 00:49:23,980 --> 00:49:27,455 men nou ka ale menm crazier ak Swift. 895 00:49:27,455 --> 00:49:28,560 Ou pare? 896 00:49:28,560 --> 00:49:29,930 OK, sa a se gwo. 897 00:49:29,930 --> 00:49:35,310 >> Koulye a, nou aktyèlman gen kapasite a a, nan Swift, paske nan ki jan modilè 898 00:49:35,310 --> 00:49:39,650 ak ki jan pwotokòl ki baze li se, nan defini operatè pwòp nou frikin. 899 00:49:39,650 --> 00:49:44,060 Fè tankou nan ka sa a, nou pa te gen okenn operatè pou exponentiation-- byen, 900 00:49:44,060 --> 00:49:47,990 pou fè pouvwa nan yon bagay. 901 00:49:47,990 --> 00:49:53,632 Men, mwen ka, nan Swift, defini yon nouvo operatè ki fè jisteman sa. 902 00:49:53,632 --> 00:49:55,590 Se konsa, nan ka sa a gen nan yon pakèt moun sou sentaks isit la. 903 00:49:55,590 --> 00:49:59,980 Apre sa, mwen pral pèmèt ou gade nan li nan kay lè ou gade nan sa a. 904 00:49:59,980 --> 00:50:06,890 Men, nou ap defini inséré sa a operatè, **, ki pral Lè sa a pèmèt nou, 905 00:50:06,890 --> 00:50:09,840 pa defini ki sa sa fonksyon ** aktyèlman 906 00:50:09,840 --> 00:50:15,010 , nan aksepte yon men gòch bò ak yon bò men dwat, 907 00:50:15,010 --> 00:50:21,190 epi lè sa a retounen ekspozan an nan ki bò men gòch bò lanmè a men dwat. 908 00:50:21,190 --> 00:50:24,850 >> Se konsa, kounye a tout nan yon toudenkou mwen te kreye yon nouvo nimeratè. 909 00:50:24,850 --> 00:50:29,490 Se konsa, 2 ** 3 vle di 2 nan twazyèm pouvwa a. 910 00:50:29,490 --> 00:50:34,420 [Lide mouche SOUND] Sa a pa tèt li ta dwe fè w ap tankou, 911 00:50:34,420 --> 00:50:37,960 OK, vis C. mwen pral Swift tout wout la. 912 00:50:37,960 --> 00:50:38,740 Sa a se gwo. 913 00:50:38,740 --> 00:50:40,140 Sa a se trè kokenn. 914 00:50:40,140 --> 00:50:42,240 >> Menm si sa a se yon gwo egzanp. 915 00:50:42,240 --> 00:50:45,570 Men, mwen gen pa janm yon fwa deyò nan egzanp sa a aktyèlman 916 00:50:45,570 --> 00:50:46,800 defini operatè m 'pwòp. 917 00:50:46,800 --> 00:50:49,710 Men, toujou, li montre yon anpil nan pouvwa a nan Swift 918 00:50:49,710 --> 00:50:54,050 e poukisa sa a se aktyèlman reyèlman anpil fre. 919 00:50:54,050 --> 00:50:55,832 OK, repons lan se wi? 920 00:50:55,832 --> 00:50:57,790 ODYANS: Si ou se defini operatè pwòp ou a, 921 00:50:57,790 --> 00:51:02,940 ki jan ou konnen ou pa fè sa aksidantèlman eseye ak kreye yon operatè sa a, se 922 00:51:02,940 --> 00:51:06,040 nan yon kote nan C, tankou kache yon kote nan Swift, 923 00:51:06,040 --> 00:51:12,210 tankou yon yon sèl fènwa ke ou pa ka te wè anvan. 924 00:51:12,210 --> 00:51:15,050 >> DAN Armendariz: Se konsa, si w ap eseye yo defini operatè pwòp ou a, 925 00:51:15,050 --> 00:51:20,970 gen risk pou yo defini yon sèl sou yon operatè ki egziste deja. 926 00:51:20,970 --> 00:51:24,870 Ki ale nan yon nivo nan detay ki Mwen pa panse ke nou gen tan ale sou. 927 00:51:24,870 --> 00:51:27,620 Men sa se yon risk. 928 00:51:27,620 --> 00:51:31,320 E ke se an reyalite rezon ki fè yo trè poukisa Mwen pa t 'sèvi ak senbòl la Lambda, ki 929 00:51:31,320 --> 00:51:36,210 lè nou ap tape soti pouvwa a, anjeneral nou itilize 4 ti kras Lambda 5 oswa yon bagay 930 00:51:36,210 --> 00:51:40,560 tankou sa yo, jis lè nou ap Gchatting ami oswa kèlkeswa sa. 931 00:51:40,560 --> 00:51:43,660 Men, nan ka sa a, ki aktyèlman ta gen ki te koze yon kolizyon. 932 00:51:43,660 --> 00:51:46,450 Se konsa, mwen evite li jis paske Mwen te pase nan konnen nan ka sa a 933 00:51:46,450 --> 00:51:50,430 ki ki ta lakòz ki kolizyon. 934 00:51:50,430 --> 00:51:52,270 >> Tout dwa. 935 00:51:52,270 --> 00:51:55,080 Koulye a, malerezman, pou dènye sèt minit yo, 936 00:51:55,080 --> 00:51:57,410 Mwen gen kenbe mouche panse nou yon ti kras. 937 00:51:57,410 --> 00:52:00,230 Se konsa, pèmèt mwen montre w kèk lòt bagay yo tou. 938 00:52:00,230 --> 00:52:03,710 >> Nou te montre ou ide sa a nan gen sa yo fonksyon anonim, 939 00:52:03,710 --> 00:52:07,040 fèmti sa yo ki pèmèt ou kalite pase fonksyon alantou. 940 00:52:07,040 --> 00:52:08,100 Ou ka voye yo tounen. 941 00:52:08,100 --> 00:52:09,490 Ou ka manipile yo. 942 00:52:09,490 --> 00:52:11,790 Ou ka fè tout kalite bagay fou. 943 00:52:11,790 --> 00:52:14,850 >> Men, yon lòt bagay ki k ap pase yo itil 944 00:52:14,850 --> 00:52:19,740 se kapasite a, kòm opoze retounen moun fonksyon 945 00:52:19,740 --> 00:52:25,146 nan yon fonksyon, yo pase yon fonksyon kòm yon paramèt nan yon lòt fonksyon. 946 00:52:25,146 --> 00:52:30,430 Ou ta ka dwe panse byen poukisa sou Latè ta mwen vle fè yon bagay tankou sa? 947 00:52:30,430 --> 00:52:33,660 >> Oke, kite la di ke mwen vle pran operatè sa a ke mwen 948 00:52:33,660 --> 00:52:40,260 te travay sa difisil yo kreye epi aplike li nan yon pakèt moun sou nimewo diferan 949 00:52:40,260 --> 00:52:41,770 nan yon etalaj. 950 00:52:41,770 --> 00:52:46,700 Se konsa, nan ka sa a mwen gen yon etalaj de integers-- 1, 4, 7, 2, 5, 10, 56. 951 00:52:46,700 --> 00:52:48,080 Apre sa, mwen vle double yo tout. 952 00:52:48,080 --> 00:52:50,430 Fason ki ke nou ta tipikman fè l 'se yo jis ekri 953 00:52:50,430 --> 00:52:53,440 yon senp pou riban ki iterates sou tout nan yo 954 00:52:53,440 --> 00:52:57,140 ak fè kèk sòt de operasyon kare sou yo, 955 00:52:57,140 --> 00:53:02,700 Anthrax moun ki nouvo valè nan yon nouvo varyab, ou pito, yon nouvo etalaj isit la. 956 00:53:02,700 --> 00:53:07,370 Apre sa, valè a nan pwodiksyon an nan rezilta se lè sa a tout moun ki ranje, 957 00:53:07,370 --> 00:53:10,200 ou pito tout moun ki eleman kounye a okib. 958 00:53:10,200 --> 00:53:12,680 >> Apre sa, nou te ka fè menm bagay la bagay pou cubing li, 959 00:53:12,680 --> 00:53:15,360 men yon ti kras klòch alam Yo ta dwe pral koupe 960 00:53:15,360 --> 00:53:17,360 ki di ke petèt gen nan kèk fason ke nou ta 961 00:53:17,360 --> 00:53:19,860 kapab senplifye sa a yon ti kras. 962 00:53:19,860 --> 00:53:21,130 Lè an reyalite gen. 963 00:53:21,130 --> 00:53:25,320 E si nou te kapab kreye yon fonksyon ki pèmèt nou 964 00:53:25,320 --> 00:53:28,350 aksepte, kòm yon predatè, yon fonksyon? 965 00:53:28,350 --> 00:53:30,350 Se konsa, nan ka sa a, pran yon gade nan agiman sa yo. 966 00:53:30,350 --> 00:53:33,220 Nou pwal aksepte yon lis ki gen double. 967 00:53:33,220 --> 00:53:35,030 Lè sa a, nou ap ale aksepte yon fonksyon 968 00:53:35,030 --> 00:53:40,990 nan yon varyab rele f ki pral pran yon Double epi retounen yon Double. 969 00:53:40,990 --> 00:53:43,320 Ak pwodiksyon an antye nan fonksyon sa a tout antye 970 00:53:43,320 --> 00:53:47,310 rele mapeur ki pral retounen yon etalaj rele doub. 971 00:53:47,310 --> 00:53:52,380 >> Ki sa sa ta Lè sa a pèmèt mwen fè se repekte sou ke lis 972 00:53:52,380 --> 00:53:56,350 ak fè menm bagay la, men kounye a aplike ki fonksyon sou chak 973 00:53:56,350 --> 00:53:58,970 nan valè yo endividyèl nan ke lis. 974 00:53:58,970 --> 00:54:00,750 Se konsa, mwen pa vrèman konnen ki sa f se. 975 00:54:00,750 --> 00:54:02,010 Li pa enpòtan m '. 976 00:54:02,010 --> 00:54:06,530 Men, toutotan li pran nan yon Double, fè kèk operasyon sou li, 977 00:54:06,530 --> 00:54:08,640 ak Lè sa a retounen yon Double, mwen ta Lè sa a, 978 00:54:08,640 --> 00:54:13,415 kapab kat jeyografik ki fonksyon atravè chak eleman yon sèl nan lis la. 979 00:54:13,415 --> 00:54:16,270 980 00:54:16,270 --> 00:54:20,930 >> Apre sa, sa a ki kalite pwogram se rele pi wo lòd fonksyon, 981 00:54:20,930 --> 00:54:24,440 kote n ap pase fonksyon alantou kòm paramèt 982 00:54:24,440 --> 00:54:26,430 ak ap fè bagay sa yo ak fonksyon. 983 00:54:26,430 --> 00:54:29,640 Li nan sòt de tankou pran tout moun sa yo ide ki nou te aprann nan CS50 984 00:54:29,640 --> 00:54:31,390 ak pran yo sòt a li nan yon nivo siperyè-a. 985 00:54:31,390 --> 00:54:34,140 Lè sa a se tout bagay style CS51. 986 00:54:34,140 --> 00:54:37,080 Se konsa, nou pral ale nan pwofondè plis nan klas tankou sa. 987 00:54:37,080 --> 00:54:38,930 >> Men, sa a se tou enpòtan isit la paske nou 988 00:54:38,930 --> 00:54:42,010 wè yon anpil nan fonksyon ke yo itilize nan Swift 989 00:54:42,010 --> 00:54:45,590 ki esansyèlman fè sa a, kote nou gen 990 00:54:45,590 --> 00:54:48,300 kèk nimewo, gen kèk etalaj de chif yo. 991 00:54:48,300 --> 00:54:50,850 Nou pral konsa, etalaj nan mapeur nou an. 992 00:54:50,850 --> 00:54:55,770 E nou tou ale nan pase kèk fonksyon, ki 993 00:54:55,770 --> 00:54:57,950 nou te deja defini moute isit la. 994 00:54:57,950 --> 00:54:59,690 Li k ap pase yo dwe kare. 995 00:54:59,690 --> 00:55:02,220 Epi nou ap ale nan Lè sa a, kare tout nan moun ki nimewo 996 00:55:02,220 --> 00:55:04,710 epi estoke ki nan rezilta sa a isit la. 997 00:55:04,710 --> 00:55:07,280 998 00:55:07,280 --> 00:55:11,000 >> Se konsa, ka sa a nou te defini nou an fonksyon pwòp rele mapeur. 999 00:55:11,000 --> 00:55:15,370 Men, bagay sa a egzak se, an reyalite, bati nan Swift. 1000 00:55:15,370 --> 00:55:18,960 Gen yon varyete de fonksyon rele kat jeyografik. 1001 00:55:18,960 --> 00:55:21,520 Genyen yon fonksyon kat jeyografik, gen nan yon diminye fonksyon, 1002 00:55:21,520 --> 00:55:25,630 ak gen nan yon fonksyon filtre, ki esansyèlman aplike fonksyon 1003 00:55:25,630 --> 00:55:30,782 bay chak eleman yon sèl nan yon lis li modifye yo nan kèk fason. 1004 00:55:30,782 --> 00:55:34,510 >> ODYANS: Se konsa, depi w ap transfòme done yo nan yon lòt fòma 1005 00:55:34,510 --> 00:55:36,134 atravè yon fonksyon- 1006 00:55:36,134 --> 00:55:37,050 DAN Armendariz: Dwa. 1007 00:55:37,050 --> 00:55:39,420 Yeah, se konsa fonksyon an ke nou ap aksepte 1008 00:55:39,420 --> 00:55:41,790 ap transfòme done ki nan kèk fason. 1009 00:55:41,790 --> 00:55:44,700 Nan ka sa a, nou te swa kwadratur li, oswa nou te cubing li, 1010 00:55:44,700 --> 00:55:50,060 oswa reyèlman, nou te ka fè pa gen okenn operasyon sou li nan tout. 1011 00:55:50,060 --> 00:55:54,150 >> Men, kite m 'montre w Lè sa a, ki jan sa a ki pral fè yon gade nan pratik. 1012 00:55:54,150 --> 00:55:56,681 Epi ankò, m 'ap kouri yon ti jan nan tan. se konsa mwen pa se 1013 00:55:56,681 --> 00:55:59,430 ale nan pral kapab ale sou tout a kòd la sous isit la an detay. 1014 00:55:59,430 --> 00:56:00,721 Men, mwen ankouraje w fè sa. 1015 00:56:00,721 --> 00:56:03,850 Nou pral afiche li pi vit ke posib apre pale sa a. 1016 00:56:03,850 --> 00:56:07,610 >> Men, si ou pran yon gade nan sa a, asime ke nou gen yon lis ki gen nimewo, 1017 00:56:07,610 --> 00:56:10,260 yon etalaj nan nimewo nan sa a varyab rele nimewo. 1018 00:56:10,260 --> 00:56:16,670 Lè sa a, nou vle fè sa a operasyon filtre sou nimewo sa yo. 1019 00:56:16,670 --> 00:56:19,730 Se konsa, filtre se yon pi wo fonksyon lòd ke 1020 00:56:19,730 --> 00:56:24,660 aksepte yon etalaj epi tou yon fonksyon. 1021 00:56:24,660 --> 00:56:28,760 Yo, epi sou chak eleman nan ki etalaj, li fè ki fonksyon. 1022 00:56:28,760 --> 00:56:31,990 >> Si sa retounen fonksyon vre, li kenbe ki atik. 1023 00:56:31,990 --> 00:56:36,100 Si sa fonksyon retounen fo, li lanse lwen ki atik. 1024 00:56:36,100 --> 00:56:40,480 Lè sa a, li retounen yon lis ki se lè sa a te fè leve tout 1025 00:56:40,480 --> 00:56:44,360 nan tout sa yo atik ki te filtre. 1026 00:56:44,360 --> 00:56:47,150 >> Se konsa, nan yon lòt mo, sa a se lide a menm, Gradebook la. 1027 00:56:47,150 --> 00:56:50,800 Nou ta ka gen yon varyete de klas nan valè yo rele sa a nimewo. 1028 00:56:50,800 --> 00:56:55,590 Ta ka 100, ak 70, ak 40, sou sa ak pou fè. 1029 00:56:55,590 --> 00:56:59,110 Ki sa ki filtre sa a fè se avi ke sa a se ke sik Massachusetts Institute of Technology 1030 00:56:59,110 --> 00:57:01,310 pou yon fonksyon anonim. 1031 00:57:01,310 --> 00:57:05,980 Sa a se yon fonksyon anonim di ki paramèt la ke mwen aksepte 1032 00:57:05,980 --> 00:57:09,690 a pwal, si li gen plis pouvwa pase 70, 1033 00:57:09,690 --> 00:57:15,837 Lè sa a, sa a pral retounen vre, sa vle di pral ki atik dwe kenbe nan filtre sa a. 1034 00:57:15,837 --> 00:57:17,920 Se konsa nou gen yon ti jan plis konkrè sou sa a. 1035 00:57:17,920 --> 00:57:25,760 Si mwen gen sa a etalaj nan nimewo epi li konsiste de 100, 70, ak 40, 1036 00:57:25,760 --> 00:57:29,730 Mwen fè sa a filtre operasyon sou chak youn nan moun ki. 1037 00:57:29,730 --> 00:57:33,270 Se konsa, ke yon moun premye se sa a valè de 100. 1038 00:57:33,270 --> 00:57:36,770 100 pi gran pase oswa egal a 70 se vre, ki 1039 00:57:36,770 --> 00:57:41,950 vle di ke 100, yo kenbe yo nan kopi sa a nouvo nan etalaj sa a. 1040 00:57:41,950 --> 00:57:44,290 70 tou pase. 1041 00:57:44,290 --> 00:57:46,020 Men, 40 pa fè sa. 1042 00:57:46,020 --> 00:57:54,290 Se konsa, sa se retounen nan passingCount se etalaj la nan eleman 100 ak 70-- 1043 00:57:54,290 --> 00:57:57,410 100, vigil, 70. 1044 00:57:57,410 --> 00:57:59,870 Moun sa yo ki te de a sèlman atik ki te kenbe. 1045 00:57:59,870 --> 00:58:03,740 Se konsa, rezon ki fè mwen byen vit mache ale nan tout yon anpil nan sa yo kalite lòd segondè 1046 00:58:03,740 --> 00:58:08,680 bagay sa yo yo paske sa a se ke komen bagay ki ou pral wè nan Swift bèl 1047 00:58:08,680 --> 00:58:16,810 souvan, ap pèfòme kèk operasyon lè l sèvi avèk sa a sentaks fonksyon anonim. 1048 00:58:16,810 --> 00:58:18,450 >> Genyen kèk bagay fre. 1049 00:58:18,450 --> 00:58:24,730 Switch yo se reyèlman pwisan nan Swift, Mwen vle di jis tankou fou, fou ki pwisan. 1050 00:58:24,730 --> 00:58:28,250 Ou kapab sèvi ak switch, ak ou ka aktyèlman aplike yo 1051 00:58:28,250 --> 00:58:33,160 chenn, ki se kalite fou, ak fè bagay anpenpan tankou sa. 1052 00:58:33,160 --> 00:58:37,540 >> Men, nan dènye minit yo kèk, Mwen vle sote devan yo byen lwen 1053 00:58:37,540 --> 00:58:46,940 epi montre w yon egzanp espesifik sou fason nou ka kreye nan iOS app lè l sèvi avèk Swift. 1054 00:58:46,940 --> 00:58:49,040 Se konsa, lè w ap fè sa a, ou pral oblije pran 1055 00:58:49,040 --> 00:58:51,990 yon gade at-- sou Apple la dokiman yo, yo 1056 00:58:51,990 --> 00:58:56,084 gen yon anpil nan reyèlman bon tutoryèl pou kreye aplikasyon premye ou. 1057 00:58:56,084 --> 00:58:58,250 Apre sa, mwen ankouraje ou fè ki paske yo pran ou 1058 00:58:58,250 --> 00:59:04,110 nan tout etap sa yo nan sa ki egzakteman nan klike sou yo kreye yon aplikasyon iOS. 1059 00:59:04,110 --> 00:59:07,290 >> Men, isit la nou gen sa a app iOS. 1060 00:59:07,290 --> 00:59:10,960 Lè li nan yon app trè senp vrèman. 1061 00:59:10,960 --> 00:59:13,840 Si m 'kouri sa a, kite m' montre ou sa li sanble. 1062 00:59:13,840 --> 00:59:19,480 Tout li esansyèlman fè se li rale soti nan entènèt la yon dosye JSON 1063 00:59:19,480 --> 00:59:22,300 ke mwen te ki estoke sou yon sèvè. 1064 00:59:22,300 --> 00:59:26,310 Epi sa dosye JSON defini imaj ki pèmèt 1065 00:59:26,310 --> 00:59:31,680 m 'Lè sa a, sik atravè, sou mwen app, imaj ki soti nan sèvè wèb m 'yo. 1066 00:59:31,680 --> 00:59:32,880 >> Se konsa, mwen gen isit la getNextImage. 1067 00:59:32,880 --> 00:59:37,100 Li charj yon imaj soti nan entènèt la, ak Lè sa a montre l 'sou ekran an. 1068 00:59:37,100 --> 00:59:38,200 >> Se konsa, li trè senp. 1069 00:59:38,200 --> 00:59:41,550 Men, objektif la isit la se yo montre w kouman nou ka konbine bagay sa yo 1070 00:59:41,550 --> 00:59:47,820 soti nan lèt semèn yo kèk nan CS50 nan yon iOS aplikasyon vrè. 1071 00:59:47,820 --> 00:59:53,140 Nan lòt mo, petèt youn nan nan bagay sa yo ke ou pral vle fè 1072 00:59:53,140 --> 00:59:56,340 se genyen yon aplikasyon iOS ki ka rale done ki sòti nan entènèt la 1073 00:59:56,340 --> 00:59:59,070 epi montre itilizatè a kèk enfòmasyon. 1074 00:59:59,070 --> 01:00:03,130 Sa se antyèman pwen an nan sa a kòd sous isit la. 1075 01:00:03,130 --> 01:00:07,890 >> Se konsa, gen nan yon anpil yo dwe di sou ki jan fè aktyèl iOS devlopman. 1076 01:00:07,890 --> 01:00:12,860 Gen yon anpil nan fou sentaks ke nou pa gen pou wè byen ankò 1077 01:00:12,860 --> 01:00:15,580 tankou yon klas, ki sa yon klas aktyèlman se. 1078 01:00:15,580 --> 01:00:19,470 Nou ka lajman inyore ki pou tan an ke yo te. 1079 01:00:19,470 --> 01:00:23,250 >> Men, remake ke nou te genyen nan sa a yon varyete de bagay 1080 01:00:23,250 --> 01:00:27,720 ke nou te deja wè tankou fonksyon ki gen non espesifik. 1081 01:00:27,720 --> 01:00:32,650 Lè nou bay moun fonksyon non yo kòrèk 1082 01:00:32,650 --> 01:00:36,530 ke yo espere pa iOS, an reyalite sa a santi l yon ti jan majik. 1083 01:00:36,530 --> 01:00:40,300 Men, lè ou kreye yon iOS aplikasyon, gen 1084 01:00:40,300 --> 01:00:47,590 Men non fonksyon espesifik ki yo rele yo pa telefòn nan tèt li 1085 01:00:47,590 --> 01:00:52,440 kòm aplikasyon an se loading eseye yo kreye pwosesis la ki aktyèlman 1086 01:00:52,440 --> 01:00:54,787 kouri aplikasyon w lan. 1087 01:00:54,787 --> 01:00:58,120 Se konsa, ankò, gen nan yon anpil nan bagay sa yo ke mwen gen enteprete sou isit la yo nan lòd pou nou 1088 01:00:58,120 --> 01:01:00,570 pale sou sa a espesyalman. 1089 01:01:00,570 --> 01:01:06,050 Men, mwen ankouraje w fè yon gade nan petèt lòt seminè a iOS, men tou gen kèk 1090 01:01:06,050 --> 01:01:09,290 nan sou entènèt nan tutoryèl ki fè yon pi bon travay nan dekri 1091 01:01:09,290 --> 01:01:11,030 enfòmasyon ki espesifik. 1092 01:01:11,030 --> 01:01:15,760 >> Men, nou ka wè yon koup la bagay sa yo ke yo enteresan nan kòd la isit la. 1093 01:01:15,760 --> 01:01:17,950 Remake nou gen si deklarasyon. 1094 01:01:17,950 --> 01:01:20,400 By wout la, yon sèl enpòtan bagay sou si deklarasyon 1095 01:01:20,400 --> 01:01:24,860 se ke parantèz yo ozalantou nan Ekspresyon Boolean se si ou vle. 1096 01:01:24,860 --> 01:01:30,800 Men, aparèy òtopedik yo Curly yo pa si ou vle, pa gen pwoblèm konbyen kèk oswa liy anpil nan kòd 1097 01:01:30,800 --> 01:01:32,360 ou gen nan yon si deklarasyon. 1098 01:01:32,360 --> 01:01:38,670 Ou pa ka gen yon si deklarasyon san yo pa aparèy òtopedik Curly nan Swift. 1099 01:01:38,670 --> 01:01:41,000 >> Lè sa a se, byen, sòt de dwòl. 1100 01:01:41,000 --> 01:01:43,910 Men, gen nan rezon istorik pou sa. 1101 01:01:43,910 --> 01:01:46,180 Li nan sipoze sove-w nan tèt ou. 1102 01:01:46,180 --> 01:01:49,899 Tankou sa a pou egzanp, ou pa kapab elimine aparèy òtopedik yo Curly alantou ki 1103 01:01:49,899 --> 01:01:50,440 si deklarasyon. 1104 01:01:50,440 --> 01:01:52,730 Moun sa yo ki yo nan reyalite yo mande yo. 1105 01:01:52,730 --> 01:01:54,480 Se konsa, mwen ankouraje w pran yon gade nan sa a. 1106 01:01:54,480 --> 01:01:56,230 Men, gen nan yon sèl plis konstwi ke mwen vle 1107 01:01:56,230 --> 01:02:02,640 montre w sou Swift ki se nouvo nan Swift 2.0 konpare 1108 01:02:02,640 --> 01:02:08,460 ki pi gran vèsyon nan Swift, ki se sa ki annapre yo. 1109 01:02:08,460 --> 01:02:11,620 Se pou nou wè ki kote mwen te mete l 'isit la? 1110 01:02:11,620 --> 01:02:16,630 >> Se konsa, nan fonksyon sa a yo rele fetchJSON, fonksyon sa a 1111 01:02:16,630 --> 01:02:23,450 ki responsab pou rale ki JSON ranpli ki sòti nan yon URL, ki jis konsa k ap pase 1112 01:02:23,450 --> 01:02:26,310 yo dwe kouri sou IDE CS50 mwen. 1113 01:02:26,310 --> 01:02:28,580 Mwen jis te kòmanse Apache, mete dosye JSON mwen gen, 1114 01:02:28,580 --> 01:02:32,110 ak mwen se kapab Lè sa a, rale ke done ki sòti nan entènèt la lè l sèvi avèk 1115 01:02:32,110 --> 01:02:36,430 sa a fonksyon ak URL sa a, ki se ki ofri pa telefòn nan. 1116 01:02:36,430 --> 01:02:40,490 Li nan ki ofri pa yon bibliyotèk ke ou itilize lè 1117 01:02:40,490 --> 01:02:43,140 w ap fè kèk iOS devlopman app. 1118 01:02:43,140 --> 01:02:49,690 >> Avi isit la ki di ke gen sa a etranj sentaks konstwi rele gad. 1119 01:02:49,690 --> 01:02:53,530 E reyèlman tout sa a se nan Swift se yon fason pou verifye 1120 01:02:53,530 --> 01:02:56,870 ke kèk bagay gen te respekte anvan ou 1121 01:02:56,870 --> 01:03:00,000 kontinye ak rès la nan fonksyon an. 1122 01:03:00,000 --> 01:03:04,260 Se konsa, mwen te kapab gen, lè l sèvi avèk sa a ki kalite si ou vle, 1123 01:03:04,260 --> 01:03:10,530 Mwen te kapab yo te jwenn URL la pa kouri fonksyon sa a NSURL 1124 01:03:10,530 --> 01:03:16,640 epi estoke ki nan yon URL konstan, ak Lè sa a tcheke 1125 01:03:16,640 --> 01:03:20,820 yo wè si URL te nil, paske li te ale nan retounen yon kalite si ou vle. 1126 01:03:20,820 --> 01:03:25,660 Men, si li te nil, lè sa a mwen ta enprime soti yon erè ak Lè sa a retounen. 1127 01:03:25,660 --> 01:03:29,970 >> Men, olye de sa, ki sa gad palè pèmèt nou fè se ke bagay anpil, 1128 01:03:29,970 --> 01:03:34,550 men asire ke li se aktyèlman ka a ke url 1129 01:03:34,550 --> 01:03:38,020 ki te byen mete nan NSURL. 1130 01:03:38,020 --> 01:03:41,810 Men, si li se, lè sa a li sot sou sa a, epi li 1131 01:03:41,810 --> 01:03:46,110 pral pèmèt ou kontinye ak url ke nou fin byen defini. 1132 01:03:46,110 --> 01:03:48,830 Men, si se ka a ke url se pa sa byen defini, 1133 01:03:48,830 --> 01:03:52,550 si sa a fonksyon retounen yon erè oswa kèk lòt bagay inatandi 1134 01:03:52,550 --> 01:03:58,030 aktyèlman rive, sa a konstwi gad palè pèmèt nou Lè sa a, pwodiksyon ki erè 1135 01:03:58,030 --> 01:04:00,390 epi retounen imedyatman. 1136 01:04:00,390 --> 01:04:00,890 Wi? 1137 01:04:00,890 --> 01:04:04,839 >> ODYANS: Se konsa, li kalite a tankou yon si Lè sa a, lòt bagay? 1138 01:04:04,839 --> 01:04:07,130 DAN Armendariz: Li nan kalite Lè sa a, tankou yon si lòt bagay, wi, 1139 01:04:07,130 --> 01:04:14,200 eksepte ke url sa a se Lè sa a, defini pou tout bagay anba a sa a. 1140 01:04:14,200 --> 01:04:20,420 Si li pase gad palè sa a, lè sa a li pral aktyèlman dwe ranpli ak done 1141 01:04:20,420 --> 01:04:29,500 ak ka itilize nan rete nan kòd sous nan fonksyon ou yo. 1142 01:04:29,500 --> 01:04:33,790 Se konsa, mwen sispèk ke w ap ale nan kòmanse wè gad palè sa a kòm byen. 1143 01:04:33,790 --> 01:04:36,670 Yo epi yo dwe janm bliye jan Bondye sa. 1144 01:04:36,670 --> 01:04:46,270 >> Se konsa, jis gade nan yon koup nan lòt bagay sa yo, dwa sa-a isit la se sa ki, 1145 01:04:46,270 --> 01:04:53,377 ou panse, jis ki baze sou sa nou te pale de anvan an? 1146 01:04:53,377 --> 01:04:56,650 >> ODYANS: Panse li pral kouri nan lis la? 1147 01:04:56,650 --> 01:04:59,100 >> DAN Armendariz: Se konsa, sa a, se fèmen. 1148 01:04:59,100 --> 01:05:02,360 Sa a se yon fonksyon ke nou ap defini. 1149 01:05:02,360 --> 01:05:07,240 Epi n ap Anthrax ki fonksyon kòm yon agiman sa a fonksyon isit la. 1150 01:05:07,240 --> 01:05:09,120 >> ODYANS: [fèbl] si se pa nil. 1151 01:05:09,120 --> 01:05:11,470 Se konsa, li nan lis la, dwa? 1152 01:05:11,470 --> 01:05:15,450 >> DAN Armendariz: Si erè a se pa nil, se konsa ke is-- se konsa mwen gen woulo liv. 1153 01:05:15,450 --> 01:05:18,060 Oke, kite la wè, mwen kapab pa reyèlman woulo liv a dwat a isit la. 1154 01:05:18,060 --> 01:05:23,161 erè a se yon agiman ki se ke yo te pase bay fonksyon sa a anonim. 1155 01:05:23,161 --> 01:05:24,410 Sa a se yon fonksyon anonim. 1156 01:05:24,410 --> 01:05:25,480 Li pa gen okenn non. 1157 01:05:25,480 --> 01:05:29,850 Men, nou ap aksepte sa yo twa agiman, done, repons, ak erè. 1158 01:05:29,850 --> 01:05:33,590 Epi li se pral retounen anile, se konsa li pa pral retounen anyen. 1159 01:05:33,590 --> 01:05:37,910 Lè sa a se sa ki nan ki fonksyon. 1160 01:05:37,910 --> 01:05:41,961 Lè sa a, nou gen aksè andedan ki fonksyon nan chak nan agiman sa yo. 1161 01:05:41,961 --> 01:05:45,650 1162 01:05:45,650 --> 01:05:48,679 >> Se konsa, li yon gwo toubouyon toune nan lang lan. 1163 01:05:48,679 --> 01:05:50,470 Men, mwen espere ke ak sa a, èspere ke jan ou pran 1164 01:05:50,470 --> 01:05:54,490 yon gade nan kèk nan tutoryèl yo espesifik nan iOS devlopman ak Swift, 1165 01:05:54,490 --> 01:05:57,481 espesyalman si ou ale nan Apple a pwomotè page-- entènèt 1166 01:05:57,481 --> 01:05:59,980 yo gen yon anpil nan reyèlman bon tutoryèl yo debarase ou te kòmanse. 1167 01:05:59,980 --> 01:06:05,010 Men, èspere ke jis sa a èdtan nan pale sou sentaks la li menm te ban 1168 01:06:05,010 --> 01:06:08,760 ou ase jwenn te kòmanse ak sa. 1169 01:06:08,760 --> 01:06:12,950 >> N ap afiche tout nan sous sa a Kòd sou sit entènèt la seminè 1170 01:06:12,950 --> 01:06:17,800 pi vit ke posib, epi tou li glisad yo kidonk, ou gen yon referans pou tout moun. 1171 01:06:17,800 --> 01:06:20,530 Men, bon chans ak pwojè ou a. 1172 01:06:20,530 --> 01:06:23,640 Ak di ou mèsi tout anpil pou vini yo. 1173 01:06:23,640 --> 01:06:26,990 >> [Aplodisman] 1174 01:06:26,990 --> 01:06:28,026