1 00:00:00,000 --> 00:00:03,332 >> [CHWARAE CERDDORIAETH] 2 00:00:03,332 --> 00:00:06,200 3 00:00:06,200 --> 00:00:09,590 >> DAN AMRMENDARIZ: Mae pawb, croesawu i'r seminar CS50, 4 00:00:09,590 --> 00:00:11,690 iOS App Datblygu gyda Swift. 5 00:00:11,690 --> 00:00:15,690 Rwy'n Dan Armendariz, ac rwy'n preceptor o wyddoniaeth gyfrifiadurol yma yn Harvard. 6 00:00:15,690 --> 00:00:21,510 >> Ac yr awr nesaf yn mynd i fod taith corwynt o gymaint o bethau 7 00:00:21,510 --> 00:00:25,160 am y pwnc hwn fel y gallwn ni ffitio. 8 00:00:25,160 --> 00:00:29,170 Byddaf yn postio cyfan o'r cod ffynhonnell y byddwch yn gweld heddiw ar-lein. 9 00:00:29,170 --> 00:00:31,990 Efallai na fyddwn yn gallu mewn gwirionedd yn mynd dros bopeth 10 00:00:31,990 --> 00:00:34,810 fy mod fy mod yn dangos i chi yn yr awr hon. 11 00:00:34,810 --> 00:00:37,580 Ond o leiaf, gobeithio, drwy sylwadau'r cod ffynhonnell, 12 00:00:37,580 --> 00:00:40,830 byddwch yn gallu i geisio chyfrif i maes beth yn union sy'n digwydd i'r pethau hynny 13 00:00:40,830 --> 00:00:42,950 nad ydym yn hollol cyrraedd. 14 00:00:42,950 --> 00:00:46,970 >> At ei gilydd, mae'r strwythur Bydd sgwrs heddiw fel a ganlyn. 15 00:00:46,970 --> 00:00:52,820 Byddwn yn dechrau allan gwneud rhywfaint sylfaenol cystrawen gyda'r iaith Swift, 16 00:00:52,820 --> 00:00:56,290 mynd i mewn i rai o'r mwyaf datblygedig cystrawen yr iaith Swift. 17 00:00:56,290 --> 00:00:59,560 Oherwydd bod yr iaith yn wirioneddol fodern ac mae'n 18 00:00:59,560 --> 00:01:02,110 Mae gan lawer o lefel uchel nodweddion, pethau nad ydym wedi 19 00:01:02,110 --> 00:01:06,600 a welir yn C drwy gydol CS50, neu hyd yn oed rhai ieithoedd eraill 20 00:01:06,600 --> 00:01:09,310 ein bod ni wedi dechrau defnyddio mewn CS50 fel PHP, 21 00:01:09,310 --> 00:01:12,670 felly yr wyf yn mynd i gael i geisio cyflwyno hefyd rai pynciau sy'n 22 00:01:12,670 --> 00:01:18,580 yn gysylltiedig â ieithoedd lefel uwch efallai na fyddwch yn gweld yn fanwl yn CS50, 23 00:01:18,580 --> 00:01:21,380 ond byddwch yn gweld yn nes ymlaen dosbarthiadau cyfrifiadureg. 24 00:01:21,380 --> 00:01:25,290 Felly, mae'n mynd i fod yn llawn awr dynn. 25 00:01:25,290 --> 00:01:28,897 Ac mae croeso i chi gadewch i mi yn gwybod os oes gennych unrhyw gwestiynau. 26 00:01:28,897 --> 00:01:30,730 Felly, os oes gennych ddiddordeb wrth wneud datblygu 27 00:01:30,730 --> 00:01:34,442 gyda Swift, neu mewn gwirionedd unrhyw ddatblygiad app iOS, 28 00:01:34,442 --> 00:01:35,900 mae yna un neu ddau o ofynion. 29 00:01:35,900 --> 00:01:39,940 Yn gyntaf oll, mae'n rhaid i chi fod yn defnyddio Mac, yn rhedeg yn yr enghreifftiau 30 00:01:39,940 --> 00:01:43,880 ein bod yn mynd i gael ei ddefnyddio heddiw, fersiwn cymharol newydd o OS 31 00:01:43,880 --> 00:01:46,580 X. Yn yr achos hwn, rwy'n rhedeg X 10.5. 32 00:01:46,580 --> 00:01:48,600 Gallwch fod yn rhedeg 10.11 os ydych yn dymuno. 33 00:01:48,600 --> 00:01:52,430 Ond mae popeth eich bod chi'n mynd i gweler yn cynnwys Xcode 7 ac yn ddiweddarach, 34 00:01:52,430 --> 00:01:56,271 sydd â'r fersiwn diweddaraf o Swift, sydd yn Swift 2.0. 35 00:01:56,271 --> 00:01:58,270 Mae hyn mewn gwirionedd yn eithaf wahaniaeth pwysig. 36 00:01:58,270 --> 00:02:01,510 Mae llawer o gystrawen wedi newid yn eithaf sylweddol 37 00:02:01,510 --> 00:02:05,890 mewn rhai achosion, o Swift 1.0, a ryddhawyd y llynedd, 38 00:02:05,890 --> 00:02:08,514 i Swift 2.0, a oedd yn dim ond yn dod allan gostyngiad hwn. 39 00:02:08,514 --> 00:02:09,889 Felly rydym yn mynd i ddangos Swift 2.0. 40 00:02:09,889 --> 00:02:13,020 Mae llawer o'r pethau a fyddwch yn chwilio am ar-lein 41 00:02:13,020 --> 00:02:18,040 pan fyddwch yn ceisio cael ychwanegol gwybodaeth am amrywiaeth o bethau, 42 00:02:18,040 --> 00:02:20,710 efallai y byddwch am yn benodol chwilio am Swift 2 43 00:02:20,710 --> 00:02:24,950 yn hytrach na dim ond plaen hen Swift i wneud yn siŵr eich bod yn cael y gystrawen gywir. 44 00:02:24,950 --> 00:02:26,920 >> Mewn gwirionedd, mae hyn yn wir yn gyffredinol. 45 00:02:26,920 --> 00:02:31,210 Mae 'na swm cyflym o ddatblygiad digwydd yn yr iaith Swift 46 00:02:31,210 --> 00:02:35,110 byth ers Apple rhyddhau ei fod, yr wyf yn meddwl beth, mae wedi bod ychydig dros flwyddyn 47 00:02:35,110 --> 00:02:36,370 yn awr. 48 00:02:36,370 --> 00:02:39,080 Ac mae pethau wedi newid yn ddramatig yn yr amser hwnnw. 49 00:02:39,080 --> 00:02:42,160 Ac felly peidiwch cael ei rhwystredig os, pan ydych yn chwilio o gwmpas 50 00:02:42,160 --> 00:02:48,310 ar gyfer pynciau ar Swift neu sut i gyflawni rhywbeth gan ddefnyddio peth cod enghraifft 51 00:02:48,310 --> 00:02:51,210 neu rywbeth nad yw'n gwneud hynny yn gweithio mewn gwirionedd ar Swift 2.0. 52 00:02:51,210 --> 00:02:53,790 Gwnewch yn siŵr eich bod yn edrych yn benodol ar gyfer y fersiwn 53 00:02:53,790 --> 00:02:58,690 i geisio lleihau effeithiau gwahanol fersiynau a mathau hynny o beth. 54 00:02:58,690 --> 00:03:02,470 >> Byddaf yn ceisio nodi dim ond rhai pethau sy'n wahanol i fersiynau hŷn. 55 00:03:02,470 --> 00:03:03,970 Ond mae'n rhywbeth i wylio allan am. 56 00:03:03,970 --> 00:03:06,770 Yn ôl pob tebyg sy'n mynd i fod yn un o'r cur pen mwyaf 57 00:03:06,770 --> 00:03:11,010 y byddwch yn eu cael gyda Swift yw dod o hyd Enghraifft cod sy'n hŷn, hyd yn oed 58 00:03:11,010 --> 00:03:14,050 gan ychydig o fisoedd, yn ceisio defnyddio yn eich prosiect yn fwy modern. 59 00:03:14,050 --> 00:03:15,430 Ac mae'n dim ond nid yn unig yn gweithio. 60 00:03:15,430 --> 00:03:18,530 Eich bod yn cael gwallau compiler, cystrawen camgymeriadau, pob math o bethau crazy. 61 00:03:18,530 --> 00:03:21,580 Felly, dim ond bod yn amyneddgar gyda hynny, a byddwch, gobeithio, 62 00:03:21,580 --> 00:03:24,200 cael profiad 'n bert' n glws gyda Swift yn gyffredinol. 63 00:03:24,200 --> 00:03:28,430 >> Nawr gallwch mewn gwirionedd yn join-- ac yr wyf yn gobeithio rydym mewn gwirionedd yn dal i gael y year-- hwn 64 00:03:28,430 --> 00:03:30,910 CS 50 oed Apple app tîm datblygu, a oedd yn 65 00:03:30,910 --> 00:03:34,680 Bydd yn caniatáu i chi osod unrhyw apps yr ydych yn creu ar eich dyfeisiau iOS. 66 00:03:34,680 --> 00:03:39,190 Felly cymerwch olwg ar URL hwn os oes gennych ddiddordeb mewn gwneud hynny. 67 00:03:39,190 --> 00:03:41,450 >> Felly, dim ond un neu ddau o pethau am Swift ei hun. 68 00:03:41,450 --> 00:03:43,580 Mae'n iaith a luniwyd. 69 00:03:43,580 --> 00:03:45,870 Ond byddwch yn gweld bod rhai o'r nodweddion a ddefnyddiwn 70 00:03:45,870 --> 00:03:50,650 caniatáu iddo gael ei ddefnyddio hefyd mewn tipyn fel ddehongli ffordd hefyd. 71 00:03:50,650 --> 00:03:56,350 >> Mae llawer o gystrawen ei fenthyca o C. Mae'n seiliedig ac yn ysgrifenedig yn C. 72 00:03:56,350 --> 00:04:00,400 Ac felly byddwn yn gweld bod mae yna lawer o siopau cludfwyd 73 00:04:00,400 --> 00:04:04,450 oddi wrth eich gwybodaeth bresennol o C a allwn porthladd i Swift. 74 00:04:04,450 --> 00:04:07,290 >> Ond mae yna bethau y ei gwneud yn wahanol iawn i C. 75 00:04:07,290 --> 00:04:08,860 Mae wedi ei deipio yn gryf iawn. 76 00:04:08,860 --> 00:04:10,380 Mae rheoli cof awtomatig. 77 00:04:10,380 --> 00:04:13,170 Nid ydych yn mynd i gael i defnyddio malloc neu unrhyw le am ddim. 78 00:04:13,170 --> 00:04:15,110 Mae'n gynllunio ar gyfer cyffredinolrwydd. 79 00:04:15,110 --> 00:04:19,480 Felly, mewn geiriau eraill, gallwch ei ddefnyddio mewn pob math o gyd-destunau, gan Apple Watch 80 00:04:19,480 --> 00:04:26,290 i iPhone yr holl ffordd i fyny at OS X, a hyd yn oed rhai gweinyddwyr, hyd yn oed rhai sgriptio. 81 00:04:26,290 --> 00:04:28,400 Ond byddwn yn gweld bod y cymorth ar gyfer sgriptio 82 00:04:28,400 --> 00:04:31,360 Nid yw hollol hyd yma fel y mae mewn ieithoedd eraill. 83 00:04:31,360 --> 00:04:34,930 Felly mae'r rhan fwyaf tebygol, byddwch yn defnyddio mae hyn yn arbennig ar gyfer datblygu 84 00:04:34,930 --> 00:04:37,060 ar eich Mac neu eich iPhone. 85 00:04:37,060 --> 00:04:40,150 >> Ac mae ganddi lawer o nodweddion modern. 86 00:04:40,150 --> 00:04:43,380 Ac mae llawer o pethau hyn yn bethau sy'n rydym yn mynd i geisio mynd i'r afael heddiw, 87 00:04:43,380 --> 00:04:47,590 ond hefyd ein pynciau sy'n dweud y gwir, gallwn neilltuo cyrsiau cyfan. 88 00:04:47,590 --> 00:04:50,140 Yn wir, CS 51, sef cynnig semester nesaf, 89 00:04:50,140 --> 00:04:53,990 yn canolbwyntio llawer ar y pynciau hyn sy'n cael eu disgrifio isod. 90 00:04:53,990 --> 00:04:56,781 Felly, gallwch treulio semester cyfan deall y pethau hyn. 91 00:04:56,781 --> 00:04:58,530 Ond rydyn ni'n mynd i roi cynnig ar i fynd drwyddynt 92 00:04:58,530 --> 00:05:00,800 o leiaf yn ddigon bod chi Gall deall beth sydd 93 00:05:00,800 --> 00:05:03,700 digwydd pan fyddwch yn edrych mewn rhaglen Swift 94 00:05:03,700 --> 00:05:07,310 a gallu darnia eich ffordd drwyddo ar gyfer y prosiect terfynol. 95 00:05:07,310 --> 00:05:10,780 >> Bellach yn un o'r ffyrdd gorau y gallwch gael gwybodaeth ychwanegol am hyn 96 00:05:10,780 --> 00:05:14,700 yn dweud y gwir dim ond drwy Afalau ' Darperir dogfennau ar gyfer Swift. 97 00:05:14,700 --> 00:05:16,930 Mae llawer o APIs sydd ar gael. 98 00:05:16,930 --> 00:05:21,170 Ac mae hyn yn sylfaen gartref da i chi i chwilio am, pethau penodol sy'n eich 99 00:05:21,170 --> 00:05:23,020 am ei wneud gyda API ymwneud iOS. 100 00:05:23,020 --> 00:05:26,350 Os ydych am ddefnyddio'r camera ar gyfer enghraifft, gallwch dechrau edrych fan hyn, 101 00:05:26,350 --> 00:05:32,540 ac hefyd yn defnyddio Google ac Stack Gorlif gymaint ag arfer. 102 00:05:32,540 --> 00:05:36,670 >> Unrhyw gwestiynau am hyn cyn i ni neidio i'r dde i mewn? 103 00:05:36,670 --> 00:05:37,880 Iawn. 104 00:05:37,880 --> 00:05:38,700 Gadewch i ni symud ymlaen. 105 00:05:38,700 --> 00:05:42,620 >> Felly yn gyntaf, mae gen i nifer o ffeiliau enghraifft. 106 00:05:42,620 --> 00:05:46,040 Ac yr wyf i'n mynd i geisio gamu drwyddynt yn gymharol gyflym. 107 00:05:46,040 --> 00:05:49,190 Mae hyn yn y ffeil Hello Byd ar gyfer Swift. 108 00:05:49,190 --> 00:05:51,050 Mae'n syml iawn. 109 00:05:51,050 --> 00:05:54,360 Mae ffordd fwy sylwadau na sydd cod gwirioneddol. 110 00:05:54,360 --> 00:05:57,100 Sylwch ar y cod gwirioneddol ar y gwaelod iawn ar linell 14. 111 00:05:57,100 --> 00:05:57,980 Mae'n dweud print. 112 00:05:57,980 --> 00:05:59,820 Ac yna mae'n swyddogaeth alwad. 113 00:05:59,820 --> 00:06:03,010 Rydym yn pasio i mewn iddo yn llinyn o'r enw Helo cs50. 114 00:06:03,010 --> 00:06:04,750 Sylwch fod does dim hanner colon. 115 00:06:04,750 --> 00:06:07,010 Sylwch fod does dim prif int. 116 00:06:07,010 --> 00:06:10,392 Mae unrhyw un o'r cruft a oedd gennym gyda C. 117 00:06:10,392 --> 00:06:15,020 Pan fyddwn yn defnyddio Swift yn y modd hwn, sydd yn ysgrifenedig yn unig mewn ffeil testun 118 00:06:15,020 --> 00:06:18,340 a'i storio ar fy nghyfrifiadur, yna Gallaf lunio a'i redeg. 119 00:06:18,340 --> 00:06:20,920 >> Sylwch fod yma rwy'n Nid yw defnyddio'r IDE CS50. 120 00:06:20,920 --> 00:06:24,460 Mae hyn yn tybio fy mod rhedeg ac fy mod ar OS X, 121 00:06:24,460 --> 00:06:27,870 ac yr wyf wedi Xcode gosod yn barod ar y peiriant yma er mwyn i hyn 122 00:06:27,870 --> 00:06:29,080 i swyddogaeth mewn gwirionedd. 123 00:06:29,080 --> 00:06:33,349 Ond dim ond ffeil testun arferol mae hyn yn y gallwn wedyn lunio a golygu. 124 00:06:33,349 --> 00:06:34,890 Felly, gadewch i ni weld sut y mae hyn yn gweithio mewn gwirionedd. 125 00:06:34,890 --> 00:06:37,430 Beth os wyf am i lunio ei? 126 00:06:37,430 --> 00:06:40,450 1.swift swiftc. 127 00:06:40,450 --> 00:06:42,960 Ar ôl eiliad neu ddau, mae'n yn gweld bod gennym yn awr 128 00:06:42,960 --> 00:06:45,360 luniwyd hyn i mewn i ffeil o'r enw 1. 129 00:06:45,360 --> 00:06:51,090 Ac yn awr rydym wedi argraffu ein CS50, ein cais Hello World yn hytrach. 130 00:06:51,090 --> 00:06:54,690 >> Hysbysiad un peth arall fel dda yw bod yn ddiofyn, 131 00:06:54,690 --> 00:07:00,090 nid oedd gennym i fewnbynnu a / n i argraffu llinell newydd. 132 00:07:00,090 --> 00:07:05,315 Yn ddiofyn, y swyddogaeth print yn Bydd Swift argraffu llinell newydd i chi. 133 00:07:05,315 --> 00:07:09,284 Gallwch pasio dewisol ychwanegol paramedr i ddweud iddo beidio â gwneud hynny. 134 00:07:09,284 --> 00:07:10,950 Ond mae Google am fwy o wybodaeth am hynny. 135 00:07:10,950 --> 00:07:13,450 Yn ddiofyn, bydd yn gwneud y llinell print. 136 00:07:13,450 --> 00:07:16,420 >> Mae pob hawl, felly gadewch i ni symud ymlaen yna i rai pethau eraill. 137 00:07:16,420 --> 00:07:18,620 Felly, sut y gallwn mewn gwirionedd ddiffinio newidynnau? 138 00:07:18,620 --> 00:07:21,960 Gallwn wneud hynny'n defnyddio un o ddau ddull. 139 00:07:21,960 --> 00:07:26,122 Ac mae'r un yr wyf am ei ddweud wrthych am y tro cyntaf yw diffiniad osod hwn. 140 00:07:26,122 --> 00:07:27,830 Ac mae hyn yn bwysig oherwydd yn effeithiol 141 00:07:27,830 --> 00:07:30,240 yr hyn rydym yn ei wneud yn diffinio gyson. 142 00:07:30,240 --> 00:07:34,010 Rydym yn mynd i greu amrywiol, neu yn hytrach enw a elwir yn gyson, 143 00:07:34,010 --> 00:07:38,200 darparu ato rai data-- mewn yr achos hwn, y llinyn Dan. 144 00:07:38,200 --> 00:07:40,630 Ond drwy ddefnyddio osod hwn allweddair, yr ydym yn dweud 145 00:07:40,630 --> 00:07:43,860 bod hyn variable-- neu eto constant-- Gelwir 146 00:07:43,860 --> 00:07:46,220 byth enw yn mynd i gael ei newid. 147 00:07:46,220 --> 00:07:50,120 Mae'n mynd i fod yn ddigyfnewid drwy gydol hyd y rhaglen hon 148 00:07:50,120 --> 00:07:53,100 neu drwy gydol y hyd y cyd-destun 149 00:07:53,100 --> 00:07:55,390 bod y newidyn ar gael. 150 00:07:55,390 --> 00:08:00,096 >> Mae hyn yn bwysig iawn pan mae gennych rhywfaint o ddata nad yw'n 151 00:08:00,096 --> 00:08:02,970 mynd i newid yn eich rhaglen, a byddwch yn gweld amrywiaeth o enghreifftiau 152 00:08:02,970 --> 00:08:06,790 ynghylch pryd yr ydym am eu defnyddio gadewch yn erbyn y gystrawen arall, 153 00:08:06,790 --> 00:08:11,040 mae'n bwysig eich bod yn defnyddio gadael lle bo hynny'n bosibl gan fod hyn yn hysbysu 154 00:08:11,040 --> 00:08:13,740 yr iaith ei fod yn ddim yn mynd i gael ei newid, 155 00:08:13,740 --> 00:08:16,590 a gall berfformio mewn gwirionedd llawer o optimeiddiad 156 00:08:16,590 --> 00:08:19,560 i wella cyflymder a diogelwch eich rhaglen. 157 00:08:19,560 --> 00:08:24,480 A thrwy diogelwch, nid wyf yn golygu gadael i mae'n damwain gyda gwallau crazy 158 00:08:24,480 --> 00:08:27,910 y gallem fod gyfarwydd â gweld yn C. 159 00:08:27,910 --> 00:08:32,460 >> Yna, gallwn ddefnyddio rhyngosod llinyn crynhoi hyn o fewn llinyn. 160 00:08:32,460 --> 00:08:35,200 Felly, gallwn weld yn hyn llinell argraffu, argraffu helo, 161 00:08:35,200 --> 00:08:38,950 ac yna gan ddefnyddio parens agored slaes, ac yna enw fy amrywiol, 162 00:08:38,950 --> 00:08:41,809 yn yr achos hwn yn gyson, cau'r cromfachau. 163 00:08:41,809 --> 00:08:46,400 Im 'yn y bôn, yna rhoi'r cynnwys y newidyn gelwir hyn enw 164 00:08:46,400 --> 00:08:50,240 tu mewn i'r llinyn ac yna argraffu'r canlyniad yno. 165 00:08:50,240 --> 00:08:54,070 >> Mae un newid arall at y ffeil hon sef bod gennyf, ar yr union uchaf, 166 00:08:54,070 --> 00:08:57,340 roi mewn llinell shebang, a oedd yn y bôn yn unig yn pennu 167 00:08:57,340 --> 00:09:00,180 yr wyf am ei ddefnyddio Cyfieithydd Swift, a oedd yn 168 00:09:00,180 --> 00:09:04,190 yn golygu nad oes gennyf unrhyw mwy o amser i llunio y rhaglen benodol hon. 169 00:09:04,190 --> 00:09:06,567 Gall Fi jyst hidla 'fel ei sgript ei hun. 170 00:09:06,567 --> 00:09:09,400 Ond mae hyn yn, yn yr achos hwn, y tu ôl i'r llenni sy'n cael eu llunio ac wedyn 171 00:09:09,400 --> 00:09:10,030 cael eu rhedeg. 172 00:09:10,030 --> 00:09:13,540 Dim ond anweledig i ni. 173 00:09:13,540 --> 00:09:15,880 >> Mae pob hawl, felly gadewch i ni symud ymlaen. 174 00:09:15,880 --> 00:09:19,650 Felly mae 'na ychydig o dwyll a ddigwyddodd ychydig cyn. 175 00:09:19,650 --> 00:09:23,230 Dangosais wrthych fy mod Gallai ddiffinio gyson. 176 00:09:23,230 --> 00:09:25,490 A gallwn ddarparu rhywfaint o ddata i wneud hynny. 177 00:09:25,490 --> 00:09:29,240 Ond yn yr achos hwn, yn sylwi nad oeddwn yn gwneud mewn gwirionedd yn nodi'r math o ddata 178 00:09:29,240 --> 00:09:29,820 ei fod yn. 179 00:09:29,820 --> 00:09:32,780 A dyna oherwydd bod y compiler, gall Swift 180 00:09:32,780 --> 00:09:36,910 casglu y math o ddata yn seiliedig yn unig ar y data yr wyf yn ei roi i mewn iddo. 181 00:09:36,910 --> 00:09:41,760 Oherwydd ei fod yn gwybod bod drwy werthuso hon amrywiol iawn yma, yr hawl hon data 182 00:09:41,760 --> 00:09:43,370 yma, mae'n gwybod ei fod yn llinyn. 183 00:09:43,370 --> 00:09:48,690 Ac felly yr enw gyson felly yw mynd i fod yn llinyn hefyd. 184 00:09:48,690 --> 00:09:52,730 >> Ond gallwn hefyd fod yn eglur am y math sy'n 185 00:09:52,730 --> 00:09:55,790 yr ydym yn mynd i'w ddefnyddio ar gyfer cysonion neu newidynnau 186 00:09:55,790 --> 00:10:01,590 trwy ddefnyddio cystrawen hwn instead-- gadewch Llinynnol enw colon hafal 187 00:10:01,590 --> 00:10:05,530 Dan, sydd yn yr achos yn golygu ein bod yn mynd i ddiffinio enw o'r enw gyson. 188 00:10:05,530 --> 00:10:07,150 Mae'n mynd i fod o fath Llinynnol. 189 00:10:07,150 --> 00:10:10,550 Ac mae'r gwerth yn mynd i fod Dan. 190 00:10:10,550 --> 00:10:12,550 Nawr bod y ffordd arall sy'n gallwn greu variables-- 191 00:10:12,550 --> 00:10:15,549 ac mae'r rhain yn newidynnau mutable, a oedd yn yn golygu ein bod, mewn gwirionedd, yn mynd 192 00:10:15,549 --> 00:10:19,670 i newid eu cynnwys rywbryd yn y cyfnod y cyd-destun 193 00:10:19,670 --> 00:10:23,890 bod y newidyn yn defined-- ydym Defnyddiwch y gair allweddol var yn hytrach na gadael i. 194 00:10:23,890 --> 00:10:27,400 Ond unwaith eto, yn ddiofyn, oni bai eich bod yn gwybod bod angen i chi drin data hwnnw, 195 00:10:27,400 --> 00:10:30,510 ceisiwch ddefnyddio gadael am gwelliannau perfformiad. 196 00:10:30,510 --> 00:10:33,740 >> Yn yr achos hwn, gallaf wedyn nodi'r math o ddata 197 00:10:33,740 --> 00:10:37,650 ein bod yn disgwyl i fod tu mewn y newidyn newydd o'r enw label. 198 00:10:37,650 --> 00:10:38,800 Mae'n mynd i fod yn llinyn. 199 00:10:38,800 --> 00:10:43,030 Ac rydym yn mynd i wedyn concatenate dau llinynnau at ei gilydd, y llinyn helo, 200 00:10:43,030 --> 00:10:48,070 ac y llinyn gynrychiolir gan y amrywiol, neu yn hytrach yr enw gyson. 201 00:10:48,070 --> 00:10:50,660 >> Felly, mae hyn yn braf gan fod hyn yn braidd PHP fel yn ein bod yn 202 00:10:50,660 --> 00:10:52,250 cael concatenation llinyn yn hawdd iawn. 203 00:10:52,250 --> 00:10:56,350 Nid oes rhaid i Rydym yn awtomatig defnyddio unrhyw fath o reolaeth cof 204 00:10:56,350 --> 00:11:00,580 i gynyddu maint a gwneud unrhyw fath o bethau doniol yno. 205 00:11:00,580 --> 00:11:05,040 Mae hyn yn gweithio fel y byddem yn disgwyl mewn gwirionedd. 206 00:11:05,040 --> 00:11:09,370 >> Mae pob hawl, unrhyw gwestiynau am hyn? 207 00:11:09,370 --> 00:11:12,520 >> Nawr bod y rheswm arall y mae angen i chi y gallu 208 00:11:12,520 --> 00:11:15,490 i allu diffinio beth math o newidynnau data rhifol yn 209 00:11:15,490 --> 00:11:18,170 oherwydd weithiau nid ydym yn ei wneud eisiau ymgychwyn newidynnau 210 00:11:18,170 --> 00:11:21,080 gyda rhywfaint o ddata yn y pwynt o ddiffiniad. 211 00:11:21,080 --> 00:11:23,500 Felly, yn yr achos hwn, gadewch i ni ddweud yr wyf am ddechrau mewnbynnu 212 00:11:23,500 --> 00:11:25,040 rhai graddau mewn llyfr gradd. 213 00:11:25,040 --> 00:11:27,530 Wel, yr wyf yn gwybod bod un o'r newidynnau yr wyf am ei fod yn 214 00:11:27,530 --> 00:11:30,280 yn mynd i fod yn radd mutable. 215 00:11:30,280 --> 00:11:33,010 Ac rydym hefyd yn gwybod ein bod yn am iddo fod yn gyfanrif. 216 00:11:33,010 --> 00:11:36,030 Ond efallai nad ydym yn ei wneud eto cael y radd honno ar gael. 217 00:11:36,030 --> 00:11:39,570 >> Yn Swift, rhaid i chi diffinio'r math o ddata 218 00:11:39,570 --> 00:11:44,000 sy'n gysylltiedig â amrywiadwy neu adael gyson 219 00:11:44,000 --> 00:11:47,840 cyn y gallwch mewn gwirionedd defnyddiwch y newidyn. 220 00:11:47,840 --> 00:11:51,170 Oherwydd ei fod yn cael ei deipio yn gryf, mae'n rhaid i chi gysylltu math 221 00:11:51,170 --> 00:11:52,890 gyda newidynnau hyn. 222 00:11:52,890 --> 00:11:56,120 >> Felly, yn yr achos hwn, os nad wyf i wedi yn iawn ymgychwyn y cyntaf gyda rhywfaint o werth, 223 00:11:56,120 --> 00:12:00,520 yna mae angen i mi ddweud wrth Swift beth Yr wyf yn disgwyl y math data i fod. 224 00:12:00,520 --> 00:12:02,650 Ac mae'n mynd i aros hynny un math data 225 00:12:02,650 --> 00:12:05,780 drwy gydol hanes y rhaglen hon. 226 00:12:05,780 --> 00:12:10,050 >> Nawr efallai y cewch eich temtio cyn gynted ag y Rwyf wedi creu y newidyn radd 227 00:12:10,050 --> 00:12:13,530 ac ar yr amod ei fod yn cyfanrif o 100, yn awr os byddaf 228 00:12:13,530 --> 00:12:18,540 eisiau ceisio concatenate llinyn gyda'r cyfanrif, 229 00:12:18,540 --> 00:12:21,610 Efallai chael eich temtio i barhau i ddefnyddio y gweithredwr concatenation llinyn 230 00:12:21,610 --> 00:12:24,500 fel y gwnaethom dim ond ychydig linellau o'r blaen. 231 00:12:24,500 --> 00:12:26,460 Ond yn anffodus, bydd hyn mewn gwirionedd nid 232 00:12:26,460 --> 00:12:29,270 yn gweithio, am eich bod yn perfformio yn y bôn 233 00:12:29,270 --> 00:12:32,380 llawdriniaeth ar ddau fath gwahanol. 234 00:12:32,380 --> 00:12:36,856 >> Yn awr mae hyn yn wahanol iawn i eraill ieithoedd fel PHP sydd yn wirioneddol 235 00:12:36,856 --> 00:12:38,480 Goosey loosey gyda'u math o fathau. 236 00:12:38,480 --> 00:12:40,030 Maent yn unig yn ei hoffi, ie, beth bynnag, nid wyf yn poeni. 237 00:12:40,030 --> 00:12:42,710 Dim ond yn rhoi un math mi, ac efallai 'n annhymerus' wneud y peth iawn. 238 00:12:42,710 --> 00:12:46,060 >> Yn yr achos hwn, Swift yn hynod o llym am y mathau 239 00:12:46,060 --> 00:12:47,350 eich bod yn delio â. 240 00:12:47,350 --> 00:12:50,700 Mae'r gweithredwr Crynodeb neu weithredwr concatenation 241 00:12:50,700 --> 00:12:54,400 Mae gan y bôn un neu ddau o gwahanol opsiynau posibl. 242 00:12:54,400 --> 00:12:56,970 Gallwch wneud Crynodeb gyda chyfanrifau, neu os ydych yn 243 00:12:56,970 --> 00:13:00,870 Gall wneud concatenation llinyn, ac efallai rhai pethau eraill hefyd. 244 00:13:00,870 --> 00:13:05,550 Ond os nad yw gweithredwr yn cydnabod beth sydd ar y naill ochr iddo, 245 00:13:05,550 --> 00:13:10,452 neu yn hytrach y cyfuniad o'r rhai Nid yw dau fath, yn yr hyn y mae'n ei ddisgwyl, 246 00:13:10,452 --> 00:13:11,910 Yna, mae'n mynd i achosi methiant. 247 00:13:11,910 --> 00:13:16,690 >> Felly, yn yr achos hwn, beth mae'n ei olygu i gael llinyn ynghyd yn gyfanrif? 248 00:13:16,690 --> 00:13:18,880 Wel yng nghyd-destun hyn, mae'n debyg ein bod eisiau 249 00:13:18,880 --> 00:13:21,990 i wneud llawdriniaeth concatenation llinyn. 250 00:13:21,990 --> 00:13:26,420 Ond wrth gwrs y cyfrifiadur Nid oes gan y math hwnnw o gyd-destun. 251 00:13:26,420 --> 00:13:29,950 Ac felly mae angen i ni ddarparu bod gwybodaeth ychwanegol 252 00:13:29,950 --> 00:13:32,390 i adael iddo wybod beth y mae'n yw ein bod am ei wneud. 253 00:13:32,390 --> 00:13:36,860 >> Felly, mewn geiriau eraill, y ffaith bod Swift yn teipio gryf 254 00:13:36,860 --> 00:13:39,520 golygu bod yn rhaid i chi wneud ychydig bach o waith ychwanegol 255 00:13:39,520 --> 00:13:42,100 i'w gael i weithredu'r ffordd y byddech am. 256 00:13:42,100 --> 00:13:43,710 Ond o ganlyniad, mae'n fwy diogel. 257 00:13:43,710 --> 00:13:46,290 Ac unwaith y byddwch wedi cymryd i ystyriaeth y mathau hynny, 258 00:13:46,290 --> 00:13:49,300 pethau dim ond dweud y gwir yn dechrau i weithio'n eithaf da. 259 00:13:49,300 --> 00:13:52,520 >> Felly, yn yr achos hwn, byddwn wedyn byddai perfformio concatenation llinyn 260 00:13:52,520 --> 00:13:56,040 trwy gastio benodol cyfanrif i llinyn 261 00:13:56,040 --> 00:13:58,490 drwy lapio fel hyn cyfalaf swyddogaeth S Llinynnol, 262 00:13:58,490 --> 00:14:03,510 ac yna defnyddio'r concatenation llinyn gweithredwr i addasu ein newidyn label, 263 00:14:03,510 --> 00:14:06,280 ac yna ei hargraffu. 264 00:14:06,280 --> 00:14:08,420 >> Hyd yn hyn, felly da? 265 00:14:08,420 --> 00:14:12,020 Mae pob hawl, gadewch i ni symud ymlaen. 266 00:14:12,020 --> 00:14:16,300 >> Erbyn hyn mae amrywiaeth o ddata mathau y gallwn eu defnyddio yn Swift. 267 00:14:16,300 --> 00:14:21,620 Gan eich bod wedi dod yn gyfarwydd â, gallwn greu amrywiaeth mutable. 268 00:14:21,620 --> 00:14:26,140 A gall fod amrywiaeth yn unig cynnwys math sengl. 269 00:14:26,140 --> 00:14:30,360 >> Felly, yn yr achos hwn, rydym yn mynd i greu o araeau mutable o gyfanrifau, a oedd yn 270 00:14:30,360 --> 00:14:34,800 byddwn yn galw graddau, a byddwn yn gallu storio'r yn y band sgwâr 271 00:14:34,800 --> 00:14:38,650 fformat ag y byddwch wedi tyfu gyfarwydd i mewn amryw o ieithoedd eraill. 272 00:14:38,650 --> 00:14:41,150 Ond yn sylwi bod yma rydym yn diffinio un neu ddau o bethau. 273 00:14:41,150 --> 00:14:45,350 graddau yn variable-- mutable nid ydym yn defnyddio'r gair allweddol osod. 274 00:14:45,350 --> 00:14:49,620 Felly mae hynny'n golygu y gallwn ni wedyn addasu cynnwys y arae hwn. 275 00:14:49,620 --> 00:14:53,420 Mae'n y math Int Array, a gallwn ddweud bod 276 00:14:53,420 --> 00:14:56,260 yn seiliedig ar bachau petryal yma fan hyn. 277 00:14:56,260 --> 00:14:58,930 >> Bellach yn un o'r pethau neis am hyn yw ein bod yn 278 00:14:58,930 --> 00:15:02,310 yn cael mynediad at lawer o Gwybodaeth Ychwanegol 279 00:15:02,310 --> 00:15:07,110 am yr amrywiaeth yn unig gan ddefnyddio rhywfaint o dot syml nodiant. 280 00:15:07,110 --> 00:15:10,500 Felly, er enghraifft, grades.count yn darparu i ni 281 00:15:10,500 --> 00:15:14,820 nifer yr eitemau sy'n bodoli yn y array, a gallwn wedyn gael mynediad bert 282 00:15:14,820 --> 00:15:19,090 hawdd syml, gan ddefnyddio hynny dot nodiant. 283 00:15:19,090 --> 00:15:21,830 >> Os ydych chi eisiau ychwanegu ychwanegol eitemau i amrywiaeth hwn, 284 00:15:21,830 --> 00:15:27,220 na allwch wneud yr arddull PHP lle rydych jyst diffinio yn benodol, 285 00:15:27,220 --> 00:15:30,910 mewn mynegai a roddir, rhywfaint o werth eich bod am i fewnosod. 286 00:15:30,910 --> 00:15:37,210 Yn lle hynny, defnyddiwch y atodi dull yn y math amrywiaeth 287 00:15:37,210 --> 00:15:40,920 i atodi hynny eitem, 95, at y rhestr hon. 288 00:15:40,920 --> 00:15:45,990 >> Felly nawr amrywiaeth hon mae gan y canlynol contents-- 100, 0, 90, 85. 289 00:15:45,990 --> 00:15:49,270 Ac yn awr rydym wedi atodi 95 i hynny hefyd. 290 00:15:49,270 --> 00:15:51,830 >> Mae yna ffyrdd eraill gallwn atodi pethau. 291 00:15:51,830 --> 00:15:55,030 Gallwch ddefnyddio mewn gwirionedd gweithredwr Crynodeb, 292 00:15:55,030 --> 00:15:59,200 fydd yn cael ei ddehongli fel llawdriniaeth atodi arae. 293 00:15:59,200 --> 00:16:04,680 A gallwch wedyn atodi un arall array, y mae eu cynnwys yn 70 a 80, 294 00:16:04,680 --> 00:16:05,560 at y casgliad. 295 00:16:05,560 --> 00:16:08,250 Felly, yn awr mae gennym y cynnwys yn y newidyn hwn 296 00:16:08,250 --> 00:16:17,220 grades-- 100, 0, 90, 85, 95, 70, a 80. 297 00:16:17,220 --> 00:16:21,850 Mae hyn yn unig yw cystrawennol bach neis yn siwgr sy'n Swift yn darparu i ni. 298 00:16:21,850 --> 00:16:23,850 >> Felly os ydym am i grynhoi y graddau, rydym yn bosibl 299 00:16:23,850 --> 00:16:27,340 mynd i eisiau i ailadrodd dros bob eitem yn y ddolen hon. 300 00:16:27,340 --> 00:16:32,150 A oes gennym, yn Swift, mae'r syniad o ar gyfer dolen fel y byddech yn ei ddisgwyl. 301 00:16:32,150 --> 00:16:35,350 Ond mae'r ffordd yr ydym yn dangos amrediad ychydig yn wahanol. 302 00:16:35,350 --> 00:16:37,790 Felly, yn yr achos hwn, i grynhoi popeth, rydym chi helpu 303 00:16:37,790 --> 00:16:40,650 mynd i greu dros dro Gelwir swm amrywiol er mwyn i ni 304 00:16:40,650 --> 00:16:42,580 i gynnal y cyfrif hwn. 305 00:16:42,580 --> 00:16:44,430 >> Ac yn sylwi ar ein gyfer adeiladu dolen yma. 306 00:16:44,430 --> 00:16:46,820 Ar gyfer mynegai yn 0 .. 00:16:51,480 308 00:16:51,480 --> 00:16:57,390 Felly adeiladu hwn, 0 .. 00:17:01,860 dweud ein bod yn mynd i greu amrywiaeth o gyfanrifau o 0 i fyny 310 00:17:01,860 --> 00:17:05,750 i ond heb gynnwys grades.count. 311 00:17:05,750 --> 00:17:09,577 Felly bydd hyn yn 0, 1, 2, 3, 4, 5, hyd nes faint bynnag o un 312 00:17:09,577 --> 00:17:10,410 cyn grades.count. 313 00:17:10,410 --> 00:17:14,160 >> Felly, mae hyn yn wahanol na sut yr ydym Byddai ei ddefnyddio fel arfer ar gyfer dolenni 314 00:17:14,160 --> 00:17:18,569 lle y byddech yn cael rhywfaint o fynegai amrywiol, ei osod yn gyfartal i 0 ar y dechrau, 315 00:17:18,569 --> 00:17:25,480 ac yna integreiddio hynny nes i rai werth llai na'r cyfrif o eitemau 316 00:17:25,480 --> 00:17:27,140 yn y rhesi. 317 00:17:27,140 --> 00:17:29,820 >> Felly mae addasiad at hyn, mewn gwirionedd, 318 00:17:29,820 --> 00:17:35,010 sy'n ein galluogi i hawdd iawn gosod gwahanol fathau o ystodau. 319 00:17:35,010 --> 00:17:40,570 Os byddwch yn newid ystod hon i tri dotiau, 0 ... grade.count, 320 00:17:40,570 --> 00:17:45,120 mae hyn yn cynrychioli yr ystod 0 i grades.count gynhwysol, 321 00:17:45,120 --> 00:17:49,260 sy'n golygu bod y rhif hwnnw hefyd Yna eu cynnwys yn yr ystod. 322 00:17:49,260 --> 00:17:52,110 >> Ond mae hyn yn ddefnyddiol iawn ar gyfer y rhain union bethau, 323 00:17:52,110 --> 00:17:54,590 pan mae'n rhaid i ni berfformio iteriadau dros ddolen 324 00:17:54,590 --> 00:17:59,630 oherwydd bod mynegeion hynny yn cael eu mynegeio sero, fel y gwelsom mewn ieithoedd eraill 325 00:17:59,630 --> 00:18:02,360 yn ogystal. 326 00:18:02,360 --> 00:18:05,210 Unrhyw gwestiynau am hyn ar gyfer dolen? 327 00:18:05,210 --> 00:18:10,660 >> Felly mae diffiniad ymhlyg o hyn newidyn mynegai, 328 00:18:10,660 --> 00:18:14,350 gwerth y mae ei dechrau ar 0, ac yn parhau ar bob iteriad dolen 329 00:18:14,350 --> 00:18:17,950 cynyddu 1 hyd at bwynt sy'n hafal i grades.count, 330 00:18:17,950 --> 00:18:20,380 a bryd hynny, mae'r ddolen aborts. 331 00:18:20,380 --> 00:18:23,730 >> Sylwch fod yn ein llinyn rhyngosod yma, 332 00:18:23,730 --> 00:18:26,910 gallwn mewn gwirionedd yn perfformio rhai syml manipulations i gwerthoedd hynny. 333 00:18:26,910 --> 00:18:31,230 Felly mynegai ac 1 fydd mewn gwirionedd perfformio Crynodeb o'r gwerth hwnnw 334 00:18:31,230 --> 00:18:34,780 oherwydd bod mynegai yw, mewn yr achos hwn, yn gyfanrif. 335 00:18:34,780 --> 00:18:37,810 Ac ar y pwynt hwnnw, bydd yn wedyn yn cael ei drawsnewid i mewn i linyn 336 00:18:37,810 --> 00:18:42,230 a rhyngosod mewn i linyn hyn yma, a'i argraffu fel y byddem yn ei ddisgwyl. . 337 00:18:42,230 --> 00:18:44,520 >> A'r peth braf am y arrays yma yw 338 00:18:44,520 --> 00:18:50,730 ein bod hefyd yn gallu cael Gwerthoedd nôl a gosod gwerthoedd 339 00:18:50,730 --> 00:18:54,080 gan ddefnyddio'r nodiant braced sgwâr fel rydym wedi gweld mewn ieithoedd eraill hefyd. 340 00:18:54,080 --> 00:18:57,130 341 00:18:57,130 --> 00:19:01,030 >> Mae pob hawl, felly oddi yma, rydym bellach gyfrifo ein swm o bob un o'n graddau. 342 00:19:01,030 --> 00:19:02,780 Nawr fath o'r nesaf Byddai cam rhesymegol yn 343 00:19:02,780 --> 00:19:07,580 i wneud llawdriniaeth is-adran i ddod o hyd allan y cyfartaledd y graddau hynny. 344 00:19:07,580 --> 00:19:10,150 Ond mae rhywbeth pwysig yma yn digwydd pa 345 00:19:10,150 --> 00:19:15,020 yw bod y swm hwn o bosibl yn gyfanrif. 346 00:19:15,020 --> 00:19:18,020 Ond mae angen i berfformio rhai fath o is-adran dwbl. 347 00:19:18,020 --> 00:19:20,600 Ac mae hyn yn mynd i fod eithriadol o bwysig pan fydd 348 00:19:20,600 --> 00:19:24,140 rydym am i berfformio llawdriniaeth hon, oherwydd yr hyn yr ydym yn ei ddweud 349 00:19:24,140 --> 00:19:28,430 yw bod angen mewn gwirionedd i ni perfformio rhaniad ar ddau dyblau. 350 00:19:28,430 --> 00:19:31,370 Ac eto, oherwydd Swift ei deipio yn gryf iawn, 351 00:19:31,370 --> 00:19:36,760 mae'n rhaid i ni osod yn benodol pob un o'r eitemau i dyblau cyn i ni mewn gwirionedd 352 00:19:36,760 --> 00:19:38,300 perfformio y llawdriniaeth. 353 00:19:38,300 --> 00:19:40,550 >> Felly, er mwyn i ni perfformio rhaniad dwbl, 354 00:19:40,550 --> 00:19:43,730 nid yw'n ddigonol ar gyfer dim ond un o'r eitemau hynny i fod yn ddwbl. 355 00:19:43,730 --> 00:19:46,400 Rhaid i'r ddau ohonynt fod yn dwbl er mwyn i gyflym 356 00:19:46,400 --> 00:19:50,860 i fod yn siŵr bod hyn yn yw'r hyn yr ydym am ei wneud. 357 00:19:50,860 --> 00:19:54,360 Felly, byddwn wedyn yn typecast yn benodol y swm y rydym wedi gyfrifo uchod 358 00:19:54,360 --> 00:19:58,970 a'r cyfrif o raddau i dyblau, a yna perfformio y llawdriniaeth ac yn storio 359 00:19:58,970 --> 00:20:02,390 hynny i mewn i'r newidyn newydd, neu yn hytrach hwn cyson newydd o'r enw gyfartaledd, 360 00:20:02,390 --> 00:20:06,810 a fydd yn cael pa fath, chi ddychmygu? 361 00:20:06,810 --> 00:20:07,587 Dwbl, yeah. 362 00:20:07,587 --> 00:20:09,420 Felly, yn yr achos hwn, rydym yn Nid oes rhaid nodi ei fod 363 00:20:09,420 --> 00:20:13,450 oherwydd gellir ei casglu o gweithrediad pa fath o gyfartaledd y data 364 00:20:13,450 --> 00:20:14,730 Bydd fod. 365 00:20:14,730 --> 00:20:19,025 A Swift yn gyffredinol eithaf da am allu gasglu mathau. 366 00:20:19,025 --> 00:20:22,116 367 00:20:22,116 --> 00:20:24,200 >> Ydych chi eisiau gweld hyn rhedeg, neu a allaf symud ymlaen? 368 00:20:24,200 --> 00:20:25,640 Rwyf am i gadw i fynd. 369 00:20:25,640 --> 00:20:28,130 Unrhyw gwestiynau am unrhyw un o'r hyn? 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 >> Nawr rydym yn mynd i ddechrau i gyrraedd swyddogaethau diffinio stuff-- da, 373 00:20:35,010 --> 00:20:39,090 ac un neu ddau o fathau eraill sy'n unigryw i Swift nad oes gennych 374 00:20:39,090 --> 00:20:41,620 gweld mewn ieithoedd eraill hyd nes y pwynt hwn, 375 00:20:41,620 --> 00:20:46,290 ond maent yn bresennol yn eraill ieithoedd a allai fod yn nes ymlaen. 376 00:20:46,290 --> 00:20:48,210 Felly, yn gyntaf os ydych am i ddiffinio swyddogaeth, 377 00:20:48,210 --> 00:20:52,170 ydych yn ei ddiffinio â'r gair ffynci swyddogaeth, ac yna enw'r swyddogaeth, 378 00:20:52,170 --> 00:20:56,710 ac yna mewn cromfachau, y dadleuon eich bod am swyddogaeth honno i dderbyn. 379 00:20:56,710 --> 00:21:00,280 Rhaid i'r dadleuon hefyd specify-- generally-- 380 00:21:00,280 --> 00:21:05,010 Rhaid hefyd nodi y math o ddata sy'n maent, oni bai y gellir eu casglu. 381 00:21:05,010 --> 00:21:07,500 A byddwn yn gweld mai ychydig cafeat mewn dim ond ychydig. 382 00:21:07,500 --> 00:21:09,920 >> Felly, yn yr achos hwn mae gennym swyddogaeth o'r enw printGradeCount. 383 00:21:09,920 --> 00:21:12,840 Rydym yn mynd i dderbyn variable-- neu yn hytrach yn yr achos hwn, 384 00:21:12,840 --> 00:21:14,450 yn constant-- o'r enw llyfr marciau. 385 00:21:14,450 --> 00:21:18,517 Ac mae'n mynd i fod o teipiwch amrywiaeth o gyfanrifau. 386 00:21:18,517 --> 00:21:20,600 Nawr mae yna rywbeth mae hynny'n bwysig iawn fan hyn 387 00:21:20,600 --> 00:21:21,849 yr wyf am i chi ddeall. 388 00:21:21,849 --> 00:21:27,560 Hynny yw, yn y dadleuon hyn yn ddiofyn sy'n mewnbynnau i'r swyddogaeth hon yn cael eu 389 00:21:27,560 --> 00:21:34,380 ddiffiniwyd gyda gair allweddol osod ymhlyg, sy'n golygu na allaf addasu hyn 390 00:21:34,380 --> 00:21:39,850 newidyn llyfr marciau yma. 391 00:21:39,850 --> 00:21:43,360 Ac yn y math hwnnw o yn gwneud synnwyr, oherwydd eich bod yn pasio data i mewn. 392 00:21:43,360 --> 00:21:45,860 Ac nad ydych efallai yn dymuno hynny i gael eu newid o dan chi. 393 00:21:45,860 --> 00:21:50,800 Mae'n bosibl sôn yn benodol bod hwn yn newidyn drwy roi 394 00:21:50,800 --> 00:21:52,070 yr allweddair var yma. 395 00:21:52,070 --> 00:21:56,832 Ond mae hynny'n gotcha ein bod i wedi pobl sylwi wedi gwneud yn y gorffennol 396 00:21:56,832 --> 00:21:59,790 yw eu bod yn cymryd yn ganiataol ei fod yn mynd i fod yn newidyn pan, mewn gwirionedd, mae'n 397 00:21:59,790 --> 00:22:02,640 yn gysonyn. 398 00:22:02,640 --> 00:22:07,340 >> Mae pob hawl, felly dyma hynny, yn yr achos hwn, nid ydym yn pennu unrhyw fath dychwelyd. 399 00:22:07,340 --> 00:22:09,460 Byddwn yn dangos i chi sut i wneud hynny mewn dim ond hyn o bryd. 400 00:22:09,460 --> 00:22:12,340 Ond yn sylwi bod yma gennym dim ond syml os bydd cyflwr. 401 00:22:12,340 --> 00:22:14,560 Os bydd y llyfr marciau yn gwag, sydd yn yr achos 402 00:22:14,560 --> 00:22:19,310 yn unig yn eiddo i gyfanrif hwn array, yna rydym yn argraffu rhywbeth. 403 00:22:19,310 --> 00:22:23,100 Fel arall rydym yn ei wneud rhywbeth arall. 404 00:22:23,100 --> 00:22:25,000 >> Pretty syml hyd yn hyn dwi'n meddwl. 405 00:22:25,000 --> 00:22:27,960 Ond rhoi'r gorau i mi os oes gennych unrhyw gwestiynau. 406 00:22:27,960 --> 00:22:33,350 >> Yn awr y swyddogaeth hon, ar gyfartaledd, hefyd yn cymryd rhai dadleuon, neu yn hytrach un ddadl, 407 00:22:33,350 --> 00:22:37,507 sef y llyfr marciau, a'r tro hwn yn mynd i ddychwelyd math dwbl. 408 00:22:37,507 --> 00:22:39,340 Oherwydd ei fod yn cyfrifiadurol cyfartaledd ac mae'n 409 00:22:39,340 --> 00:22:45,010 mynd i ddychwelyd sydd mewn gwirionedd cyfartaledd gyfrifiadurol i'r llinell galw. 410 00:22:45,010 --> 00:22:50,070 >> Yn yr achos hwn, rydym yn pennu'r yn dychwelyd ar ôl y math saeth. 411 00:22:50,070 --> 00:22:53,260 A gallai hyn deimlo fath o 'n annaearol ar y dechrau. 412 00:22:53,260 --> 00:22:55,610 Rydych chi wedi tyfu gyfarwydd i osod y ffurflen 413 00:22:55,610 --> 00:22:57,720 teipiwch cyn enw'r swyddogaeth. 414 00:22:57,720 --> 00:23:00,310 Ond os ydych yn meddwl am hyn o ran mathemateg, 415 00:23:00,310 --> 00:23:03,320 fel pan mae gennych mathemateg sy'n diffinio swyddogaeth, 416 00:23:03,320 --> 00:23:06,807 mae gennych swyddogaeth gyda rhai mewnbynnau, ac mae'n cynhyrchu allbwn. 417 00:23:06,807 --> 00:23:08,890 A dyna yn union beth mae hyn i fod i ddynwared. 418 00:23:08,890 --> 00:23:12,460 Ac mae 'na ychydig o ieithoedd eraill sydd â cystrawen tebyg yn ogystal, 419 00:23:12,460 --> 00:23:15,674 ond mae'n debyg na fydd unrhyw un sy'n rydych wedi ei weld yn CS50. 420 00:23:15,674 --> 00:23:17,090 Ond yn dal heb eu drysu ganddo. 421 00:23:17,090 --> 00:23:21,650 Mae'r saeth yn golygu beth sy'n mynd i'w dychwelyd yn yr achos hwn. 422 00:23:21,650 --> 00:23:23,650 Iawn, felly sut ydym yn mynd i gyfrifo cyfartaledd hwn? 423 00:23:23,650 --> 00:23:25,649 Wel, os yw'r llyfr marciau yn wag, yn dda yna rydym yn 424 00:23:25,649 --> 00:23:30,731 mynd i ddychwelyd 0, sydd efallai yn ffordd resymol i drin hyn. 425 00:23:30,731 --> 00:23:32,980 Nid wyf yn gwybod, gadewch i ni ddod yn ôl at hynny mewn ychydig. 426 00:23:32,980 --> 00:23:34,688 Efallai na fydd hyn mewn gwirionedd yn ffordd resymol 427 00:23:34,688 --> 00:23:38,310 i gyfrifo cyfartaledd os mae gennym llyfr graddau wag. 428 00:23:38,310 --> 00:23:41,260 >> Yna, byddwn yn unig yn perfformio ein Crynodeb. 429 00:23:41,260 --> 00:23:43,900 Sylwa a dyma ni mewn gwirionedd gael fersiwn arall o 430 00:23:43,900 --> 00:23:49,190 ar gyfer dolen, sy'n ein galluogi i ailadrodd dros bob un eitem mewn amrywiaeth 431 00:23:49,190 --> 00:23:53,630 ac yn gosod pob elfen yn ei amrywiol hun. 432 00:23:53,630 --> 00:23:56,200 Drwy nodi ar gyfer gradd mewn llyfr marciau, yr hyn yr ydym yn ei ddweud 433 00:23:56,200 --> 00:24:00,560 yw ein bod ni'n mynd i ymhlyg creu cyson newydd o'r enw 434 00:24:00,560 --> 00:24:05,180 radd a mynd i gynrychioli pob eitem unigryw yn y llyfr marciau 435 00:24:05,180 --> 00:24:06,769 bob tro y mae'r i ailadrodd ddolen. 436 00:24:06,769 --> 00:24:08,560 Felly, y tro cyntaf i mae'n rhedeg, gradd y bydd 437 00:24:08,560 --> 00:24:09,800 fydd yr eitem gyntaf yn y llyfr graddau. 438 00:24:09,800 --> 00:24:12,300 Yr ail dro bydd yn cael y ail eitem, yn y blaen ac yn y blaen 439 00:24:12,300 --> 00:24:15,970 hyd nes y llyfr graddau wedi blino'n lân ei hun o elfennau. 440 00:24:15,970 --> 00:24:20,390 Yna, byddwn yn gallu i grynhoi bod radd i mewn i'n newidyn Crynodeb 441 00:24:20,390 --> 00:24:22,570 a dychwelyd ein cyfartaledd fel yr ydym wedi ei weld o'r blaen. 442 00:24:22,570 --> 00:24:25,670 443 00:24:25,670 --> 00:24:26,950 OK, unrhyw gwestiynau? 444 00:24:26,950 --> 00:24:27,699 Do? 445 00:24:27,699 --> 00:24:28,990 GYNULLEIDFA: Mae gennyf ddau gwestiwn. 446 00:24:28,990 --> 00:24:33,586 Rhif un, yn ddamcaniaethol, gall ydych yn rhedeg cyfanrif ar yr un yma? 447 00:24:33,586 --> 00:24:35,604 Nid oes rhaid i fod yn ddwbl, yw bod yn gywir? 448 00:24:35,604 --> 00:24:37,520 DAN AMRMENDARIZ: Allwch chi ailadrodd y cwestiwn hwnnw? 449 00:24:37,520 --> 00:24:39,587 GYNULLEIDFA: A allaf wneud cyfanrif fel cyfartaledd? 450 00:24:39,587 --> 00:24:41,670 DAN AMRMENDARIZ: Allwch chi gwneud cyfanrif fel cyfartaledd? 451 00:24:41,670 --> 00:24:45,015 Felly ddychwelyd yn gyfanrif gyfartaledd yn lle ddwbl? 452 00:24:45,015 --> 00:24:48,204 >> GYNULLEIDFA: Return-- chi wedi bod ar hyn o bryd isod. 453 00:24:48,204 --> 00:24:49,870 DAN AMRMENDARIZ: Hawl yma, yn dychwelyd 0.0? 454 00:24:49,870 --> 00:24:51,790 GYNULLEIDFA: Yeah, dim ond yn dychwelyd 0. 455 00:24:51,790 --> 00:24:56,590 Felly bydd yn naill ai 80 neu 85, ond nid yw 85.2. 456 00:24:56,590 --> 00:24:59,465 >> DAN AMRMENDARIZ: Felly yn yr achos hwnnw, felly mae 'na gwpl o ffyrdd gwahanol 457 00:24:59,465 --> 00:25:00,090 i ateb hynny. 458 00:25:00,090 --> 00:25:02,760 Gadewch i mi eu hateb mewn trefn. 459 00:25:02,760 --> 00:25:06,740 Felly os Fi jyst yn gwneud y ffurflen hon 0, mae 0 yn werth gyfanrif. 460 00:25:06,740 --> 00:25:09,730 Ac felly fydd yn achosi gwall math ar gyfer yr achos hwn 461 00:25:09,730 --> 00:25:13,210 oherwydd ei fod yn disgwyl dwbl ond yna yn dychwelyd yn gyfanrif. 462 00:25:13,210 --> 00:25:16,770 Os ydw i eisiau dychwelyd cyfanrif, gallaf. 463 00:25:16,770 --> 00:25:20,450 Gallaf osod y math dychwelyd i int, dychwelyd 0 yma, 464 00:25:20,450 --> 00:25:22,047 ac nid yn perfformio rhaniad dwbl. 465 00:25:22,047 --> 00:25:23,880 Ond yna byddem yn wneud is-adran cyfanrif. 466 00:25:23,880 --> 00:25:27,080 Ac felly rydym ni fyddai wedyn yn cael y cyfartaledd y byddem yn ei ddisgwyl o bosib. 467 00:25:27,080 --> 00:25:29,210 Ond ie gallwn addasu y mathau yn y ffordd honno. 468 00:25:29,210 --> 00:25:32,598 >> GYNULLEIDFA: Ac yn ail, chi yn cael y un ddwywaith ar y brig. 469 00:25:32,598 --> 00:25:35,502 Ond i lawr isod, pan fyddwch yn yn dychwelyd Dwbl Dwbl, 470 00:25:35,502 --> 00:25:38,280 sydd eisoes yn awtomatig dychwelyd fformat dwbl. 471 00:25:38,280 --> 00:25:42,278 Pam mae dal i fod angen i chi ddiffinio gyda saeth ar ben gyda Dwbl? 472 00:25:42,278 --> 00:25:45,010 >> DAN AMRMENDARIZ: Felly rhag ofn, mae hyn yn rhan 473 00:25:45,010 --> 00:25:50,580 o the-- felly i ailadrodd y cwestiwn, am ei fod ymhlyg o ffurflen 474 00:25:50,580 --> 00:25:56,030 mathau yma, pa fath yma mewn gwirionedd yw, mae angen i ni fod yn eglur gyda Swift 475 00:25:56,030 --> 00:25:59,970 am yr hyn yr ydym am ei ddychwelyd allan o'r swyddogaeth hon 476 00:25:59,970 --> 00:26:02,690 felly pan mae'n perfformio teipio gwirio, gall wneud yn siwr 477 00:26:02,690 --> 00:26:05,850 bod yr hyn rydym wedi ysgrifennu mewn gwirionedd i lawr isod mewn gwirionedd yn cydymffurfio at hynny. 478 00:26:05,850 --> 00:26:10,225 Felly mae'n fath o fel siec gyda chi eich hun math o sefyllfa. 479 00:26:10,225 --> 00:26:11,050 Ond mae yw-- 480 00:26:11,050 --> 00:26:12,560 >> GYNULLEIDFA: [Anghlywadwy] arrow? 481 00:26:12,560 --> 00:26:19,490 >> DAN AMRMENDARIZ: Mae yna achosion pan gallwn nodi y gallwn yn ymhlyg 482 00:26:19,490 --> 00:26:21,550 gosod y math dychwelyd. 483 00:26:21,550 --> 00:26:23,940 Ond yn yr achos hwn, nid wyf yn ei wneud yn meddwl a fyddai'n gweithio. 484 00:26:23,940 --> 00:26:26,190 Mae rhywfaint o gystrawen arall y byddwn yn gweld yn nes ymlaen. 485 00:26:26,190 --> 00:26:30,320 486 00:26:30,320 --> 00:26:35,280 >> Mae pob hawl, felly ffynhonnell hon cod yn ychydig yn wahanol 487 00:26:35,280 --> 00:26:41,839 gan fod hyn yn parses dadleuon o y swyddogaeth yr ydym yn galw. 488 00:26:41,839 --> 00:26:44,130 Gadewch i mi ddangos i chi sut mae'n gweithio cyn i ni mewn gwirionedd yn symud ymlaen 489 00:26:44,130 --> 00:26:48,050 at rai pethau diddorol sy'n digwydd yn Swift. 490 00:26:48,050 --> 00:26:51,870 >> Felly, yn yr achos hwn, os Fi jyst yn rhedeg hyn cod, yn sylwi bod yr hyn y mae'n ei wneud 491 00:26:51,870 --> 00:26:54,900 tra yw--, mae'n fath o yn rhoi gwall rhyfedd i mi. 492 00:26:54,900 --> 00:26:59,730 Mae angen i mi basio ychydig o gyfanrifau fel ymresymiad llinell orchymyn. 493 00:26:59,730 --> 00:27:06,220 Felly, gadewch i ni weld, 150 a 80, ac yn taro Enter i gael gwybod beth mae'n ei wneud mewn gwirionedd. 494 00:27:06,220 --> 00:27:09,890 Mae'n derbyn pob un o'r gwerthoedd hyn fel gyfanrifau. 495 00:27:09,890 --> 00:27:12,040 Mae wedi eu mewnbynnu i mewn i llyfr graddau. 496 00:27:12,040 --> 00:27:14,470 Ac yna mae'n perfformio y cyfrifiad ar gyfartaledd 497 00:27:14,470 --> 00:27:16,650 a outputting bod fel y byddem yn ei ddisgwyl. 498 00:27:16,650 --> 00:27:19,950 >> Ond yn amlwg mae rhywbeth yn mynd ymlaen gyda hyn wrthod rhywbeth 499 00:27:19,950 --> 00:27:23,300 rhywbeth fel cyfanrif. 500 00:27:23,300 --> 00:27:27,300 Fel y byddech yn cofio o'r pan oeddem delio gyda dadleuon llinell gorchymyn 501 00:27:27,300 --> 00:27:32,640 yn C ac ieithoedd eraill, y cyntaf iawn 0-fed eitem yn y ymresymiad llinell orchymyn 502 00:27:32,640 --> 00:27:35,774 rhestr yn enw'r gorchymyn ein bod yn ddienyddio mewn gwirionedd. 503 00:27:35,774 --> 00:27:38,690 Felly, yn yr achos hwn, Im 'jyst yn dolennu dros yr holl ddadleuon llinell orchymyn. 504 00:27:38,690 --> 00:27:41,650 Ond dydw i ddim yn gwneud unrhyw fath o ffansi gwirio i hepgor bod un cyntaf. 505 00:27:41,650 --> 00:27:45,920 Im 'jyst yn benodol neu'n ymhlyg rwy'n gwirio pa un o'r mathau hyn 506 00:27:45,920 --> 00:27:49,900 yn gyfanrifau cyn i mi mewn gwirionedd perfformio gyfrifiannu hwn. 507 00:27:49,900 --> 00:27:52,420 >> A dyna yn y bôn yr hyn sy'n digwydd yma. 508 00:27:52,420 --> 00:27:55,860 Ar gyfer pob dadl yn dadleuon y broses, gan 509 00:27:55,860 --> 00:27:59,210 Rydw i'n mynd i berfformio rhai siec. 510 00:27:59,210 --> 00:28:01,970 Ac yn yr achos hwn, dw i'n mynd i geisio troi cyntaf 511 00:28:01,970 --> 00:28:07,620 y ddadl honno i mewn i cyfanrif gan perfformio typecast benodol, 512 00:28:07,620 --> 00:28:12,310 oherwydd ei fod, ar fewnbwn, llinyn ac nid mewn gwirionedd yn gyfanrif. 513 00:28:12,310 --> 00:28:18,140 >> Ond mae hyn yn fath o 'n annaearol cystrawen, os radd a gadewch hafal Int (dadl). 514 00:28:18,140 --> 00:28:21,120 Beth sy'n digwydd mewn gwirionedd yma yn hynod o 515 00:28:21,120 --> 00:28:24,390 bwysig i'ch ddefnyddio Swift. 516 00:28:24,390 --> 00:28:27,610 Mae hyn yn defnyddio beth sydd Gelwir fath dewisol. 517 00:28:27,610 --> 00:28:34,790 >> Felly y swyddogaeth hon, Int (dadl), nid dim ond yn dychwelyd cyfanrif, ond yn dychwelyd 518 00:28:34,790 --> 00:28:37,470 hyn a elwir yn gyfanrif dewisol. 519 00:28:37,470 --> 00:28:41,200 Ac felly mae hwn yn fath o math ar ben o fath. 520 00:28:41,200 --> 00:28:45,900 Gallwch fath o ddychmygu ei hoffi mae'n dychwelyd fel pecyn. 521 00:28:45,900 --> 00:28:47,750 A phan fyddwch yn agor y pecyn, mae'n naill ai 522 00:28:47,750 --> 00:28:53,930 Mae yn gyfanrif, sef y canlyniad, neu mae wedi dim byd o gwbl ynddo o gwbl. 523 00:28:53,930 --> 00:28:58,140 Ac mae hyn yn ddefnyddiol fel gwirio gwall mecanwaith, oherwydd yn yr achos hwn 524 00:28:58,140 --> 00:29:02,080 gallwn ddod o hyd allan, roedd hyn Math trosi llwyddiannus? 525 00:29:02,080 --> 00:29:05,810 Os oedd, yna mae'n mewn gwirionedd mynd i gael yn gyfanrif tu mewn. 526 00:29:05,810 --> 00:29:08,750 Fel arall mae'n mynd i gael rhywfaint o gwerth y byddwn yn galw dim, a oedd yn 527 00:29:08,750 --> 00:29:10,920 yn gynrychioliadol o ddim cyfanrif o gwbl. 528 00:29:10,920 --> 00:29:13,270 Mae'n wirioneddol gynrychioliadol o ddim byd. 529 00:29:13,270 --> 00:29:18,130 >> Ac felly hwn os adeiladu yn ein galluogi i unwrap y pecyn, 530 00:29:18,130 --> 00:29:19,850 hynny ddewisol rhwymiad. 531 00:29:19,850 --> 00:29:25,560 Ac os ydym yn gallu unwrap bod pecynnu a dod o hyd yn gyfanrif y tu mewn, 532 00:29:25,560 --> 00:29:27,720 Yna, yr hyn yr ydym yn ei ddweud yma yw bod yna byddwn yn 533 00:29:27,720 --> 00:29:33,090 caniatáu hynny werth i gael eu gosod i mewn gyson hwn a elwir gradd. 534 00:29:33,090 --> 00:29:36,590 Ac mae rhan hon o'r datganiad os, y rhan uchaf y datganiad os 535 00:29:36,590 --> 00:29:40,390 bydd yn rhedeg, gan fod y unwrap yn llwyddiannus. 536 00:29:40,390 --> 00:29:43,290 >> Os bydd yn digwydd dim ond fel bod roedd gwall efallai 537 00:29:43,290 --> 00:29:47,040 yn y trosi math penodol o llinyn i cyfanrif, efallai 538 00:29:47,040 --> 00:29:49,160 'i' y ABC gwerth am enghraifft. 539 00:29:49,160 --> 00:29:52,120 A dyna mewn gwirionedd ddim yn mynd i newid i cyfanrif. 540 00:29:52,120 --> 00:29:55,520 Yna bydd yn dychwelyd dim, nad yn gyfanrif. 541 00:29:55,520 --> 00:29:57,570 Ac mae hyn os y datganiad dda yna yn methu. 542 00:29:57,570 --> 00:30:01,930 Gradd Ni fydd yn bodoli oherwydd nad oes ganddo unrhyw gynnwys cyfanrif. 543 00:30:01,930 --> 00:30:06,391 A bydd yn rhedeg y bloc arall yn lle hynny. 544 00:30:06,391 --> 00:30:06,890 Do? 545 00:30:06,890 --> 00:30:09,652 >> GYNULLEIDFA: Dim yn N-I-L? 546 00:30:09,652 --> 00:30:11,110 DAN AMRMENDARIZ: dim yw N-I-L, ie. 547 00:30:11,110 --> 00:30:14,970 548 00:30:14,970 --> 00:30:20,310 >> Felly mae hyn yn efallai un o'r pethau anoddaf am Swift, 549 00:30:20,310 --> 00:30:23,690 yn enwedig pan fyddwch chi yn y chwyn ar an app iOS 550 00:30:23,690 --> 00:30:27,442 ac yr ydych yn ceisio mewn gwirionedd i wneud rhywfaint o ddatblygiad yno. 551 00:30:27,442 --> 00:30:29,400 Mae'n mynd i fod yn gweiddi ar chi am ddewisol. 552 00:30:29,400 --> 00:30:33,050 Mae'n mynd i fod yn gofyn i chi am marciau cwestiwn a phwyntiau ebychnodau. 553 00:30:33,050 --> 00:30:37,100 Ond ar ôl i chi chyfrif i out-- os ydych neilltuo peth amser i figuring 554 00:30:37,100 --> 00:30:41,990 beth sy'n digwydd gyda mathau dewisol, byddwch yn arbed llawer o gur pen eich hun 555 00:30:41,990 --> 00:30:46,040 fel yr ydych yn ceisio ysgrifennu app yn Swift. 556 00:30:46,040 --> 00:30:47,660 >> Mae'n nodwedd pwerus iawn mewn gwirionedd. 557 00:30:47,660 --> 00:30:49,826 A bydd yn rhaid i chi cymryd fy ngair i am hynny am y tro. 558 00:30:49,826 --> 00:30:52,620 Ond byddwn yn gweld hyn adeiladu a rhai eraill yn ei hoffi 559 00:30:52,620 --> 00:30:56,740 mewn rhai o'r cod ffynhonnell arall sy'n byddwn yn dangos i chi mewn dim ond ychydig. 560 00:30:56,740 --> 00:31:00,440 >> A oes unrhyw gwestiynau cychwynnol yma? 561 00:31:00,440 --> 00:31:03,790 562 00:31:03,790 --> 00:31:08,690 Felly mae'r bwyd parod pwysig yw bod math dewisol yn fath o metatype. 563 00:31:08,690 --> 00:31:12,500 Mae naill ai'n mae iddo werth, ac os felly, yna mae'n 564 00:31:12,500 --> 00:31:18,110 Bydd yn rhaid bod gwerth cysylltiedig o bosibl ag ef, neu nad oes ganddo werth o gwbl, 565 00:31:18,110 --> 00:31:19,620 ac mae'n cael ei gynrychioli gan ddim. 566 00:31:19,620 --> 00:31:24,210 567 00:31:24,210 --> 00:31:28,870 Mae gweddill y mae hyn yn bosibl fel y byddech yn ei ddisgwyl. 568 00:31:28,870 --> 00:31:32,900 >> Felly gadewch i ramp i fyny i'r anhawster unwaith eto. 569 00:31:32,900 --> 00:31:37,070 A'r tro hwn, gadewch i ni edrych ar rai mathau data eraill sy'n bodoli mewn gwirionedd. 570 00:31:37,070 --> 00:31:41,290 Un ohonynt yw geiriaduron, sef debyg iawn i geiriaduron Python. 571 00:31:41,290 --> 00:31:48,270 Mae'n braidd yn debyg i dabl hash mewn C. Yn y bôn, mapio allweddi 572 00:31:48,270 --> 00:31:49,820 lle y gall fod yn llinynnau allweddi. 573 00:31:49,820 --> 00:31:52,670 A phan fyddwch yn edrych i fyny allweddi hynny, Bydd allweddi y rhai â gwerth. 574 00:31:52,670 --> 00:31:56,020 Felly nid yw'n hollol amrywiaeth, ond yn lle hynny, fwy cysylltiedig 575 00:31:56,020 --> 00:31:58,810 i fap hash neu dabl hash. 576 00:31:58,810 --> 00:32:02,420 >> Gadewch i ni weld sut mae hyn yn dybiedig i weithio cyn i ni mewn gwirionedd 577 00:32:02,420 --> 00:32:05,210 mynd i mewn i'r cod ffynhonnell ei hun. 578 00:32:05,210 --> 00:32:07,680 Os Fi jyst yn rhedeg hyn, dim byd mewn gwirionedd yn digwydd. 579 00:32:07,680 --> 00:32:12,430 Mae'n dweud wrthyf fy mod i'n disgwyl rhai paramedrau o'r math canlynol. 580 00:32:12,430 --> 00:32:16,050 Felly dw i'n mynd i roi i mae'n rhai enwau broblem a osodwyd, 581 00:32:16,050 --> 00:32:18,490 felly pset0, efallai cefais 100. 582 00:32:18,490 --> 00:32:20,790 Ac pset1, Ges i 5. 583 00:32:20,790 --> 00:32:24,630 Ac yna ar yr arholiad, yr wyf yn gwneud yn dda iawn ac yn got 30. 584 00:32:24,630 --> 00:32:27,180 Ac wps, yr wyf yn taro gofod yma. 585 00:32:27,180 --> 00:32:30,940 >> Pan fyddaf yn taro Mewnbynnu, gallwch weld mae'n perfformio rhai cyfrifiant. 586 00:32:30,940 --> 00:32:33,740 Mae'n dweud llyfr graddau yn dair graddau, pset1, pset0, arholiad. 587 00:32:33,740 --> 00:32:36,120 Ac mae'r llyfr marciau wedi cyfartaledd penodol hwn. 588 00:32:36,120 --> 00:32:38,370 Felly unwaith eto, rydym yn gweithio gyda hyn syniad llyfr graddau, 589 00:32:38,370 --> 00:32:44,650 ond rydyn ni'n mynd i barhau i ailadrodd â chymhlethdod ein swyddogaeth. 590 00:32:44,650 --> 00:32:47,650 >> Felly, ar y dechrau, rydym yn unig mynd i greu swyddogaeth sy'n 591 00:32:47,650 --> 00:32:49,390 yn gyfrifol am argraffu'r defnydd. 592 00:32:49,390 --> 00:32:51,920 Ac mae allanfa hon swyddogaeth a fydd yn unig 593 00:32:51,920 --> 00:32:53,710 rymus rhoi'r gorau iddi y cais. 594 00:32:53,710 --> 00:32:56,530 Nid yw hyn yn rhywbeth y byddwch yn eu defnyddio yn iOS app. 595 00:32:56,530 --> 00:32:59,750 Nid yw hyn ond, yn yr achos hwn, gyda ymresymiad llinell orchymyn. 596 00:32:59,750 --> 00:33:01,990 Nesaf byddwn yn dechrau symud tuag at Xcode. 597 00:33:01,990 --> 00:33:07,760 Ond mae hyn yn benodol i gorchymyn rhaglen arddull llinell yn Swift. 598 00:33:07,760 --> 00:33:11,490 >> Gadewch i ni edrych ar rai o'r y pethau diddorol yma. 599 00:33:11,490 --> 00:33:15,150 Gadewch i ni weld, dim ond un neu ddau o bethau diddorol sôn efallai 600 00:33:15,150 --> 00:33:19,930 yw hynny yn fy swyddogaeth argraffu nifer y graddau, 601 00:33:19,930 --> 00:33:26,090 efallai y byddwch yn cofio fy mod wedi bod rhestr o pset1 items--, pset0, ac arholiad. 602 00:33:26,090 --> 00:33:29,130 Gallwch mewn gwirionedd yn gyflym ac yn hawdd gwneud hyn 603 00:33:29,130 --> 00:33:34,490 drwy gymryd y llyfr graddau, sydd yn Geiriadur sydd â allweddi a gwerthoedd. 604 00:33:34,490 --> 00:33:38,730 Dod o hyd i bob un o'r allweddol yw drwy y dull allweddi dot yma, 605 00:33:38,730 --> 00:33:43,180 ac yna defnyddio'r joinWithSeparator hwn, fydd wedyn yn cymryd pob un o'r allweddi 606 00:33:43,180 --> 00:33:48,590 ein bod wedi teipio i mewn, pset1-- neu ddrwg gennym, pset0, pset1, a exam-- 607 00:33:48,590 --> 00:33:53,030 ac yn concatenate nhw at ei gilydd gan ddefnyddio coma a gofod 608 00:33:53,030 --> 00:33:55,400 i greu un llinyn hir. 609 00:33:55,400 --> 00:34:00,190 Mae'r llawdriniaeth yn ymuno yn unig hynod ddefnyddiol mewn amrywiaeth o gyd-destunau. 610 00:34:00,190 --> 00:34:03,450 Ac felly mae'n joinWithSeparator hwn. 611 00:34:03,450 --> 00:34:06,939 >> Ac mae hyn yn un peth sy'n newid o Swift 1 i Swift 2. 612 00:34:06,939 --> 00:34:08,730 Arferai fod yn Style-- Python os ydych chi'n 613 00:34:08,730 --> 00:34:13,219 gyfarwydd â Python-- yn Python arddull ymuno â dull ar dannau. 614 00:34:13,219 --> 00:34:15,699 Ond bellach mae hynny'n yr achos yn Swift 2. 615 00:34:15,699 --> 00:34:19,400 Y byddwch am ddefnyddio hwn os ydych am i concatenate amrywiaeth o bethau 616 00:34:19,400 --> 00:34:23,380 ynghyd â llinyn. 617 00:34:23,380 --> 00:34:27,889 >> Felly efallai wedyn yn ein trafodaeth ar gyfartaledd o'r blaen, 618 00:34:27,889 --> 00:34:32,659 mae'n gwneud ychydig bach mwy o synnwyr i ni osod swyddogaeth ar gyfartaledd 619 00:34:32,659 --> 00:34:36,610 i fod yn ddewisol yn hytrach dwbl na dim ond dwbl penodol. 620 00:34:36,610 --> 00:34:39,239 Oherwydd roedd ein bod cyflwr anarferol lle, 621 00:34:39,239 --> 00:34:41,550 beth os llyfr marciau mewn gwirionedd Nid oes werthoedd ynddo? 622 00:34:41,550 --> 00:34:44,280 Beth ddylai'r enillion cyfartalog? 623 00:34:44,280 --> 00:34:46,350 >> Wel efallai yn C i chi Byddai wedi gwneud rhywbeth 624 00:34:46,350 --> 00:34:50,040 fel darparu gwerth sentinel, fel 0.0, neu efallai rhif negatif, 625 00:34:50,040 --> 00:34:53,690 neu rywbeth yn unig cynrychioli'r ffaith fod rhywfaint o gyflwr wall 626 00:34:53,690 --> 00:34:57,910 ac rydych efallai nad ydynt mewn gwirionedd yn cael y gallu i gyfrifo cyfartaledd hwnnw. 627 00:34:57,910 --> 00:35:05,590 Wel harddwch sy'n pennu byddai'r math dewisol fydd gwneud hynny. 628 00:35:05,590 --> 00:35:09,540 A dwi'n bellach yn dweud yr holl eiriau hyn, ond mae hyn mewn gwirionedd yn defnyddio optionals. 629 00:35:09,540 --> 00:35:12,970 Ond byddwn yn gweld hynny mewn dim ond cofnodion lle y gallwn osod ar gyfartaledd 630 00:35:12,970 --> 00:35:17,230 i fod yn fath o ddata dewisol fel bod os yw'n mewn gwirionedd yn dychwelyd rhywfaint o ddata, yna 631 00:35:17,230 --> 00:35:18,470 byddwn yn dychwelyd data hwnnw. 632 00:35:18,470 --> 00:35:20,570 Fel arall, byddwn yn dychwelyd nil, gan ddweud bod hyn yn 633 00:35:20,570 --> 00:35:22,200 Nid oes cyfrifiant ystyrlon. 634 00:35:22,200 --> 00:35:25,650 635 00:35:25,650 --> 00:35:28,570 >> Gadewch i ni symud ymlaen i rywbeth arall. 636 00:35:28,570 --> 00:35:35,910 Felly oddi yma, rydym wedi bod yn edrych ar yr holl enghreifftiau hyn yn y llinell orchymyn. 637 00:35:35,910 --> 00:35:39,470 Ond mewn gwirionedd yr hyn yr ydych chi'n mynd i fod yn delio â yw Xcode. 638 00:35:39,470 --> 00:35:43,720 Ac un o'r pethau neis am Xcode yw, ac yn benodol yn Swift, 639 00:35:43,720 --> 00:35:47,450 yw bod gennym hon beth a elwir yn Cae Chwarae. 640 00:35:47,450 --> 00:35:51,470 Ac mae Maes Chwarae yn ddim o gwbl app iOS. 641 00:35:51,470 --> 00:35:54,751 Ond mae'n eich galluogi i arbrofi gyda Swift mewn ffordd hawdd iawn. 642 00:35:54,751 --> 00:35:56,000 Gallwch deipio eich holl cod. 643 00:35:56,000 --> 00:35:58,140 Mae'n 'n glws gystrawen hamlygu yma. 644 00:35:58,140 --> 00:36:01,600 Pan fyddwch yn creu ffeil newydd, bydd yn gofyn chi os ydych am i greu Iard Chwarae. 645 00:36:01,600 --> 00:36:08,720 Ond y peth braf am y Cae Chwarae yw bod ar yr ochr dde eich ffenestr, 646 00:36:08,720 --> 00:36:12,020 mae'n mewn gwirionedd yn dangos i chi allbwn eich cod. 647 00:36:12,020 --> 00:36:16,110 Felly, os wyf yn sgroliwch i lawr, gallwn weld beth allbwn gwahanol linellau o god 648 00:36:16,110 --> 00:36:17,200 mewn gwirionedd yn digwydd bod. 649 00:36:17,200 --> 00:36:19,850 650 00:36:19,850 --> 00:36:26,790 >> Felly, yn yr achos hwn, rydym yn mynd i newid cyfeiriad ychydig bach 651 00:36:26,790 --> 00:36:30,960 a siarad am rywbeth sy'n wirioneddol bwysig i'r ffordd hon lefel uchel 652 00:36:30,960 --> 00:36:34,020 bod Swift yn gweithredu, ac mae'n yw y syniad hwn o gau. 653 00:36:34,020 --> 00:36:36,960 Ac mae'n debyg eich bod wedi gweld hyn ychydig yn JavaScript. 654 00:36:36,960 --> 00:36:40,770 I'r rhai ohonoch nad yn CS50, cau 655 00:36:40,770 --> 00:36:47,240 yn boblogaidd iawn ffordd, yn dda iawn o wneud pethau ar lefel uchel mewn ieithoedd modern. 656 00:36:47,240 --> 00:36:50,270 Ond mae hefyd yn fath o anodd i lapio eich pen o gwmpas y tro cyntaf. 657 00:36:50,270 --> 00:36:52,269 Felly, os ydych yn edrych ar hyn tro cyntaf, mae hynny'n iawn. 658 00:36:52,269 --> 00:36:56,740 Dim ond yn edrych ar y cod ffynhonnell a gweld os gallwch chyfrif 'ii maes yn y cartref. 659 00:36:56,740 --> 00:37:01,050 >> Felly, yn yr achos hwn, gadewch i ni ddweud ein bod yn am greu llawer o ddehonglwyr 660 00:37:01,050 --> 00:37:04,134 gyda rhywfaint o werth sefydlog. 661 00:37:04,134 --> 00:37:05,800 Felly, yn yr achos hwn y gallaf greu swyddogaeth. 662 00:37:05,800 --> 00:37:09,270 Rydw i'n mynd i alw grym 2 a'i unig bwrpas mewn bywyd 663 00:37:09,270 --> 00:37:15,770 yw cymryd rhywfaint o gyfraniad a dwbl iddo, ac yn dychwelyd y gwerth. 664 00:37:15,770 --> 00:37:21,210 Sylwch fod dyma fi gan dderbyn un math o ddata. 665 00:37:21,210 --> 00:37:23,137 Mae'n mynd i fod yn newidyn a elwir yn x. 666 00:37:23,137 --> 00:37:23,970 Mae'n y math dwbl. 667 00:37:23,970 --> 00:37:26,190 Ac yr wyf i'n mynd i ddychwelyd Dwbl yma. 668 00:37:26,190 --> 00:37:29,100 Ac Im 'jyst yn mynd i wneud yn iawn, a dweud y gwir, 'n bert 669 00:37:29,100 --> 00:37:32,650 ffordd naïf o ddyblu gwerth hwn. 670 00:37:32,650 --> 00:37:35,600 A byddaf yn dangos i chi pam mae hyn yn ddefnyddiol mewn dim ond eiliad. 671 00:37:35,600 --> 00:37:40,418 >> Hysbysiad bod yma mae gennym ystod hon eto. am rywbeth yn 1, dot 672 00:37:40,418 --> 00:37:44,130 dot dot, 2, sy'n golygu y Bydd dolen hwn yn rhedeg ddwywaith. 673 00:37:44,130 --> 00:37:46,480 Ond mae hyn yn cynrychioli newidyn ffug. 674 00:37:46,480 --> 00:37:49,650 Mae'n golygu Dydw i ddim wir yn mynd i yn defnyddio y newidyn yn unrhyw le 675 00:37:49,650 --> 00:37:51,070 tu mewn dolen hwn. 676 00:37:51,070 --> 00:37:55,380 Fi jyst eisiau y llinell hon o god i redeg ddwywaith, 677 00:37:55,380 --> 00:37:58,980 heb fod angen i wybod gwerth yr amrediad. 678 00:37:58,980 --> 00:38:02,570 >> Felly, yn yr achos hwn rwy'n rhedeg canlyniad Amseroedd x ddwywaith, sydd yn eu hanfod 679 00:38:02,570 --> 00:38:06,560 yn golygu fy mod yn sgwario gwerth hwn. 680 00:38:06,560 --> 00:38:10,230 Ac mae hyn yn digwydd i gweithio fel y byddem yn ei ddisgwyl. 681 00:38:10,230 --> 00:38:16,410 Pŵer 2, gan fynd heibio gwerth o 2.0 yn rhoi allbwn o 4 ni. 682 00:38:16,410 --> 00:38:18,810 3.2 weithiau ar gyfer 10.24. 683 00:38:18,810 --> 00:38:22,660 >> Nawr gallwn wneud tebyg beth am rym o 3. 684 00:38:22,660 --> 00:38:25,330 Ond yn awr yn newid dim ond yr ystod. 685 00:38:25,330 --> 00:38:28,840 Ar gyfer newidyn ffug mewn 1 trwy 3, lluosi 3 gwaith, 686 00:38:28,840 --> 00:38:29,830 ac yn gwneud yr un peth. 687 00:38:29,830 --> 00:38:32,240 >> Felly, gallai hyn deimlo ychydig ddyfeisgar. 688 00:38:32,240 --> 00:38:34,270 Ond mae 'na pwysig beth yma sy'n 689 00:38:34,270 --> 00:38:37,770 yw bod edrych ar y rhain ddwy swyddogaeth, mae ' 690 00:38:37,770 --> 00:38:43,600 ond un peth sy'n wahanol, sydd yn y gwerth hwn yn yr ystod. 691 00:38:43,600 --> 00:38:46,910 Popeth arall am y ddau yma swyddogaethau, pŵer 3 a phŵer o 2, 692 00:38:46,910 --> 00:38:50,440 , mewn gwirionedd, yn union oherwydd bod maent yn gweithio yn yr un ffordd. 693 00:38:50,440 --> 00:38:53,460 >> Felly, yn y fan hon, ychydig Dylid cloch larwm yn mynd i ffwrdd. 694 00:38:53,460 --> 00:38:56,200 Gobeithio yr hyn yr ydych yn ei ddweud, eich bod yn gwybod, mae hyn yn teimlo ychydig bach 695 00:38:56,200 --> 00:38:59,250 fel dyblygu ymdrech. 696 00:38:59,250 --> 00:39:02,950 Efallai mae ffordd sy'n Hoffwn yn gallu crynhoi hyn oll 697 00:39:02,950 --> 00:39:06,630 ac yn darparu swyddogaeth neu greu swyddogaeth sy'n 698 00:39:06,630 --> 00:39:11,550 gwneud yn union yr hyn yr wyf eisiau heb angen ei deipio allan benodol. 699 00:39:11,550 --> 00:39:15,732 Ac mae hyn yn beth y pŵer am gau yn caniatáu i ni ei wneud. 700 00:39:15,732 --> 00:39:16,940 Felly, gadewch i ni edrych ar hyn. 701 00:39:16,940 --> 00:39:18,700 A byddaf yn treulio cwpl cofnodion ar hyn, gan fod hyn 702 00:39:18,700 --> 00:39:20,310 yn eithaf pwysig ar gyfer Swift. 703 00:39:20,310 --> 00:39:22,900 Rydym yn gweld hyn drwy'r amser. 704 00:39:22,900 --> 00:39:24,550 Rydym yn mynd i ddiffinio swyddogaeth. 705 00:39:24,550 --> 00:39:26,380 Mae'n mynd i gael ei alw powerOf. 706 00:39:26,380 --> 00:39:29,470 Mae'n mynd i dderbyn paramedr a elwir yn y o'r fath Int. 707 00:39:29,470 --> 00:39:32,220 Ond yn edrych ar y math dychwelyd. 708 00:39:32,220 --> 00:39:38,730 Mae'r math dychwelyd yw, mewn cromfachau, Dwbl saeth dwbl. 709 00:39:38,730 --> 00:39:43,370 Sy'n golygu bod y swyddogaeth hon, powerOf swyddogaeth hon, 710 00:39:43,370 --> 00:39:46,550 yn dychwelyd swyddogaeth. 711 00:39:46,550 --> 00:39:50,845 Mae hynny'n derbyn Dwbl a dychwelyd Dwbl. 712 00:39:50,845 --> 00:39:53,720 Felly allai swnio'n fath o crazy, ond gadewch i sgrolio i lawr ychydig bach 713 00:39:53,720 --> 00:39:55,060 ac yn edrych i weld beth sy'n digwydd. 714 00:39:55,060 --> 00:39:57,910 Rydym yn tu mewn hon powerOf swyddogaeth. 715 00:39:57,910 --> 00:40:00,760 Rydym yn creu swyddogaeth newydd Gelwir exponentiator, 716 00:40:00,760 --> 00:40:02,900 ond does dim ots beth yw. 717 00:40:02,900 --> 00:40:06,410 >> Sylwch fod hyn yn cael gwerth mewnbwn x. 718 00:40:06,410 --> 00:40:09,910 Ac mae'n cymryd mewn Dwbl a dychwelyd Dwbl. 719 00:40:09,910 --> 00:40:16,320 Ac mae hyn yn un cod yr ydym Gwelodd uchod, ac eithrio bod y gwerth o 2 720 00:40:16,320 --> 00:40:20,060 neu werth 3, bod uchaf rhwymo yn yr ystod, 721 00:40:20,060 --> 00:40:23,210 wedi cael ei ddisodli gyda y gwerth hwn o y, a oedd 722 00:40:23,210 --> 00:40:27,230 oedd y paramedr cyntaf o'n swyddogaeth powerOf. 723 00:40:27,230 --> 00:40:31,700 Ac ar hyn o bryd, rydym yn dychwelyd exponentiator. 724 00:40:31,700 --> 00:40:33,345 Rydym yn dychwelyd y swyddogaeth. 725 00:40:33,345 --> 00:40:36,300 726 00:40:36,300 --> 00:40:39,550 >> Mae'n fath o fel ychydig o chwythu meddwl. 727 00:40:39,550 --> 00:40:44,360 Ond gadewch i ni ddychmygu beth sy'n digwydd pan fydda i'n galw swyddogaeth hon powerOf 728 00:40:44,360 --> 00:40:47,610 a phasio i mewn iddo ryw werth fel 2. 729 00:40:47,610 --> 00:40:50,020 Mae hyn yn golygu bod Yr wyf yn awr yn cael y gwerth 730 00:40:50,020 --> 00:40:55,130 2 ar gyfer y, sy'n golygu y gwerth hwn y yn swyddogaeth exponentiator hon 731 00:40:55,130 --> 00:40:56,410 Bydd y gwerth 2. 732 00:40:56,410 --> 00:41:01,290 Ond dw i'n dychwelyd hwn swyddogaeth exponentiator. 733 00:41:01,290 --> 00:41:05,900 >> Felly sylwi ar yr hyn Swift yn dweud fy wedi creu yn yr achos hwn. 734 00:41:05,900 --> 00:41:10,550 gadewch sgwâr yn diffiniad, mae'n swyddogaeth sy'n yn derbyn Dwbl 735 00:41:10,550 --> 00:41:12,610 ac yn dychwelyd Dwbl. 736 00:41:12,610 --> 00:41:16,590 Rwyf wedi creu swyddogaeth bod sgwariau rhywbeth 737 00:41:16,590 --> 00:41:19,782 defnyddio'r mecanwaith hwn yn iawn yma. 738 00:41:19,782 --> 00:41:22,490 Ac yn wir yn yr hyn sy'n digwydd yn ei fod yn dychwelyd swyddogaeth hon 739 00:41:22,490 --> 00:41:26,390 exponentiator, ond mae gwerth hwn y ei lapio tu mewn iddo. 740 00:41:26,390 --> 00:41:31,080 Ac felly yn awr bob tro rwy'n defnyddio hyn amrywiol neu gyson o'r enw 741 00:41:31,080 --> 00:41:35,180 sgwâr, mae'n ei fod yn mynd i ymddwyn fel swyddogaeth. 742 00:41:35,180 --> 00:41:39,960 Ac fel y gallaf wedyn alw y newidyn fel y byddwn yn galw swyddogaeth, 743 00:41:39,960 --> 00:41:43,830 a phasio i mewn iddo rhif, fel yn yr achos hwn 3. 744 00:41:43,830 --> 00:41:45,910 A byddaf wedyn yn sgwâr y gwerth hwn. 745 00:41:45,910 --> 00:41:53,340 Felly 3 sgwâr fydd wedyn yn dod yn 9, fel y gwelwn yma. 746 00:41:53,340 --> 00:41:56,530 >> Really crazy, ond mae hyn bellach yn rhoi'r cyfle i mi 747 00:41:56,530 --> 00:41:59,040 i greu swyddogaethau powerOf eraill. 748 00:41:59,040 --> 00:42:03,680 Fel y gallaf ei ddweud, OK, wel nawr rwyf eisiau i greu swyddogaeth newydd, powerOf (3), 749 00:42:03,680 --> 00:42:06,290 ac yn ei storio hynny i mewn i Gelwir ciwb gyson. 750 00:42:06,290 --> 00:42:10,220 Ac yn awr ciwb yn mynd i fod yn swyddogaeth ar wahân a fydd wedyn yn 751 00:42:10,220 --> 00:42:14,800 cymryd rhywfaint o werth fel mewnbwn a ciwb sydd gwerth fel y gallwn weld yn y llinell isaf 752 00:42:14,800 --> 00:42:16,420 yma. 753 00:42:16,420 --> 00:42:18,590 ciwb o 2 yn mynd i arwain at 8. 754 00:42:18,590 --> 00:42:21,330 755 00:42:21,330 --> 00:42:22,680 >> Stwff Gobeithio eithaf taclus. 756 00:42:22,680 --> 00:42:25,920 Nad ydych erioed wedi gweld hyn o'r blaen. 757 00:42:25,920 --> 00:42:29,990 Yr wyf yn eich annog i edrych i mewn i gau ac ymchwilio i hyn ychydig yn fwy. 758 00:42:29,990 --> 00:42:33,570 Mae'n stwff 'n sylweddol bwerus rydym yn gweld llawer yn JavaScript a rhai ieithoedd eraill. 759 00:42:33,570 --> 00:42:37,160 Mae'n wirioneddol hanfodol deall APIs yn ogystal 760 00:42:37,160 --> 00:42:38,620 y byddwn yn mynd i mewn dim ond eiliad. 761 00:42:38,620 --> 00:42:39,456 Do? 762 00:42:39,456 --> 00:42:43,740 >> GYNULLEIDFA: Pan fyddwch yn ei wneud powerOf (2), cromfachau, ac yna 763 00:42:43,740 --> 00:42:48,764 parenthesis arall, input-- arall eich bod yn y bôn yn lle'r sgwâr. 764 00:42:48,764 --> 00:42:50,930 DAN AMRMENDARIZ: Felly edrych ar y llinell olaf un yma. 765 00:42:50,930 --> 00:42:55,930 Mae'n mewn gwirionedd yn gwbl bosibl i gwneud hynny gadwyno fel yr awgrymasoch. 766 00:42:55,930 --> 00:43:00,990 Felly powerOf (5) yn golygu ein bod yn mynd i gael exponentiator o 5 i fyny fan hyn. 767 00:43:00,990 --> 00:43:04,160 Felly, mae hyn yn ei hanfod yn mynd i fod y un peth â 4 i'r pumed rym, 768 00:43:04,160 --> 00:43:07,200 oherwydd ein bod wedi creu exponentiating gweithredu i'r pumed pŵer, 769 00:43:07,200 --> 00:43:09,920 ac rydym yn pasio i mewn sy'n gweithredu gwerth 4. 770 00:43:09,920 --> 00:43:12,619 Ac rydym yn cael y gwerth ein bod yn disgwyl, 1024. 771 00:43:12,619 --> 00:43:14,785 GYNULLEIDFA: Ac nid ei fod yn enw, felly mae'n gwneud yn haws 772 00:43:14,785 --> 00:43:16,570 i ddarllen, y sgwâr beth bynnag. 773 00:43:16,570 --> 00:43:17,903 >> DAN AMRMENDARIZ: Iawn, yn union. 774 00:43:17,903 --> 00:43:21,120 Felly, cyn i mi jyst roi i mewn i gyson yma fel 775 00:43:21,120 --> 00:43:23,808 ei fod yn ei gwneud yn hawdd i'w defnyddio enw hwnnw. 776 00:43:23,808 --> 00:43:24,308 Do? 777 00:43:24,308 --> 00:43:26,942 >> GYNULLEIDFA: Yn y cyd-destun hwn powerOf, mae'n rhan 778 00:43:26,942 --> 00:43:30,774 o'r iaith raglennu yn hytrach na'r ffordd yr ydych 779 00:43:30,774 --> 00:43:33,952 meddwl am powerOf yn [Anghlywadwy]? 780 00:43:33,952 --> 00:43:35,660 DAN AMRMENDARIZ: Felly yn yr achos hwn, powerOf 781 00:43:35,660 --> 00:43:39,280 yn syml, enw'r swyddogaeth yr wyf ddiffinnir fyny fan hyn. 782 00:43:39,280 --> 00:43:41,801 Felly nid yw'n gynhenid i'r iaith ei hun, 783 00:43:41,801 --> 00:43:43,550 ond yn hytrach, 'i' jyst swyddogaeth sydd 784 00:43:43,550 --> 00:43:45,628 bod enw gan fy mod yn rhoi enw hwnnw. 785 00:43:45,628 --> 00:43:48,770 786 00:43:48,770 --> 00:43:51,920 Unrhyw gwestiynau eraill? 787 00:43:51,920 --> 00:43:52,800 Iawn. 788 00:43:52,800 --> 00:43:54,750 >> Yn awr mae hyn yn wych. 789 00:43:54,750 --> 00:43:58,170 Ond nid ydych yn mynd i weld llawer o swyddogaethau cau y 790 00:43:58,170 --> 00:44:03,440 yn debyg i hyn lle rydych yn diffinio, y tu mewn o un swyddogaeth, swyddogaeth arall. 791 00:44:03,440 --> 00:44:04,320 A allwch chi wneud hynny. 792 00:44:04,320 --> 00:44:06,430 Ond mae'n fath o beidio 'n sylweddol angen, dde? 793 00:44:06,430 --> 00:44:09,189 Fel pam ydw i'n diffinio hyn swyddogaeth a elwir yn exponentiator 794 00:44:09,189 --> 00:44:10,480 ac yna dychwelyd ar unwaith. 795 00:44:10,480 --> 00:44:15,220 Ni all Pam Fi jyst yn syth dychwelyd swyddogaeth hon? 796 00:44:15,220 --> 00:44:18,890 >> Ac yn wir, mae hyn yn union y syniad y tu ôl i gysyniad o'r enw 797 00:44:18,890 --> 00:44:22,410 swyddogaethau dienw, lle Nid yw swyddogaethau dienw yn ei wneud mewn gwirionedd 798 00:44:22,410 --> 00:44:25,270 gael enw am eu bod yn Nid oes angen i gael un. 799 00:44:25,270 --> 00:44:28,700 Ac felly yn yr achos hwn, yn 7B, gallwn ddod o hyd yn union hynny. 800 00:44:28,700 --> 00:44:31,470 Mae hyn i gyd yr un cod, gwneud yn union yr un peth, 801 00:44:31,470 --> 00:44:35,570 ond erbyn hyn rydym wedi ei newid ychydig er swyddogaeth honno powerOf hon ar unwaith 802 00:44:35,570 --> 00:44:37,750 yn dychwelyd swyddogaeth. 803 00:44:37,750 --> 00:44:44,150 Sylwch bod ar ôl dychwelyd, mae 'na braced cyrliog agored. 804 00:44:44,150 --> 00:44:46,410 Mae'n disgwyl cyfraniad hwn Dwbl. 805 00:44:46,410 --> 00:44:48,560 Mae'n disgwyl y cynnyrch dwbl. 806 00:44:48,560 --> 00:44:52,175 Ac yna y mewn allweddair gwahanu'r cod ei hun. 807 00:44:52,175 --> 00:44:53,550 Felly, mae hyn yn swyddogaeth ddienw. 808 00:44:53,550 --> 00:44:57,030 Nid oes mewn gwirionedd yn cael enw, tra cyn iddo gael ei alw exponentiator. 809 00:44:57,030 --> 00:45:00,229 Ond fel y gwelsom, jyst 'n sylweddol Nid oedd yn cyfeirio at exponentiator 810 00:45:00,229 --> 00:45:01,270 y tu allan i swyddogaeth honno. 811 00:45:01,270 --> 00:45:02,470 Felly nid oedd ots. 812 00:45:02,470 --> 00:45:06,300 Felly, mae hyn swyddogaeth dienw yn hyn a elwir gan ei fod yn ddienw, 813 00:45:06,300 --> 00:45:09,107 ond mae'n dal i gael ei defnyddio yng nghyd-destun y cod hwn. 814 00:45:09,107 --> 00:45:13,690 815 00:45:13,690 --> 00:45:16,079 >> Y rhai ddwy nesaf rwy'n mynd i barhau, gobeithio, 816 00:45:16,079 --> 00:45:17,370 chwythu eich meddwl ychydig. 817 00:45:17,370 --> 00:45:20,410 Gallwn symleiddio'r hyn hyd yn oed yn fwy. 818 00:45:20,410 --> 00:45:24,490 Oherwydd fel yr oedd yn astud nodwyd yn gynharach, 819 00:45:24,490 --> 00:45:29,100 efallai ein bod mewn gwirionedd yn gwybod, gan casglu bod o'r cod hwn, beth 820 00:45:29,100 --> 00:45:31,750 allbwn y cod hwn yn mynd i fod. 821 00:45:31,750 --> 00:45:38,180 Ac yn wir, yn y swyddogaeth ddienw, gallwn mewn gwirionedd yn awgrymu y mathau o ddata. 822 00:45:38,180 --> 00:45:41,650 >> Felly, yn yr un yma, rydym bellach yn Mae angen rhoi diffiniad penodol o 823 00:45:41,650 --> 00:45:44,850 y math o ddata sy'n cael ei mewnbwn ac allbwn o'r swyddogaeth hon 824 00:45:44,850 --> 00:45:45,890 am ychydig o resymau. 825 00:45:45,890 --> 00:45:51,390 Un yw ein bod ni wedi diffinio, i fyny yn y prototeip o'r swyddogaeth amgáu, 826 00:45:51,390 --> 00:45:55,770 pa fath o ddata dienw hwn Dylai swyddogaeth mewnbwn ac allbwn. 827 00:45:55,770 --> 00:45:57,900 Ac oddi wrth y llall, yr ydym Gellir casglu oddi wrth y cod 828 00:45:57,900 --> 00:46:01,930 lawr yma yr ydym yn derbyn mewnbwn sydd o fath Double 829 00:46:01,930 --> 00:46:03,670 a dychwelyd Dwbl. 830 00:46:03,670 --> 00:46:07,890 >> Sylwch fod yma nid ydym wedi benodol diffiniedig enwau'r dadleuon 831 00:46:07,890 --> 00:46:11,220 bod y swyddogaeth hon yn cael ei derbyn. 832 00:46:11,220 --> 00:46:16,180 Ac felly rydym yn gweld y gallwn gyfeirio at paramedrau hynny sy'n defnyddio $ 0, $ 1, 833 00:46:16,180 --> 00:46:20,140 yn y blaen ac yn y blaen, yn dibynnu ar y nifer o y paramedr a ddefnyddir 834 00:46:20,140 --> 00:46:20,850 yn y swyddogaeth hon. 835 00:46:20,850 --> 00:46:23,370 836 00:46:23,370 --> 00:46:29,740 >> Mae hyn yn rhywbeth yr ydych yn mynd gweld llawer yn y band cyrliog agored 837 00:46:29,740 --> 00:46:32,797 diffiniad ddilyn gan $ 0, ac yna mae rhai llawdriniaeth, 838 00:46:32,797 --> 00:46:34,130 ac yna braced cyrliog caeedig. 839 00:46:34,130 --> 00:46:38,630 Mae hynny yn swyddogaeth anhysbys sy'n perfformio y llawdriniaeth hon. 840 00:46:38,630 --> 00:46:42,940 Mae ganddo paramedr hwn lle 'i' math cael ei awgrymu yn. 841 00:46:42,940 --> 00:46:44,860 Dyna paramedr cyntaf yw $ yn 0. 842 00:46:44,860 --> 00:46:49,010 Ac mae rhai llawdriniaeth yn yn digwydd ar y $ yn 0. 843 00:46:49,010 --> 00:46:52,100 >> GYNULLEIDFA: Felly yr arwydd doler golygu paramedr yn y bôn, 844 00:46:52,100 --> 00:46:53,429 a 0 yn golygu yr un cyntaf? 845 00:46:53,429 --> 00:46:54,720 DAN ARMENDARIZ: Mae hynny'n gywir. 846 00:46:54,720 --> 00:46:59,100 Felly mae'r arwydd doler yn y bôn yn golygu paramedr, a 0 yn golygu yr un cyntaf. 847 00:46:59,100 --> 00:47:02,760 Ond mae'n gweithio yn benodol yn yr achos hwn lle nad wyf wedi enwi 848 00:47:02,760 --> 00:47:07,940 y dadleuon yn fy swyddogaeth ddienw. 849 00:47:07,940 --> 00:47:11,119 >> GYNULLEIDFA: A yw Perl neu rywbeth gael arwydd doler hwn, doler 0 i mewn 'na? 850 00:47:11,119 --> 00:47:12,702 DAN ARMENDARIZ: A oes sydd, mae'n ddrwg gen i? 851 00:47:12,702 --> 00:47:15,360 GYNULLEIDFA: A oes gan Perl gael doler hwn 0, doler 1-- 852 00:47:15,360 --> 00:47:17,318 DAN ARMENDARIZ: Dydw i ddim yn yn rhy gyfarwydd â Perl, 853 00:47:17,318 --> 00:47:21,340 ond PHP hyn sy'n diffinio newidynnau yn seiliedig ar arwyddion ddoler. 854 00:47:21,340 --> 00:47:26,120 Ac efallai y bydd rhai ieithoedd sydd â nodweddion fel hyn. 855 00:47:26,120 --> 00:47:28,240 Yn wir, Swift benthyg yn llawer o nodweddion fel hyn 856 00:47:28,240 --> 00:47:29,489 o lawer o ieithoedd eraill. 857 00:47:29,489 --> 00:47:32,380 Rydym yn gweld awgrym o Python ynddo. 858 00:47:32,380 --> 00:47:35,800 Mae'r diffiniad hwn o fath ymddangos i ddod o OCaml. 859 00:47:35,800 --> 00:47:38,932 Ac rydym wedi dim ond criw cyfan o pethau o lawer o wahanol ieithoedd. 860 00:47:38,932 --> 00:47:40,640 Dyna un o'r 'n glws pethau am Swift 861 00:47:40,640 --> 00:47:43,390 yw ei fod yn cymryd llawer o'r gorau syniadau o griw o ieithoedd 862 00:47:43,390 --> 00:47:47,229 ac yn shoehorns nhw i gyd at ei gilydd i mewn i un iaith super. 863 00:47:47,229 --> 00:47:49,520 Yn wir, os ydych yn caniatáu i mi parhau i chwythu eich meddwl, 864 00:47:49,520 --> 00:47:51,000 felly rydym wedi bod yn gwneud hyn i gyd. 865 00:47:51,000 --> 00:47:56,690 Efallai y gallwn symleiddio'r hyn ychydig yn bit trwy sylweddoli hynny, wrth gwrs, 866 00:47:56,690 --> 00:48:02,120 Swift Mae gan exponentiating swyddogaeth a adeiladwyd yn. 867 00:48:02,120 --> 00:48:04,660 Os byddaf yn mewnforio Darwin, a oedd yn yn unig yw llyfrgell sydd 868 00:48:04,660 --> 00:48:09,680 Nodweddion swyddogaeth gelwir hyn pow, yn awr Gallaf symleiddio fy pŵer swyddogaeth 869 00:48:09,680 --> 00:48:11,830 i fod y canlynol. 870 00:48:11,830 --> 00:48:15,860 Mae'n mynd i fod yn dychwelyd swyddogaeth dienw hwn. 871 00:48:15,860 --> 00:48:17,950 >> Ond edrych ar sut syml hwn bellach. 872 00:48:17,950 --> 00:48:22,780 Mae hyn yn swyddogaeth anhysbys sy'n yn derbyn rhyw fath o ddata, 873 00:48:22,780 --> 00:48:26,600 ac mae'n mynd i fod yn un dadl yn benodol, 874 00:48:26,600 --> 00:48:29,320 cyfeiriwyd at $ 0 sydd o fath Dwbl. 875 00:48:29,320 --> 00:48:32,680 Mae'n mynd i ddychwelyd math dwbl. 876 00:48:32,680 --> 00:48:35,760 Ond mae'r datganiad yn dychwelyd yn awr yn ymhlyg. 877 00:48:35,760 --> 00:48:39,990 >> Ac mae'n union y dull hwn fod yn iawn, yn gyffredin iawn yn Swift, 878 00:48:39,990 --> 00:48:40,790 i gyd dros y lle. 879 00:48:40,790 --> 00:48:43,190 Rydym yn mynd i weld hon drwy'r amser yn Swift. 880 00:48:43,190 --> 00:48:46,150 Felly dw i'n dangos hyn oll i chi oherwydd cystrawen hwn. 881 00:48:46,150 --> 00:48:49,070 Mae hyn yn gyffredin iawn i weld, sy'n golygu ei fod 882 00:48:49,070 --> 00:48:51,420 yn swyddogaeth anhysbys sy'n cael ei perfformio 883 00:48:51,420 --> 00:48:54,640 rhywfaint weithredol ar y dadleuon hyn. 884 00:48:54,640 --> 00:48:56,940 Ac mae ffurflen ymhlyg. 885 00:48:56,940 --> 00:49:01,850 Felly mae'n hollol yr un peth i ni i ddweud hyn, dde yma. 886 00:49:01,850 --> 00:49:05,730 887 00:49:05,730 --> 00:49:08,150 >> Gan fod cyrliog hwn braced yn swyddogaeth, 888 00:49:08,150 --> 00:49:10,480 rydym yn perfformio llawdriniaeth hon ar y ddadl gyntaf. 889 00:49:10,480 --> 00:49:12,170 Rydym yn mynd i ddychwelyd hynny. 890 00:49:12,170 --> 00:49:14,815 Ond dychwelyd allanol hyn yn dychwelyd y ffwythiant cyfan, 891 00:49:14,815 --> 00:49:19,855 swyddogaeth honno dienw cyfan ein bod wedi creu unig. 892 00:49:19,855 --> 00:49:21,689 Unrhyw gwestiynau eraill? 893 00:49:21,689 --> 00:49:23,980 Mae pob hawl, nid wyf yn gwybod os rydych guys yn barod ar gyfer hyn, 894 00:49:23,980 --> 00:49:27,455 ond gallwn fynd hyd yn oed crazier gyda Swift. 895 00:49:27,455 --> 00:49:28,560 Rydych yn barod? 896 00:49:28,560 --> 00:49:29,930 OK, mae hyn yn wych. 897 00:49:29,930 --> 00:49:35,310 >> Nawr rydym mewn gwirionedd yn meddu ar y gallu i, yn Swift, oherwydd y ffordd modiwlaidd 898 00:49:35,310 --> 00:49:39,650 a sut yn seiliedig protocol y mae, i diffinio ein gweithredwyr freaking hunain. 899 00:49:39,650 --> 00:49:44,060 Fel yn yr achos hwn, rydym yn cael unrhyw gweithredwr i exponentiation-- yn dda, 900 00:49:44,060 --> 00:49:47,990 ar gyfer pwerau o rywbeth perfformio. 901 00:49:47,990 --> 00:49:53,632 Ond gallaf, yn Swift, diffinio newydd gweithredwr sy'n gwneud yn union hynny. 902 00:49:53,632 --> 00:49:55,590 Felly, yn yr achos hwn mae ' criw o gystrawen yma. 903 00:49:55,590 --> 00:49:59,980 A byddaf yn caniatáu i chi edrych arno gartref pan fyddwch yn edrych ar hyn. 904 00:49:59,980 --> 00:50:06,890 Ond rydym yn diffinio infix hwn gweithredydd, **, a fydd wedyn yn caniatáu i ni, 905 00:50:06,890 --> 00:50:09,840 trwy ddiffinio beth mae hynny'n ei swyddogaeth ** mewn gwirionedd 906 00:50:09,840 --> 00:50:15,010 mae, i dderbyn llaw chwith ochr a ochr dde, 907 00:50:15,010 --> 00:50:21,190 ac yna dychwelyd y ddehonglwr o hynny ochr chwith ar yr ochr dde. 908 00:50:21,190 --> 00:50:24,850 >> Ac felly erbyn hyn i gyd o fy mod sydyn wedi creu rhifiadur newydd. 909 00:50:24,850 --> 00:50:29,490 Felly 2 ** 3 yn golygu 2 i'r trydydd pŵer. 910 00:50:29,490 --> 00:50:34,420 [MIND SAIN RHYBUDD] Mae'r trwy Dylai ei hun yn gwneud i chi fod yn debyg, 911 00:50:34,420 --> 00:50:37,960 OK, sgriw C. Rydw i'n mynd Swift y ffordd i gyd. 912 00:50:37,960 --> 00:50:38,740 Mae hyn yn wych. 913 00:50:38,740 --> 00:50:40,140 Mae hyn yn eithaf anhygoel. 914 00:50:40,140 --> 00:50:42,240 >> Er bod hyn yn enghraifft wych. 915 00:50:42,240 --> 00:50:45,570 Ond yr wyf byth yn cael unwaith y tu allan yr enghraifft hon mewn gwirionedd 916 00:50:45,570 --> 00:50:46,800 diffinnir fy gweithredwr hun. 917 00:50:46,800 --> 00:50:49,710 Ond o hyd, mae'n dangos llawer o rym Swift 918 00:50:49,710 --> 00:50:54,050 a pham mae hyn yn mewn gwirionedd 'n sylweddol oera iawn. 919 00:50:54,050 --> 00:50:55,832 OK, ie? 920 00:50:55,832 --> 00:50:57,790 GYNULLEIDFA: Os ydych yn ddiffinio eich gweithredwr hun, 921 00:50:57,790 --> 00:51:02,940 sut ydych chi'n gwybod nad ydych yn ddamweiniol ceisio creu gweithredydd sy'n 922 00:51:02,940 --> 00:51:06,040 yn rhywle yn C, fel cuddio rhywle yn Swift, 923 00:51:06,040 --> 00:51:12,210 fel un aneglur yr ydych Efallai nad ydynt wedi eu gweld o'r blaen. 924 00:51:12,210 --> 00:51:15,050 >> DAN ARMENDARIZ: Felly, os ydych yn ceisio i ddiffinio eich hun gweithredwyr, 925 00:51:15,050 --> 00:51:20,970 ceir y risg o ddiffinio un dros gweithredydd sy'n bodoli eisoes. 926 00:51:20,970 --> 00:51:24,870 Sy'n mynd i mewn lefel o fanylder sy'n Nid wyf yn credu ein bod yn cael amser i fynd dros. 927 00:51:24,870 --> 00:51:27,620 Ond mae hynny'n risg. 928 00:51:27,620 --> 00:51:31,320 A dyna yn wir yr union reswm pam Doeddwn i ddim yn defnyddio'r symbol caret, a oedd yn 929 00:51:31,320 --> 00:51:36,210 pan fyddwn ni'n teipio allan pŵer, byddwn fel arfer defnyddiwch 4 ychydig caret 5 neu rywbeth 930 00:51:36,210 --> 00:51:40,560 fel 'na, dim ond pan rydym yn Gchatting cyfeillion neu beth bynnag. 931 00:51:40,560 --> 00:51:43,660 Ond yn yr achos hwnnw, sydd mewn gwirionedd yn byddai wedi achosi gwrthdrawiad. 932 00:51:43,660 --> 00:51:46,450 Ac felly yr wyf yn osgoi iddo dim ond oherwydd Yr wyf yn digwydd i wybod yn yr achos hwn 933 00:51:46,450 --> 00:51:50,430 y byddai hynny'n peri bod gwrthdrawiad. 934 00:51:50,430 --> 00:51:52,270 >> Iawn. 935 00:51:52,270 --> 00:51:55,080 Nawr yn anffodus, ar gyfer y saith munud olaf, 936 00:51:55,080 --> 00:51:57,410 Rhaid i mi gadw chwiban eich meddyliau ychydig. 937 00:51:57,410 --> 00:52:00,230 Felly caniatáu i mi i ddangos i chi rhai pethau eraill hefyd. 938 00:52:00,230 --> 00:52:03,710 >> Rydym wedi dangos i chi y syniad hwn o cael swyddogaethau dienw hyn, 939 00:52:03,710 --> 00:52:07,040 cau hyn, sy'n eich caniatáu i math o pasio swyddogaethau o gwmpas. 940 00:52:07,040 --> 00:52:08,100 Gallwch eu dychwelyd. 941 00:52:08,100 --> 00:52:09,490 Gallwch eu trin. 942 00:52:09,490 --> 00:52:11,790 Gallwch wneud pob math o bethau crazy. 943 00:52:11,790 --> 00:52:14,850 >> Ond mae un peth arall sy'n digwydd bod yn ddefnyddiol 944 00:52:14,850 --> 00:52:19,740 yw y gallu i, yn hytrach na i ddychwelyd swyddogaethau hynny 945 00:52:19,740 --> 00:52:25,146 mewn swyddogaeth, i basio swyddogaeth fel baramedr i swyddogaeth arall. 946 00:52:25,146 --> 00:52:30,430 Efallai eich bod yn meddwl yn dda pam ar y Ddaear fyddwn am wneud rhywbeth fel 'na? 947 00:52:30,430 --> 00:52:33,660 >> Wel, gadewch i ni yn dweud fy mod eisiau i gymryd gweithredwr hwn yr wyf 948 00:52:33,660 --> 00:52:40,260 gweithio mor galed i greu a chymhwyso i griw o wahanol rifau 949 00:52:40,260 --> 00:52:41,770 mewn amrywiaeth. 950 00:52:41,770 --> 00:52:46,700 Felly, yn yr achos hwn mae gen i amrywiaeth o integers-- 1, 4, 7, 2, 5, 10, 56. 951 00:52:46,700 --> 00:52:48,080 Ac yr wyf am i ddyblu nhw i gyd. 952 00:52:48,080 --> 00:52:50,430 Mae'r modd y byddem fel arfer yn ei wneud ydy at jyst ysgrifennu 953 00:52:50,430 --> 00:52:53,440 yn syml ar gyfer dolen sy'n ailadrodd dros bob un ohonynt 954 00:52:53,440 --> 00:52:57,140 a pherfformio rhyw fath o gweithrediad sgwâr drostynt, 955 00:52:57,140 --> 00:53:02,700 mewnbynnu gwerthoedd newydd hynny i mewn i newydd newidiol, neu yn hytrach, amrywiaeth newydd yma. 956 00:53:02,700 --> 00:53:07,370 A gwerth allbwn canlyniad yw Yna holl araeau hynny, 957 00:53:07,370 --> 00:53:10,200 neu yn hytrach phawb elfennau bellach sgwâr. 958 00:53:10,200 --> 00:53:12,680 >> A gallem wneud yr un peth beth am cubing hynny, 959 00:53:12,680 --> 00:53:15,360 ond ychydig cloch larwm Dylai fod yn mynd i ffwrdd 960 00:53:15,360 --> 00:53:17,360 gan ddweud bod efallai mae rhyw ffordd y byddem 961 00:53:17,360 --> 00:53:19,860 yn gallu symleiddio hyn ychydig. 962 00:53:19,860 --> 00:53:21,130 Ac yn wir, mae yna. 963 00:53:21,130 --> 00:53:25,320 Beth pe gallem greu swyddogaeth sy'n caniatáu i ni 964 00:53:25,320 --> 00:53:28,350 i dderbyn, fel ysglyfaethwr, swyddogaeth? 965 00:53:28,350 --> 00:53:30,350 Felly, yn yr achos hwn, yn cymryd edrych ar y dadleuon hyn. 966 00:53:30,350 --> 00:53:33,220 Rydym yn mynd i dderbyn rhestr o dyblau. 967 00:53:33,220 --> 00:53:35,030 Ac yna rydym yn mynd i dderbyn swyddogaeth 968 00:53:35,030 --> 00:53:40,990 mewn newidyn a elwir f sy'n mynd i gymryd Dwbl a dychwelyd Dwbl. 969 00:53:40,990 --> 00:53:43,320 Ac mae'r allbwn cyfan o hyn swyddogaeth cyfan 970 00:53:43,320 --> 00:53:47,310 Gelwir mapper yn mynd i dychwelyd arae o'r enw dwbl. 971 00:53:47,310 --> 00:53:52,380 >> Beth fyddai hyn wedyn yn caniatáu i mi wneud yw ailadrodd dros y rhestr honno 972 00:53:52,380 --> 00:53:56,350 ac yn gwneud yr un peth, ond erbyn hyn cymhwyso swyddogaeth honno ar bob 973 00:53:56,350 --> 00:53:58,970 o'r gwerthoedd unigol yn y rhestr honno. 974 00:53:58,970 --> 00:54:00,750 Felly, nid wyf ddim yn gwybod pa f yw. 975 00:54:00,750 --> 00:54:02,010 Nid yw o bwys i mi. 976 00:54:02,010 --> 00:54:06,530 Ond cyn belled ag y mae'n ei gymryd mewn Dwbl, perfformio rhywfaint llawdriniaeth arno, 977 00:54:06,530 --> 00:54:08,640 ac yna yn dychwelyd Dwbl, byddwn wedyn yn 978 00:54:08,640 --> 00:54:13,415 gallu i fapio swyddogaeth honno ar draws pob elfen unigol yn y rhestr. 979 00:54:13,415 --> 00:54:16,270 980 00:54:16,270 --> 00:54:20,930 >> A'r math yma o raglenni yn Gelwir swyddogaethau uwch, 981 00:54:20,930 --> 00:54:24,440 lle'r ydym yn pasio swyddogaethau o gwmpas fel paramedrau 982 00:54:24,440 --> 00:54:26,430 a gwneud pethau gyda swyddogaethau. 983 00:54:26,430 --> 00:54:29,640 Mae'n fath o fel cymryd pob un o'r rhain syniadau yr ydym wedi dysgu yn CS50 984 00:54:29,640 --> 00:54:31,390 ac yn mynd â nhw didoli o i'r lefel nesaf. 985 00:54:31,390 --> 00:54:34,140 Ac mae hyn i gyd yn bethau arddull CS51. 986 00:54:34,140 --> 00:54:37,080 Ac felly byddwn yn mynd yn fanwl mwy mewn dosbarthiadau fel 'na. 987 00:54:37,080 --> 00:54:38,930 >> Ond mae hyn yn hefyd pwysig yma oherwydd ein bod 988 00:54:38,930 --> 00:54:42,010 gweld llawer o swyddogaethau sy'n cael eu defnyddio mewn Swift 989 00:54:42,010 --> 00:54:45,590 hynny ei hanfod yn gwneud hyn, lle mae gennym 990 00:54:45,590 --> 00:54:48,300 rhai rhifau, rhyw amrywiaeth o rifau. 991 00:54:48,300 --> 00:54:50,850 Rydym yn mynd i basio hynny amrywiaeth yn ein mapper. 992 00:54:50,850 --> 00:54:55,770 Ac rydym hefyd yn mynd i pasio rhywfaint o swyddogaeth, a oedd yn 993 00:54:55,770 --> 00:54:57,950 rydym eisoes wedi diffinio'n fyny fan hyn. 994 00:54:57,950 --> 00:54:59,690 Mae'n mynd i fod yn sgwâr. 995 00:54:59,690 --> 00:55:02,220 Ac rydym yn mynd i hynny sgwâr pob un o'r niferoedd hynny 996 00:55:02,220 --> 00:55:04,710 ac yn ei storio mewn i hynny y canlyniad hwn yma. 997 00:55:04,710 --> 00:55:07,280 998 00:55:07,280 --> 00:55:11,000 >> Felly, yr achos hwn rydym wedi diffinio'n ein swyddogaeth ei hun o'r enw mapper. 999 00:55:11,000 --> 00:55:15,370 Ond mae hyn yn union beth yw, mewn gwirionedd, a adeiladwyd i mewn i Swift. 1000 00:55:15,370 --> 00:55:18,960 Mae amrywiaeth o swyddogaethau a elwir map. 1001 00:55:18,960 --> 00:55:21,520 Mae 'na swyddogaeth map, mae 'na lleihau swyddogaeth, 1002 00:55:21,520 --> 00:55:25,630 ac mae 'na swyddogaeth hidlo, sydd yn eu hanfod yn gymwys swyddogaethau 1003 00:55:25,630 --> 00:55:30,782 at bob elfen sengl mewn rhestru i addasu nhw mewn rhyw ffordd. 1004 00:55:30,782 --> 00:55:34,510 >> GYNULLEIDFA: Felly ers i chi yn trawsnewid mae'r data i fformat arall 1005 00:55:34,510 --> 00:55:36,134 drwy function-- 1006 00:55:36,134 --> 00:55:37,050 DAN ARMENDARIZ: Iawn. 1007 00:55:37,050 --> 00:55:39,420 Yeah, felly mae'r swyddogaeth ein bod yn derbyn 1008 00:55:39,420 --> 00:55:41,790 yn trawsnewid y data mewn rhyw ffordd. 1009 00:55:41,790 --> 00:55:44,700 Yn yr achos hwn, roeddem yn naill ai sgwario, neu yr oeddem yn ei cubing, 1010 00:55:44,700 --> 00:55:50,060 neu yn wir, gallem perfformio dim llawdriniaeth arno o gwbl. 1011 00:55:50,060 --> 00:55:54,150 >> Ond gadewch i mi ddangos i chi wedyn sut mae hyn yn yn mynd i edrych yn ymarferol. 1012 00:55:54,150 --> 00:55:56,681 Ac eto, yr wyf i'n rhedeg dipyn o amser. felly dydw i ddim 1013 00:55:56,681 --> 00:55:59,430 mynd i fod yn gallu mynd dros yr holl o'r cod ffynhonnell yma yn fanwl. 1014 00:55:59,430 --> 00:56:00,721 Ond yr wyf yn eich annog i wneud hynny. 1015 00:56:00,721 --> 00:56:03,850 Byddwn yn ei bostio cyn gynted ag y phosibl ar ôl y sgwrs yma. 1016 00:56:03,850 --> 00:56:07,610 >> Ond os ydych yn edrych ar hyn, gymryd yn ganiataol bod gennym restr o rifau, 1017 00:56:07,610 --> 00:56:10,260 amrywiaeth o rifau yn hyn newidyn a elwir yn rhifau. 1018 00:56:10,260 --> 00:56:16,670 Yna, rydym yn awyddus i berfformio hyn gweithredu hidlydd ar y niferoedd hynny. 1019 00:56:16,670 --> 00:56:19,730 Felly hidlo yn uwch swyddogaeth fel y 1020 00:56:19,730 --> 00:56:24,660 yn derbyn arae ac hefyd swyddogaeth. 1021 00:56:24,660 --> 00:56:28,760 Ac ar bob elfen yn y array, mae'n perfformio swyddogaeth honno. 1022 00:56:28,760 --> 00:56:31,990 >> Os yw hynny'n dychwelyd ffwythiant yn wir, mae'n cadw yr eitem honno. 1023 00:56:31,990 --> 00:56:36,100 Os yw hynny'n dychwelyd ffug, mae'n taflu yr eitem honno. 1024 00:56:36,100 --> 00:56:40,480 Ac yna mae'n dychwelyd rhestr hynny wedyn yn cynnwys yr holl 1025 00:56:40,480 --> 00:56:44,360 o'r eitemau hynny sydd wedi cael eu hidlo. 1026 00:56:44,360 --> 00:56:47,150 >> Felly, mewn geiriau arall, mae hyn yn yr un syniad, mae'r llyfr graddau. 1027 00:56:47,150 --> 00:56:50,800 Efallai y byddwn yn cael amrywiaeth o raddau i mewn i werth gelwir hyn rhifau. 1028 00:56:50,800 --> 00:56:55,590 A allai fod yn 100, a 70, a 40, yn y blaen ac yn y blaen. 1029 00:56:55,590 --> 00:56:59,110 Pa hidlydd hwn yn ei wneud yw rhybudd mai hyn yw bod siwgr cystrawennol 1030 00:56:59,110 --> 00:57:01,310 am swyddogaeth ddienw. 1031 00:57:01,310 --> 00:57:05,980 Mae hyn yn swyddogaeth anhysbys dweud bod y paramedr fy mod i'n derbyn 1032 00:57:05,980 --> 00:57:09,690 yn mynd i fod, os bydd yn yn fwy na 70, 1033 00:57:09,690 --> 00:57:15,837 yna bydd hyn yn dychwelyd yn wir, sy'n golygu bod Bydd yr eitem yn cael ei gadw yn hidlo hwn. 1034 00:57:15,837 --> 00:57:17,920 Felly gadewch i ni fod ychydig mwy pendant am hyn. 1035 00:57:17,920 --> 00:57:25,760 Os oes gen i amrywiaeth hon o rifau ac mae'n cynnwys 100, 70, a 40, 1036 00:57:25,760 --> 00:57:29,730 Yr wyf yn perfformio hidlen yma gweithredu ar bob un o'r rheiny. 1037 00:57:29,730 --> 00:57:33,270 Fel bod un cyntaf yw gwerth hwn o 100. 1038 00:57:33,270 --> 00:57:36,770 100 fwy na neu'n hafal i 70 yn wir, a oedd yn 1039 00:57:36,770 --> 00:57:41,950 yn golygu bod 100 yn cael ei gadw mewn y copi newydd o'r amrywiaeth hon. 1040 00:57:41,950 --> 00:57:44,290 70 hefyd yn mynd heibio. 1041 00:57:44,290 --> 00:57:46,020 Ond nid 40 yn gwneud hynny. 1042 00:57:46,020 --> 00:57:54,290 Felly beth cael ei ddychwelyd yn passingCount yn yr amrywiaeth o elfennau 100 a 70-- 1043 00:57:54,290 --> 00:57:57,410 100, coma, 70. 1044 00:57:57,410 --> 00:57:59,870 Y rhai oedd yr unig ddau eitemau sydd yn cael eu cadw. 1045 00:57:59,870 --> 00:58:03,740 Ac felly y rheswm yr wyf yn gyflym yn mynd trwy llawer o'r math yma o safon uchel 1046 00:58:03,740 --> 00:58:08,680 mae pethau oherwydd hyn yw bod yn gyffredin beth y byddwch yn ei weld yn Swift 'n bert 1047 00:58:08,680 --> 00:58:16,810 yn aml, yn perfformio rhywfaint o weithredu yn arfer hon chystrawen ffwythiant dienw. 1048 00:58:16,810 --> 00:58:18,450 >> Mae rhai pethau oeri. 1049 00:58:18,450 --> 00:58:24,730 Switshis yn wirioneddol pwerus yn Swift, Yr wyf yn golygu yn union fel gwallgof, pwerus crazy. 1050 00:58:24,730 --> 00:58:28,250 Gallwch ddefnyddio switsh, a gallwch wneud cais iddynt mewn gwirionedd 1051 00:58:28,250 --> 00:58:33,160 i ystodau, sydd yn fath o crazy, ac yn gwneud pethau ffansi fel 'na. 1052 00:58:33,160 --> 00:58:37,540 >> Ond yn yr ychydig funudau diwethaf, Rwyf am hepgor y blaen yn eithaf pell 1053 00:58:37,540 --> 00:58:46,940 ac yn dangos i chi enghraifft benodol o'r modd y gallwn greu yn iOS app gan ddefnyddio Swift. 1054 00:58:46,940 --> 00:58:49,040 Felly, pan fyddwch yn ei wneud hyn, bydd yn rhaid i chi gymryd 1055 00:58:49,040 --> 00:58:51,990 a edrych at-- ar Afalau ' dogfennaeth, maent yn 1056 00:58:51,990 --> 00:58:56,084 yn cael llawer o sesiynau tiwtorial da iawn ar gyfer creu eich cais cyntaf. 1057 00:58:56,084 --> 00:58:58,250 Ac yr wyf yn eich annog i wneud hynny am eu bod yn mynd â chi 1058 00:58:58,250 --> 00:59:04,110 trwy'r holl gamau o beth yn union i cliciwch ar i greu cais iOS. 1059 00:59:04,110 --> 00:59:07,290 >> Ond dyma ni wedi hyn iOS app. 1060 00:59:07,290 --> 00:59:10,960 Ac mae'n app eithaf syml mewn gwirionedd. 1061 00:59:10,960 --> 00:59:13,840 Os byddaf yn rhedeg hyn, gadewch i mi ddangos chi sut mae'n edrych. 1062 00:59:13,840 --> 00:59:19,480 Y cyfan y mae'n ei hanfod wneud yw ei tynnu oddi ar y rhyngrwyd ffeil JSON 1063 00:59:19,480 --> 00:59:22,300 fy mod wedi eu storio ar weinydd. 1064 00:59:22,300 --> 00:59:26,310 Ac mae hynny'n ffeil JSON yn diffinio delweddau sy'n caniatáu 1065 00:59:26,310 --> 00:59:31,680 mi wedyn beicio drwy, ar fy app, delweddau o fy weinydd y we. 1066 00:59:31,680 --> 00:59:32,880 >> Felly, yr wyf wedi yma getNextImage. 1067 00:59:32,880 --> 00:59:37,100 Mae'n llwythi delwedd o'r rhyngrwyd, ac yna yn dangos ar y sgrin. 1068 00:59:37,100 --> 00:59:38,200 >> Felly mae'n eithaf syml. 1069 00:59:38,200 --> 00:59:41,550 Ond y nod yma yw dangos chi sut y gallwn gyfuno pethau 1070 00:59:41,550 --> 00:59:47,820 gan yr ychydig wythnosau olaf CS50 i mewn i gais iOS gwirioneddol. 1071 00:59:47,820 --> 00:59:53,140 Mewn geiriau eraill, efallai mai un o'r pethau y byddwch am ei wneud 1072 00:59:53,140 --> 00:59:56,340 yw cael gais iOS sy'n Gall dynnu data oddi ar y rhyngrwyd 1073 00:59:56,340 --> 00:59:59,070 ac yn dangos y defnyddiwr rhywfaint o wybodaeth. 1074 00:59:59,070 --> 01:00:03,130 Mae hynny'n gwbl y pwynt y cod ffynhonnell yma. 1075 01:00:03,130 --> 01:00:07,890 >> Felly mae llawer i'w ddweud am sut i wneud gwir ddatblygiad iOS. 1076 01:00:07,890 --> 01:00:12,860 Mae llawer o gystrawennau crazy nad ydym wedi ei weld yn eithaf eto 1077 01:00:12,860 --> 01:00:15,580 fel dosbarth, beth dosbarth mewn gwirionedd. 1078 01:00:15,580 --> 01:00:19,470 Gallwn anwybyddu i raddau helaeth hynny am y tro. 1079 01:00:19,470 --> 01:00:23,250 >> Ond yn sylwi ein bod wedi cynnwys o fewn y amrywiaeth o bethau 1080 01:00:23,250 --> 01:00:27,720 ein bod eisoes wedi gweld fel swyddogaethau sydd ag enwau penodol. 1081 01:00:27,720 --> 01:00:32,650 A phan fyddwn yn rhoi rhai swyddogaethau yr enwau cywir 1082 01:00:32,650 --> 01:00:36,530 y disgwylir gan iOS, mewn gwirionedd mae hyn yn teimlo ychydig yn hudol. 1083 01:00:36,530 --> 01:00:40,300 Ond pan fyddwch yn creu cais iOS, mae 1084 01:00:40,300 --> 01:00:47,590 yn enwau swyddogaeth benodol sydd yn cael eu galw gan y ffôn ei hun 1085 01:00:47,590 --> 01:00:52,440 gan fod y cais yn cael ei llwytho i roi cynnig i greu'r broses sydd mewn gwirionedd 1086 01:00:52,440 --> 01:00:54,787 yn rhedeg eich cais. 1087 01:00:54,787 --> 01:00:58,120 Felly unwaith eto, mae llawer o bethau yr wyf yn rhaid i sglein dros yma er mwyn i ni 1088 01:00:58,120 --> 01:01:00,570 i siarad am hyn yn benodol. 1089 01:01:00,570 --> 01:01:06,050 Ond yr wyf yn eich annog i edrych ar o bosibl y seminar iOS eraill, ond hefyd rhai 1090 01:01:06,050 --> 01:01:09,290 o'r sesiynau tiwtorial ar-lein sy'n gwneud gwaith llawer gwell o ddisgrifio 1091 01:01:09,290 --> 01:01:11,030 y wybodaeth benodol. 1092 01:01:11,030 --> 01:01:15,760 >> Ond gallwn weld un neu ddau o bethau y yn ddiddorol oddi wrth y cod yma. 1093 01:01:15,760 --> 01:01:17,950 Sylwch fod gennym os ddatganiadau. 1094 01:01:17,950 --> 01:01:20,400 Gyda llaw, un pwysig beth am os ddatganiadau 1095 01:01:20,400 --> 01:01:24,860 yw bod y cromfachau o gwmpas y Mynegiad Boole yn ddewisol. 1096 01:01:24,860 --> 01:01:30,800 Ond nid y braces cyrliog yn ddewisol, ni waeth pa mor ychydig neu lawer o linellau o god 1097 01:01:30,800 --> 01:01:32,360 sydd gennych mewn os bydd datganiad. 1098 01:01:32,360 --> 01:01:38,670 Ni allwch gael os yw'r datganiadau heb braces cyrliog yn Swift. 1099 01:01:38,670 --> 01:01:41,000 >> Ac mae hyn yn, wel, rhyw fath o wirion. 1100 01:01:41,000 --> 01:01:43,910 Ond mae rhesymau hanesyddol dros hynny. 1101 01:01:43,910 --> 01:01:46,180 Mae'n i fod i eich arbed rhag eich hun. 1102 01:01:46,180 --> 01:01:49,899 Fel hyn, er enghraifft, ni allwch gwared ar y braces cyrliog o gwmpas y 1103 01:01:49,899 --> 01:01:50,440 os ddatganiad. 1104 01:01:50,440 --> 01:01:52,730 Yn mewn gwirionedd yn ofynnol hynny. 1105 01:01:52,730 --> 01:01:54,480 Felly, yr wyf yn eich annog i cymerwch olwg ar hyn. 1106 01:01:54,480 --> 01:01:56,230 Ond mae un yn fwy adeiladu fy mod am 1107 01:01:56,230 --> 01:02:02,640 i ddangos i chi am Swift sy'n yn newydd i Swift 2.0 o gymharu 1108 01:02:02,640 --> 01:02:08,460 i fersiynau hŷn o Swift, sef y canlynol. 1109 01:02:08,460 --> 01:02:11,620 Gadewch i ni weld lle wnes i ei roi fan hyn? 1110 01:02:11,620 --> 01:02:16,630 >> Felly, yn y swyddogaeth hon a elwir yn fetchJSON, swyddogaeth hon 1111 01:02:16,630 --> 01:02:23,450 yn gyfrifol am dynnu hynny JSON ffeil o URL, sy'n digwydd dim ond fel 1112 01:02:23,450 --> 01:02:26,310 i fod yn rhedeg ar fy IDE CS50. 1113 01:02:26,310 --> 01:02:28,580 Rwyf newydd ddechrau Apache, rhoi fy ffeil JSON yno, 1114 01:02:28,580 --> 01:02:32,110 ac rwy'n gallu tynnu wedyn bod data o'r rhyngrwyd gan ddefnyddio 1115 01:02:32,110 --> 01:02:36,430 swyddogaeth hon a URL hwn, sy'n cael ei ddarparu gan y ffôn. 1116 01:02:36,430 --> 01:02:40,490 Mae wedi ei ddarparu gan llyfrgell eich bod yn ei ddefnyddio wrth 1117 01:02:40,490 --> 01:02:43,140 eich bod yn gwneud rhywfaint o ddatblygiad app iOS. 1118 01:02:43,140 --> 01:02:49,690 >> Sylwa yma fod yna mae hyn yn anarferol lluniad cystrawennol a elwir yn wyliadwrus. 1119 01:02:49,690 --> 01:02:53,530 Ac yn wir i gyd mae hyn yn Swift yn ffordd o wirio 1120 01:02:53,530 --> 01:02:56,870 bod rhai pethau wedi wedi'u bodloni cyn i chi 1121 01:02:56,870 --> 01:03:00,000 bwrw ymlaen â gweddill y swyddogaeth. 1122 01:03:00,000 --> 01:03:04,260 Er mwyn imi gael, gan ddefnyddio math dewisol hwn, 1123 01:03:04,260 --> 01:03:10,530 Gallwn fod wedi dod o hyd i'r URL gan rhedeg y swyddogaeth NSURL 1124 01:03:10,530 --> 01:03:16,640 a storio hynny i mewn i URL gyson, ac yna gwirio 1125 01:03:16,640 --> 01:03:20,820 i weld os URL oedd dim, gan ei fod yn yn mynd i ddychwelyd fath dewisol. 1126 01:03:20,820 --> 01:03:25,660 Ac os oedd dim, yna fyddwn i argraffu gwall ac yna dychwelyd. 1127 01:03:25,660 --> 01:03:29,970 >> Ond yn hytrach, pa gard yn gadael ni ei wneud yw yr union beth, 1128 01:03:29,970 --> 01:03:34,550 ond sicrhau ei fod yn mewn gwirionedd yn wir bod url 1129 01:03:34,550 --> 01:03:38,020 wedi ei osod yn briodol gan NSURL. 1130 01:03:38,020 --> 01:03:41,810 Ac os ydyw, yna mae'n sgipiau dros hyn, ac mae'n 1131 01:03:41,810 --> 01:03:46,110 Bydd yn eich galluogi i fwrw ymlaen â'r url ar ôl cael ei diffinio'n briodol. 1132 01:03:46,110 --> 01:03:48,830 Ond os yw'n wir fod Nid yw url yn cael ei ddiffinio yn iawn, 1133 01:03:48,830 --> 01:03:52,550 os yw ffwythiant yma yn dychwelyd gwall neu ryw beth annisgwyl arall 1134 01:03:52,550 --> 01:03:58,030 yn digwydd mewn gwirionedd, mae hyn yn lluniad gard yn caniatáu i ni wedyn allbwn sy'n gwall 1135 01:03:58,030 --> 01:04:00,390 a'i dychwelyd ar unwaith. 1136 01:04:00,390 --> 01:04:00,890 Do? 1137 01:04:00,890 --> 01:04:04,839 >> GYNULLEIDFA: Felly mae'n garedig o debyg i os hynny arall? 1138 01:04:04,839 --> 01:04:07,130 DAN ARMENDARIZ: Mae'n fath o fel arall, os hynny, ie, 1139 01:04:07,130 --> 01:04:14,200 ac eithrio bod url hwn, yna ddiffinnir ar gyfer popeth yn is na'r hyn. 1140 01:04:14,200 --> 01:04:20,420 Os yw'n pasio gard hwn, yna mae'n Bydd mewn gwirionedd yn cael eu llenwi â data 1141 01:04:20,420 --> 01:04:29,500 ac y gellir ei ddefnyddio yn y gweddill cod ffynhonnell yn eich swyddogaeth. 1142 01:04:29,500 --> 01:04:33,790 Felly yr wyf yn amau ​​eich bod yn mynd i dechrau gweld wyliadwrus hwn yn ogystal. 1143 01:04:33,790 --> 01:04:36,670 Ac fod yn ymwybodol o hynny. 1144 01:04:36,670 --> 01:04:46,270 >> Felly, dim ond edrych ar un neu ddau o eraill pethau, mae hyn yn iawn dyma beth, 1145 01:04:46,270 --> 01:04:53,377 yn eich barn chi, dim ond yn seiliedig ar yr hyn y oeddem yn sôn am o'r blaen? 1146 01:04:53,377 --> 01:04:56,650 >> GYNULLEIDFA: Meddyliwch bydd yn rhedeg yn y rhestr? 1147 01:04:56,650 --> 01:04:59,100 >> DAN ARMENDARIZ: Felly dyna agos. 1148 01:04:59,100 --> 01:05:02,360 Mae hon yn swyddogaeth yr ydym yn diffinio. 1149 01:05:02,360 --> 01:05:07,240 Ac rydym yn mewnbynnu swyddogaeth honno fel dadl i swyddogaeth hon fan hyn. 1150 01:05:07,240 --> 01:05:09,120 >> GYNULLEIDFA: [Anghlywadwy] os nad dim. 1151 01:05:09,120 --> 01:05:11,470 Felly mae'n yn y rhestr, dde? 1152 01:05:11,470 --> 01:05:15,450 >> DAN ARMENDARIZ: Os nad yw camgymeriad yn ddim, fel bod yw-- felly rhaid i mi sgrolio. 1153 01:05:15,450 --> 01:05:18,060 Wel, gadewch i ni weld, ni allaf wir yn sgrolio i'r dde yma. 1154 01:05:18,060 --> 01:05:23,161 gwall yn ddadl sy'n yn cael ei trosglwyddo i'r hyn swyddogaeth dienw. 1155 01:05:23,161 --> 01:05:24,410 Mae hyn yn swyddogaeth ddienw. 1156 01:05:24,410 --> 01:05:25,480 Nid oes ganddo unrhyw enw. 1157 01:05:25,480 --> 01:05:29,850 Ond rydym yn derbyn tri hyn dadleuon, data, ymateb, a chamgymeriadau. 1158 01:05:29,850 --> 01:05:33,590 Ac mae'n mynd i ddychwelyd yn ddi-rym, felly nid yw'n mynd i ddychwelyd unrhyw beth. 1159 01:05:33,590 --> 01:05:37,910 Ac mae hyn yn cynnwys y swyddogaeth honno. 1160 01:05:37,910 --> 01:05:41,961 Ac yna rydym yn cael mynediad y tu mewn i'r swyddogaeth i bob un o'r dadleuon hyn. 1161 01:05:41,961 --> 01:05:45,650 1162 01:05:45,650 --> 01:05:48,679 >> Felly mae'n corwynt taith o amgylch yr iaith. 1163 01:05:48,679 --> 01:05:50,470 Ond yr wyf yn gobeithio gyda hyn, gobeithio wrth i chi fynd 1164 01:05:50,470 --> 01:05:54,490 Edrychwch ar rai o'r sesiynau tiwtorial benodol i ddatblygu iOS gyda Swift, 1165 01:05:54,490 --> 01:05:57,481 yn enwedig os byddwch yn mynd i Afalau 'datblygwr page-- y we 1166 01:05:57,481 --> 01:05:59,980 ganddynt lawer o wir yn dda sesiynau tiwtorial i'ch rhoi ar ben. 1167 01:05:59,980 --> 01:06:05,010 Ond gobeithio dim ond yr awr hon o siarad am y gystrawen ei hun wedi rhoi 1168 01:06:05,010 --> 01:06:08,760 ydych yn ddigon i ddechrau arni gyda hynny. 1169 01:06:08,760 --> 01:06:12,950 >> Byddwn yn postio i gyd ffynhonnell hon cod ar wefan seminar 1170 01:06:12,950 --> 01:06:17,800 cyn gynted ag y bo modd, a hefyd y sleidiau felly mae gennych cyfeirio ar gyfer pawb. 1171 01:06:17,800 --> 01:06:20,530 Ond pob lwc gyda'ch prosiectau. 1172 01:06:20,530 --> 01:06:23,640 A diolch i chi i gyd yn fawr iawn am ddod. 1173 01:06:23,640 --> 01:06:26,990 >> [Cymeradwyaeth] 1174 01:06:26,990 --> 01:06:28,026