1 00:00:00,000 --> 00:00:11,270 2 00:00:11,270 --> 00:00:14,340 >> ДАНИЕЛ Армендариз: Здраво свима, велцоме то иОС апп развој 3 00:00:14,340 --> 00:00:15,020 са брзих. 4 00:00:15,020 --> 00:00:15,870 Ја сам Дан Армендариз. 5 00:00:15,870 --> 00:00:18,920 Ја сам прецептер од рачунара Наука овде у школи 6 00:00:18,920 --> 00:00:21,200 за инжењеринг и примењених наука. 7 00:00:21,200 --> 00:00:24,310 И брзо је заправо врста од врло уредну језику. 8 00:00:24,310 --> 00:00:27,190 И ја имам неке планове за данас. 9 00:00:27,190 --> 00:00:31,430 Тако у наредних сат времена или тако ћемо да погледате иОС апп самом развоју 10 00:00:31,430 --> 00:00:36,640 користећи Ксцоде и заправо стварање неке Веома основне, веома једноставне апликације. 11 00:00:36,640 --> 00:00:40,070 И гледајући на начин на који вас заправо узети те апликације, 12 00:00:40,070 --> 00:00:42,887 и граде их, и заправо ставите их на иОС уређају. 13 00:00:42,887 --> 00:00:44,970 Неке од ствари које нећемо гледати 14 00:00:44,970 --> 00:00:47,540 ће укључивати ствари као заправо узимајући апликацију 15 00:00:47,540 --> 00:00:48,940 и стављајући га на Апп Сторе. 16 00:00:48,940 --> 00:00:52,930 Има доста туторијала на мрежи која ће вам помоћи са тим аспектом њега. 17 00:00:52,930 --> 00:00:56,230 Већ и зато што део ЦС50, добијате 18 00:00:56,230 --> 00:00:59,780 да се придруже Аппле развој Тим, развој апликација тим ЦС50 је. 19 00:00:59,780 --> 00:01:02,790 Ако нисте урадили још и сте повезани са ЦС50, 20 00:01:02,790 --> 00:01:04,810 Ја не препоручујем да вас учинити зато што 21 00:01:04,810 --> 00:01:08,820 како сте у стању да створи неки програми у Ксцоде, 22 00:01:08,820 --> 00:01:11,890 граде их, и заправо пут их на неки од ваших иОС уређаје 23 00:01:11,890 --> 00:01:14,087 ако стварно имате физичка иОС уређај. 24 00:01:14,087 --> 00:01:16,670 Ако немате физички иОС Уређај који је више него добро. 25 00:01:16,670 --> 00:01:19,810 Ви заправо може развити за иОС. 26 00:01:19,810 --> 00:01:22,390 И Ксцоде има симулатор који вам омогућује 27 00:01:22,390 --> 00:01:26,570 да видим своју пријаву Акција на рачунару. 28 00:01:26,570 --> 00:01:30,440 Али некако је уредан ствар да стварно играју и интеракцију 29 00:01:30,440 --> 00:01:34,235 уз пријаву на стварне уређаја. 30 00:01:34,235 --> 00:01:37,360 Дакле има пар услова за уствари раде све ове развоја. 31 00:01:37,360 --> 00:01:39,151 Једна од њих је да морате да имате Мац. 32 00:01:39,151 --> 00:01:44,770 Мора се ради 10.9.4 или новији да би то развој са брзих. 33 00:01:44,770 --> 00:01:47,770 >> Можете користити раније Верзија за развијање 34 00:01:47,770 --> 00:01:50,810 са Објецтиве Ц за иОС и Мац. 35 00:01:50,810 --> 00:01:53,990 Али ја препоручујем, и много примери да ћемо видети данас, 36 00:01:53,990 --> 00:01:55,700 користе 10.10 Иосемите. 37 00:01:55,700 --> 00:02:00,910 Дакле, ако још нисте упградед, то је добар изговор да то уради. 38 00:02:00,910 --> 00:02:05,480 Сада Ксцоде 6.1 је најновија верзија интегрисано развојно окружење 39 00:02:05,480 --> 00:02:08,979 да је Аппле пружа бесплатно да можете преузети са Апп Сторе. 40 00:02:08,979 --> 00:02:11,220 И ја препоручујем да вас Такође имају најновију верзију. 41 00:02:11,220 --> 00:02:14,700 >> Ако се деси да буде покренут раније Верзија, Ксцоде 5 и испод само 42 00:02:14,700 --> 00:02:16,741 једноставно не уопште не подржавају брз. 43 00:02:16,741 --> 00:02:19,490 И бета верзије шест, који пуштени током лета, 44 00:02:19,490 --> 00:02:21,770 подржавам брз, али има био огроман број 45 00:02:21,770 --> 00:02:25,220 промена у језику, довољно тако да код који сте 46 00:02:25,220 --> 00:02:28,320 ћемо да погледамо и да вас Можда пронађете на интернету 47 00:02:28,320 --> 00:02:33,294 неће заправо саставити правилно у овим претходним верзијама Ксцоде. 48 00:02:33,294 --> 00:02:35,460 Дакле опет, ако не још имају налог програмера, 49 00:02:35,460 --> 00:02:38,560 Препоручујем одете у девелопер.аппле.цом. 50 00:02:38,560 --> 00:02:42,240 Пријавите се, направите налог програмера, и придружити ЦС50 развојни тим апп. 51 00:02:42,240 --> 00:02:45,530 То ће обезбедити да вам прилика саставити своје апликације 52 00:02:45,530 --> 00:02:47,840 и ставио их на свом уређају. 53 00:02:47,840 --> 00:02:49,222 У реду, па хајде да почнемо. 54 00:02:49,222 --> 00:02:50,930 Прва ствар ћемо да урадимо је 55 00:02:50,930 --> 00:02:55,140 да правите веома једноставна пројекат у Ксцоде 56 00:02:55,140 --> 00:02:59,530 да ће вам то омогућити направи апликацију. 57 00:02:59,530 --> 00:03:03,170 >> Дакле, ако још увек немате Ксцоде отворена, само напред и отвори га 58 00:03:03,170 --> 00:03:04,270 и створити нови пројекат. 59 00:03:04,270 --> 00:03:06,570 Посебан уводни екран Отвориће и да ће вам дати 60 00:03:06,570 --> 00:03:08,800 неке опције о томе шта то је да желите да урадите. 61 00:03:08,800 --> 00:03:12,170 Само реци да ли желите да креирате Нови пројекат, нова апликација. 62 00:03:12,170 --> 00:03:15,650 Овај прозор ће искочити, под претпоставком да користите Ксцоде 6.1. 63 00:03:15,650 --> 00:03:17,650 Управо сада, и за трајање овог семинара, 64 00:03:17,650 --> 00:03:19,990 ћемо бити користећи сингле виев апликације, само 65 00:03:19,990 --> 00:03:22,590 нека врста основне апликације да би се ваше ноге мокре. 66 00:03:22,590 --> 00:03:25,200 А можете се грана сами одатле. 67 00:03:25,200 --> 00:03:27,660 >> Кликните на Нект у овом тренутку. 68 00:03:27,660 --> 00:03:30,796 Сада овде има пар ствари да би желите да унесете. 69 00:03:30,796 --> 00:03:32,670 Име производ Име вашег пројекта. 70 00:03:32,670 --> 00:03:34,859 У овом случају, ја сам само ће то назвати Семинар1 71 00:03:34,859 --> 00:03:36,150 јер је то наш први пример. 72 00:03:36,150 --> 00:03:38,290 Назив организације, у овај случај је само моје име. 73 00:03:38,290 --> 00:03:41,760 Ви наравно да га промените да своје име, или да ЦС50. 74 00:03:41,760 --> 00:03:46,160 Идентификатор организација, вама ако десити да имате сајт само узети 75 00:03:46,160 --> 00:03:49,940 назив домена у реверсе, цом.иоурнаме. 76 00:03:49,940 --> 00:03:54,200 а затим назив производа треба аутоматски појавити 77 00:03:54,200 --> 00:03:55,820 након тога као идентификатор снопу. 78 00:03:55,820 --> 00:03:59,200 >> Очигледно језик који смо ће користити за данас је брз. 79 00:03:59,200 --> 00:04:02,590 Можете, наравно, користи Објецтиве Ц за то, али данас ће бити брза. 80 00:04:02,590 --> 00:04:04,920 А ми ћемо за сада рећи универзални уређаји, тако 81 00:04:04,920 --> 00:04:06,900 да ради и на иПхоне и иПад. 82 00:04:06,900 --> 00:04:10,040 И ми ћемо оставити језгро Подаци чекирану да задржи 83 00:04:10,040 --> 00:04:12,830 Пројекат релативно једноставна за сада. 84 00:04:12,830 --> 00:04:14,430 Дакле идемо напред и кликните на Нект. 85 00:04:14,430 --> 00:04:16,471 И то ће ме питати где желим да га спаси. 86 00:04:16,471 --> 00:04:19,250 Само ћу га сачували на десктопу за сада. 87 00:04:19,250 --> 00:04:22,267 >> У реду, тако да сада то је оно што ће десити када заиста отворен Ксцоде. 88 00:04:22,267 --> 00:04:24,100 И приметите да Прва ствар коју видиш 89 00:04:24,100 --> 00:04:28,770 је ово знак узвика који каже да нема потписивања идентитет фоунд. 90 00:04:28,770 --> 00:04:31,520 Ја намерно урадио ово на мом компјутеру и ја сам 91 00:04:31,520 --> 00:04:34,220 надајући се да ћу бити у стању да заиста то поправити, 92 00:04:34,220 --> 00:04:37,860 јер желим да видим како ово ће заправо радити на сопственом машини. 93 00:04:37,860 --> 00:04:40,400 >> Само напред и кликните фик проблем. 94 00:04:40,400 --> 00:04:45,400 То ће вас питати да ли имате Постојећи Аппле Девелопер налог. 95 00:04:45,400 --> 00:04:48,330 Ово је место где придруживање ЦС50 развој апликација тим 96 00:04:48,330 --> 00:04:51,240 је важно, тако да не само имате један налог, 97 00:04:51,240 --> 00:04:53,690 али имате и Способност да потпише апликације 98 00:04:53,690 --> 00:04:56,420 и ставио их на иОС уређају. 99 00:04:56,420 --> 00:04:58,957 Ово је нисам-- клик фикс питање није неопходно 100 00:04:58,957 --> 00:05:01,040 ако ћеш само да изградња и развој локално, 101 00:05:01,040 --> 00:05:03,520 потпуно у иОС симулатору. 102 00:05:03,520 --> 00:05:05,820 >> Али за сада идем развити и ставити их 103 00:05:05,820 --> 00:05:08,160 на мом иПад, који ће бити у стању да емитује као добро. 104 00:05:08,160 --> 00:05:10,770 Тако да желим да заиста додати ово. 105 00:05:10,770 --> 00:05:13,670 И то ће питати ја за мој Аппле ИД. 106 00:05:13,670 --> 00:05:15,700 Тако да ће бити ово. 107 00:05:15,700 --> 00:05:18,940 И морам да узмем лозинка, која је овде. 108 00:05:18,940 --> 00:05:27,760 Зато ми дај само један секунд да сматрају да, и копирати да, и налепите га овамо. 109 00:05:27,760 --> 00:05:28,580 >> Кликните Адд. 110 00:05:28,580 --> 00:05:31,095 То ће ме питати који тим Желим да се придружи. 111 00:05:31,095 --> 00:05:33,240 Ја ћу да урадим школу инжењеринга. 112 00:05:33,240 --> 00:05:35,680 Кликните Јоин. 113 00:05:35,680 --> 00:05:37,780 Упс, то је погрешно. 114 00:05:37,780 --> 00:05:40,730 Хајде да урадимо ово. 115 00:05:40,730 --> 00:05:42,060 Надајмо се да је један ће радити. 116 00:05:42,060 --> 00:05:44,220 То је један и даље не ради. 117 00:05:44,220 --> 00:05:46,610 Ми понестаје добрих овде. 118 00:05:46,610 --> 00:05:48,260 Ок, ово би требало радити. 119 00:05:48,260 --> 00:05:50,816 Сада затворите то. 120 00:05:50,816 --> 00:05:54,450 Хајде сада да урадимо школу инжењеринг, кликните изабрати. 121 00:05:54,450 --> 00:06:00,190 >> И сада надамо после Пар секунди сте можеш-- реду, 122 00:06:00,190 --> 00:06:02,550 Ја ћу одузети и захтев. 123 00:06:02,550 --> 00:06:05,410 О човече, ово це не раде. 124 00:06:05,410 --> 00:06:08,890 У реду, ја ћу пробати неко друго. 125 00:06:08,890 --> 00:06:11,167 Хајде да урадимо ово овде. 126 00:06:11,167 --> 00:06:17,020 127 00:06:17,020 --> 00:06:19,310 Живе демонстрације су ме зато што није. 128 00:06:19,310 --> 00:06:22,540 Можда ћемо морати да врати само Зграда у потпуности локално, 129 00:06:22,540 --> 00:06:25,050 али то би било у реду у овом случају. 130 00:06:25,050 --> 00:06:28,560 >> Дакле овде, док је ово у ствари радна, шта ћемо да урадимо је само 131 00:06:28,560 --> 00:06:31,190 створити врло једноставна Здраво Свет апликација. 132 00:06:31,190 --> 00:06:32,340 Дакле, ово је Ксцоде. 133 00:06:32,340 --> 00:06:37,300 А ако га нисте видели још, ит може бити мало застрашујуће у почетку. 134 00:06:37,300 --> 00:06:41,430 Има пуно панела, ту је Много доодадс у разним областима. 135 00:06:41,430 --> 00:06:44,300 Али само схватити да постоји Стварно неколико главних компоненти 136 00:06:44,300 --> 00:06:46,580 овом развојном окружењу. 137 00:06:46,580 --> 00:06:51,090 На далеком леве су све датотеке да су примењиве на ваш програм 138 00:06:51,090 --> 00:06:52,997 или на ваш конкретан пројекат. 139 00:06:52,997 --> 00:06:55,080 Ми ћемо бити клика око на неке од њих и ми ћемо 140 00:06:55,080 --> 00:06:57,660 истичу највише важних подела током времена. 141 00:06:57,660 --> 00:06:59,650 На крајњем десном, ми има низ атрибута. 142 00:06:59,650 --> 00:07:02,920 И све те атрибуте, тамо су разни окна за атрибутима. 143 00:07:02,920 --> 00:07:06,770 Оквири ће се променити у зависности од контекст главног садржаја које 144 00:07:06,770 --> 00:07:08,290 дешава се да у средини. 145 00:07:08,290 --> 00:07:11,740 Сада средњи може заправо показати ви мноштво ствари, на пример 146 00:07:11,740 --> 00:07:13,290 Сама свој код. 147 00:07:13,290 --> 00:07:17,070 Или сте у ствари можда бих-- када кликнете на прозору за уређивање који 148 00:07:17,070 --> 00:07:21,270 је, узгред, само графички заступљеност вашег корисника 149 00:07:21,270 --> 00:07:25,350 интерфејс за ваш апплицатион-- онда пане атрибути 150 00:07:25,350 --> 00:07:27,334 на далеко право ће се заиста променити. 151 00:07:27,334 --> 00:07:29,750 Сада постоји неколико остало ствари које желим да истакнем. 152 00:07:29,750 --> 00:07:33,360 Можете некако истражују око у окружењу о сами. 153 00:07:33,360 --> 00:07:35,730 Али једна од ствари да је било веома корисно 154 00:07:35,730 --> 00:07:38,470 је овај тастер овде, горњем десном делу прозора. 155 00:07:38,470 --> 00:07:41,230 Има ово дугме да Изгледа да на далеко 156 00:07:41,230 --> 00:07:46,090 лефт има став затим два круга и сортирање 157 00:07:46,090 --> 00:07:49,540 од две стрелице указујући имеа. 158 00:07:49,540 --> 00:07:52,640 Ако прелазите стандардни едитор, који 159 00:07:52,640 --> 00:07:55,560 је далеко лево један, један који је изабран подразумевано, 160 00:07:55,560 --> 00:08:01,040 и два круговима преклапања једни друге, оно што заиста добити 161 00:08:01,040 --> 00:08:02,210 су двоструко стакло поглед. 162 00:08:02,210 --> 00:08:04,240 >> И ово је заправо ће бити корисно за нас 163 00:08:04,240 --> 00:08:07,330 када треба да повеже артикала у УИ на коду. 164 00:08:07,330 --> 00:08:09,330 И причаћемо више о , само који тренутак. 165 00:08:09,330 --> 00:08:12,050 Али схватите да ако добијете чак више окна лике тхис, 166 00:08:12,050 --> 00:08:15,830 можете поједноставити свој поглед само мало кликом назад 167 00:08:15,830 --> 00:08:20,680 на једном уредника. 168 00:08:20,680 --> 00:08:21,580 За сада је добро. 169 00:08:21,580 --> 00:08:24,560 У основи имамо код себе лево, приписује са десне стране, 170 00:08:24,560 --> 00:08:28,260 и шта год да је радимо овде у самом центру. 171 00:08:28,260 --> 00:08:30,390 >> Тако сам овде кликнуо на главном монтажној траци. 172 00:08:30,390 --> 00:08:33,350 И сторибоард, опет, је начин на Ксцоде 173 00:08:33,350 --> 00:08:38,110 да можете креирати вашу корисничку интерфејс користећи само повуците и испустите 174 00:08:38,110 --> 00:08:39,130 технике. 175 00:08:39,130 --> 00:08:41,190 И тако за нашу врло Прва примена ова 176 00:08:41,190 --> 00:08:42,720 је управо оно што ћемо урадити. 177 00:08:42,720 --> 00:08:45,950 Идемо да иде на далеко доњи десни део 178 00:08:45,950 --> 00:08:49,900 екрана, који садржи разноврсност корисника елемената 179 00:08:49,900 --> 00:08:53,270 да можете да кликнете и повуците да креирате свој кориснички интерфејс. 180 00:08:53,270 --> 00:08:55,550 >> Сада све то елементи се зову погледа 181 00:08:55,550 --> 00:08:57,370 јер су снабдевање неку врсту погледом. 182 00:08:57,370 --> 00:09:00,190 Постоји поглед слику, за пример, да заправо покаже 183 00:09:00,190 --> 00:09:01,740 Слике на корисничком интерфејсу. 184 00:09:01,740 --> 00:09:04,310 Има сто поглед на заправо показују табелу. 185 00:09:04,310 --> 00:09:05,190 Тако даље и тако даље. 186 00:09:05,190 --> 00:09:08,250 Постоји широк спектар погледа које можете одабрати овде. 187 00:09:08,250 --> 00:09:11,100 Дакле, само за сада идемо потражити етикети. 188 00:09:11,100 --> 00:09:13,550 Само да се крећете све листе које је тамо. 189 00:09:13,550 --> 00:09:15,460 Али има претрагу бар на самом дну 190 00:09:15,460 --> 00:09:19,460 да олакшава идентификацију специфичне погледа да ли стварно 191 00:09:19,460 --> 00:09:22,020 Желим да превуците у ваш кориснички интерфејс. 192 00:09:22,020 --> 00:09:23,560 >> Фоунд моју ознаку. 193 00:09:23,560 --> 00:09:28,430 Идем да га довукли овде, директно на мом примеру апликације. 194 00:09:28,430 --> 00:09:30,130 Управо тамо у средњем изгледа добро. 195 00:09:30,130 --> 00:09:33,180 И ја ћу да куцате "Хелло Ворлд!" 196 00:09:33,180 --> 00:09:33,810 Хит Ентер. 197 00:09:33,810 --> 00:09:34,877 Сада имам етикету. 198 00:09:34,877 --> 00:09:36,960 То не изгледа као да је центриран сасвим исправно. 199 00:09:36,960 --> 00:09:38,500 Тако да могу покушати да поново-Центер га. 200 00:09:38,500 --> 00:09:42,100 Срећом нуди ово води да би се ствари много лакше. 201 00:09:42,100 --> 00:09:44,130 Ја ћу покушати да га саставити. 202 00:09:44,130 --> 00:09:46,570 Надајмо се да ће заиста радити овде. 203 00:09:46,570 --> 00:09:52,870 А ако се то не деси, за који тренутак то ће у ствари појавити на мом иПад. 204 00:09:52,870 --> 00:09:54,360 То је овде. 205 00:09:54,360 --> 00:09:55,060 Ту је. 206 00:09:55,060 --> 00:09:56,590 >> У реду, тако да је то. 207 00:09:56,590 --> 00:09:57,160 Завршили смо. 208 00:09:57,160 --> 00:09:58,868 Ми смо створили наше веома Прва примена. 209 00:09:58,868 --> 00:10:01,330 Сада очигледно то не уради ништа. 210 00:10:01,330 --> 00:10:02,280 То је само етикета. 211 00:10:02,280 --> 00:10:07,350 Нема везе између кориснички интерфејс и код. 212 00:10:07,350 --> 00:10:10,130 Дакле, ако смо стварно хтели да се та веза, 213 00:10:10,130 --> 00:10:14,790 ако ми заправо желели да имају неку врсту комуникације између елемената 214 00:10:14,790 --> 00:10:17,540 да постоје на Екран и код који 215 00:10:17,540 --> 00:10:19,810 омогућује нам да контролише ти елементи, затим 216 00:10:19,810 --> 00:10:23,570 ми заправо треба да погледати на самом коду. 217 00:10:23,570 --> 00:10:27,000 >> Дакле, ово је оно што се зове ВиевЦонтроллер.свифт. 218 00:10:27,000 --> 00:10:30,080 А за, посебно за Ваши првих неколико програма, 219 00:10:30,080 --> 00:10:33,120 ово ће бити нека врста Највећи део кода који сте ентер-- 220 00:10:33,120 --> 00:10:35,980 ће бити у овом документу овде. 221 00:10:35,980 --> 00:10:38,390 Има пуно ствари то је овде до сада, зар не? 222 00:10:38,390 --> 00:10:42,660 Има увоз УИ Кит класа, оверриде, [? функ,?] све ове различите ствари. 223 00:10:42,660 --> 00:10:45,820 И то није сасвим јасно шта то је да све ово значи. 224 00:10:45,820 --> 00:10:48,570 Па хајде да корак уназад у гостима из Ксцоде на кратко 225 00:10:48,570 --> 00:10:52,420 и погледамо саму језику, брз. 226 00:10:52,420 --> 00:10:56,370 >> Дакле са свифт, то је било у Дизајн и развој 227 00:10:56,370 --> 00:10:58,645 на Аппле за око четири године на моју разумевању. 228 00:10:58,645 --> 00:11:01,270 И ту је неколико карактеристика о томе да су стварно јасно. 229 00:11:01,270 --> 00:11:03,910 Пре свега, то је саставио језик, баш као Ц. 230 00:11:03,910 --> 00:11:06,120 Тако да прво морају да саставити га и онда га воде 231 00:11:06,120 --> 00:11:09,580 пре него што заправо можете изврши код који доводи. 232 00:11:09,580 --> 00:11:14,250 Али постоји, за разлику од Ц, интерактивни затражити да се можете покренути 233 00:11:14,250 --> 00:11:16,680 и укуцајте произвољне команде у. 234 00:11:16,680 --> 00:11:20,280 И врло слично као ЈаваСцрипт конзоле, који можете бити упознати са сада, 235 00:11:20,280 --> 00:11:24,506 то је заправо ће проценити они команде и пружају Вам излаз. 236 00:11:24,506 --> 00:11:26,380 А они чак узели да на следећи ниво 237 00:11:26,380 --> 00:11:29,100 и они су створили нешто називају игралишта у Ксцоде 238 00:11:29,100 --> 00:11:31,720 да вам омогућити да визуелно рад са кодом. 239 00:11:31,720 --> 00:11:34,910 А ми ћемо заправо видети неке примере од тога у само мало. 240 00:11:34,910 --> 00:11:41,680 Он је базиран на Ц Ц подвлачи то, јер сви прикупљачи 241 00:11:41,680 --> 00:11:46,820 створити код из Ц и створити објекат код са њом. 242 00:11:46,820 --> 00:11:49,240 Али заиста акције релативно мало синтакса. 243 00:11:49,240 --> 00:11:50,721 То ће изгледати прилично другачије. 244 00:11:50,721 --> 00:11:51,970 Биће неких сличности. 245 00:11:51,970 --> 00:11:54,140 Али ту ће бити доста разлика 246 00:11:54,140 --> 00:11:57,200 у односу на, рецимо, ЈаваСцрипт или ПХП. 247 00:11:57,200 --> 00:11:59,070 И ми ћемо указати ово у који тренутак. 248 00:11:59,070 --> 00:12:01,420 >> Сада један од највећих ствари о свифт то је лепо 249 00:12:01,420 --> 00:12:05,650 је да, нарочито у поређењу Ц, то значи да је безбедан. 250 00:12:05,650 --> 00:12:08,100 Све у њему је циљ да бити веома снажно откуца у. 251 00:12:08,100 --> 00:12:10,780 У ствари то је готово нервира у почетку, када први пут 252 00:12:10,780 --> 00:12:15,610 почну да раде са брзим, колико много је спроводи свуда врста. 253 00:12:15,610 --> 00:12:17,860 Све што је стринг мора да остане ниска. 254 00:12:17,860 --> 00:12:22,100 Веома је тешко да те некако претворити она или присили га у некој другој форми. 255 00:12:22,100 --> 00:12:23,800 >> И опет, ми ћемо показати примере ово. 256 00:12:23,800 --> 00:12:26,830 Али, на крају схватити да ово је значило да те заштити, 257 00:12:26,830 --> 00:12:32,010 и ви мислим свој код, од црасхинг у некој страшној начин када 258 00:12:32,010 --> 00:12:34,330 имате неку врсту неприлагођено типа. 259 00:12:34,330 --> 00:12:36,040 И опет, ради са њим. 260 00:12:36,040 --> 00:12:40,210 Зато што ће бити фрустрирајуће на први док покушавате да схватите зашто баш 261 00:12:40,210 --> 00:12:43,070 постајеш ово необично еррор бави врстама. 262 00:12:43,070 --> 00:12:45,350 Али то ће се исплатити на крају. 263 00:12:45,350 --> 00:12:47,267 >> Она се бави аутоматски управљање меморијом, 264 00:12:47,267 --> 00:12:49,100 тако више не и ти морају да се баве стварима 265 00:12:49,100 --> 00:12:51,400 као маллоц и фрее и све од ове ствари. 266 00:12:51,400 --> 00:12:53,066 И то је такође намењен за генерализације. 267 00:12:53,066 --> 00:12:58,360 Па док можемо користити Ксцоде на створити иОС апликације и Мац апликације, 268 00:12:58,360 --> 00:13:00,380 можемо такође само га користити као скрипт језик. 269 00:13:00,380 --> 00:13:03,660 И тако можемо користити сорт од умјесто ПХП или уместо 270 00:13:03,660 --> 00:13:07,800 Питхон да стварно брзо парсе и процес 271 00:13:07,800 --> 00:13:09,800 неки подаци који имамо на нашем рачунару. 272 00:13:09,800 --> 00:13:13,290 >> Има широку палету модерног карактеристике, оптионалс, мутабилити, 273 00:13:13,290 --> 00:13:17,900 генерика, затварачи и много тога ствари које могу или не морају препознати. 274 00:13:17,900 --> 00:13:22,810 И то је само нека врста несрећна део језика који неке од ових 275 00:13:22,810 --> 00:13:26,700 некако футуристичких, модерним елементима који налазе се у оквиру елементи су 276 00:13:26,700 --> 00:13:34,520 тако дубоко укорењена да сам заправо хоће морају научити ЦС50.5 мало. 277 00:13:34,520 --> 00:13:37,305 >> Морамо да научимо више мало о неким од карактеристика како 278 00:13:37,305 --> 00:13:40,180 да заиста разумемо шта се дешава даље, и тако да можете погледати код 279 00:13:40,180 --> 00:13:42,450 и не осећам потпуно изгубљено. 280 00:13:42,450 --> 00:13:44,820 И видећете шта мислим од које за минут. 281 00:13:44,820 --> 00:13:47,830 ОК, доста овога хајде-- некако теоријске ствари. 282 00:13:47,830 --> 00:13:52,450 Хајде да погледамо ствари наше Први свифт програма. 283 00:13:52,450 --> 00:13:53,590 То је једна линија кода. 284 00:13:53,590 --> 00:13:57,690 Лине 14 овде, то каже за штампање Л Н здраво ЦС50. 285 00:13:57,690 --> 00:14:01,160 >> Тако да је пар ствари које је веома различит о овоме односу 286 00:14:01,160 --> 00:14:04,140 да ствари које би вас могле користи за из Ц, на пример. 287 00:14:04,140 --> 00:14:08,390 Један од њих је да нема интмаин, нема укључују секцију, 288 00:14:08,390 --> 00:14:10,790 постоји ниједна од ове екстра ствари. 289 00:14:10,790 --> 00:14:13,790 Укључују, као стандардна И / О, попут библиотекама 290 00:14:13,790 --> 00:14:16,580 да заправо пружају стандардне карактеристике језика, 291 00:14:16,580 --> 00:14:19,180 се аутоматски укључени као Део стандардне библиотеке Свифт је 292 00:14:19,180 --> 00:14:20,680 и да се аутоматски увозе. 293 00:14:20,680 --> 00:14:23,740 Не морате да урадите да увоз ручно. 294 00:14:23,740 --> 00:14:27,360 >> Интмаин не постоји јер главна улазна тачка за шифру 295 00:14:27,360 --> 00:14:29,470 је заправо у почетак кода. 296 00:14:29,470 --> 00:14:32,000 Тако да било код које имате од почетка 297 00:14:32,000 --> 00:14:34,940 заправо ће се извршити на старту. 298 00:14:34,940 --> 00:14:36,520 Дакле, ово заиста у великој мери поједностављује. 299 00:14:36,520 --> 00:14:38,470 Обратите пажњу и, да нема зарез. 300 00:14:38,470 --> 00:14:41,040 Нема семицолонс на том језику. 301 00:14:41,040 --> 00:14:43,261 Ставио изјаву на индивидуалном линији 302 00:14:43,261 --> 00:14:45,510 а онда следећи ред представља другу изјаву. 303 00:14:45,510 --> 00:14:47,420 Ако желите да ставите мулитипле изјаве онлине, 304 00:14:47,420 --> 00:14:49,086 онда имате одвојите га зарезом. 305 00:14:49,086 --> 00:14:50,940 Али у највећем делу, за добар стил, ми смо 306 00:14:50,940 --> 00:14:56,530 никада неће видети зарез за сврха раздвајају изјава 307 00:14:56,530 --> 00:14:58,420 у СВИФТ. 308 00:14:58,420 --> 00:14:59,820 Како се то заправо ради? 309 00:14:59,820 --> 00:15:04,080 Па веома налик Ц Ми заправо имају саставити ово. 310 00:15:04,080 --> 00:15:10,640 И тако можемо да урадимо је да коришћењем Свифт ц и онда 1.свифт. 311 00:15:10,640 --> 00:15:13,850 А онда после пар минут ово ће саставити 312 00:15:13,850 --> 00:15:16,340 и онда ја могу покренути тему један. 313 00:15:16,340 --> 00:15:19,691 И од њега ће само рећи "Здраво ЦС50." 314 00:15:19,691 --> 00:15:20,690 Страва, тако да идемо. 315 00:15:20,690 --> 00:15:22,273 Ту је наш први Хелло Ворлд. 316 00:15:22,273 --> 00:15:24,790 Хајде да пређемо на број два. 317 00:15:24,790 --> 00:15:30,450 >> Сада у ово-- то се променило благо, јер док Нормално ви 318 00:15:30,450 --> 00:15:34,720 Па-- у ствари увек имаш да састави брзу апликацију пре 319 00:15:34,720 --> 00:15:37,180 стварно извршавати То-- један од великих предности 320 00:15:37,180 --> 00:15:40,230 да сам алудирао на раније је то било Свифт заправо може да се користи у врсти 321 00:15:40,230 --> 00:15:43,390 од псеудо-интепретативна режиму, тамо је у ствари попут преводиоца. 322 00:15:43,390 --> 00:15:46,690 Али шта то ће урадити је ту је, у ствари, свифт апликација 323 00:15:46,690 --> 00:15:47,520 да можете покренути. 324 00:15:47,520 --> 00:15:51,050 >> Тако на пример, ако само укуцате Свифт овде, шта ће се десити 325 00:15:51,050 --> 00:15:52,330 је да ћете добити упит. 326 00:15:52,330 --> 00:15:59,040 А можете уписати своју Свифт код, принт здраво, и покрените га. 327 00:15:59,040 --> 00:16:01,867 И то ће заправо принт-- добро, то се није одштампао у овом случају 328 00:16:01,867 --> 00:16:04,450 јер штампана у средини оут, која није видљива овде. 329 00:16:04,450 --> 00:16:06,660 Али то је заправо у стању да функционише. 330 00:16:06,660 --> 00:16:09,580 И тако у овом случају, ја сам само ће користити ово као скрипте. 331 00:16:09,580 --> 00:16:11,259 И ја заиста могу покренути овај код тамо. 332 00:16:11,259 --> 00:16:13,800 Тако начин да ја у ствари покренути то ће бити мало другачији, 333 00:16:13,800 --> 00:16:15,710 али видећете да за који тренутак. 334 00:16:15,710 --> 00:16:18,890 Сада, у овом случају шта ћемо да урадите је да прво дефинишете променљиву. 335 00:16:18,890 --> 00:16:22,160 Дакле, ово је како дефинишемо променљива у брз, 336 00:16:22,160 --> 00:16:25,900 се користимо пустити кључну реч, а затим по имену променљиву, 337 00:16:25,900 --> 00:16:29,280 а онда пружамо неке инитиализинг податке опционо. 338 00:16:29,280 --> 00:16:34,660 Тако је овај случај смо дефинисања константа зове име, 339 00:16:34,660 --> 00:16:37,775 а ми ћемо користити да у излаз нашег принт линије 340 00:16:37,775 --> 00:16:39,590 На самом дну, здраво име. 341 00:16:39,590 --> 00:16:43,260 >> Сада приметите да уместо користећи% с, можемо енкапсулираш име ово 342 00:16:43,260 --> 00:16:49,960 варијабла у / () и могу да цонцатенате у садржају ове 343 00:16:49,960 --> 00:16:51,790 стринг у овом низу. 344 00:16:51,790 --> 00:16:56,510 Сада за разлику од Ц, стринг Стварни реални тип у СВИФТ. 345 00:16:56,510 --> 00:16:59,240 И тако се поред седи интс и поред 346 00:16:59,240 --> 00:17:02,220 дубл врло лако и наравно односу 347 00:17:02,220 --> 00:17:05,450 да неке од другог језици које смо до сада видели. 348 00:17:05,450 --> 00:17:07,980 Дакле, ово би заиста функционише баш као што се и очекује. 349 00:17:07,980 --> 00:17:10,540 >> Ја могу покренути 2.свифт. 350 00:17:10,540 --> 00:17:14,390 И видимо да је моје име заправо спојени у, "Здраво Дан." 351 00:17:14,390 --> 00:17:16,050 Ок, супер. 352 00:17:16,050 --> 00:17:17,485 Прелазимо на број три. 353 00:17:17,485 --> 00:17:19,359 Сада је то био мало белог лаж коју сам 354 00:17:19,359 --> 00:17:23,369 рекао да је начин на који смо изјављујемо варијабле био је да користите Лет кључну реч. 355 00:17:23,369 --> 00:17:27,640 Онолико пута колико можете евентуално да ли урадити желите да користите пустити, јер оно што ради 356 00:17:27,640 --> 00:17:29,280 је она дефинише константу. 357 00:17:29,280 --> 00:17:33,010 И то говори брзо да може оптимизира брзину ваше апликације 358 00:17:33,010 --> 00:17:36,230 јер зна да да променљива се неће променити. 359 00:17:36,230 --> 00:17:38,760 >> Тако оценити пажљиво кад ћеш користити 360 00:17:38,760 --> 00:17:41,382 променљива за сврхе да га мењају. 361 00:17:41,382 --> 00:17:43,340 А када ћеш створити променљиву само 362 00:17:43,340 --> 00:17:47,010 да држи неке податке и то је Не заправо неће променити. 363 00:17:47,010 --> 00:17:50,150 Дакле, ово концепт непроменљивости, Није ваљда да промени, 364 00:17:50,150 --> 00:17:53,740 је важно чак као далеко доле и дефинисање променљивих. 365 00:17:53,740 --> 00:17:56,870 Дакле овде смо дефинисали име, нека имена, а у овом случају 366 00:17:56,870 --> 00:18:02,120 то је константа, која је од типа стринг, а то је једнако Дан. 367 00:18:02,120 --> 00:18:05,580 >> Дакле док је у пре Верзија, она инферс-- и "она" 368 00:18:05,580 --> 00:18:08,220 Мислим свифт-- Свифт изводи тип података 369 00:18:08,220 --> 00:18:10,850 да смо ушли у променљивој. 370 00:18:10,850 --> 00:18:12,930 У овом случају, можемо бити експлицитна. 371 00:18:12,930 --> 00:18:17,590 Па да онда име ово променљива је име, затим дебелог црева. 372 00:18:17,590 --> 00:18:21,350 И после две тачке и ми наведите врсту података. 373 00:18:21,350 --> 00:18:24,694 Тако више не то је Инт име или стринг наме или нешто слично. 374 00:18:24,694 --> 00:18:26,860 Али уместо тога нека етикету, ми смо дефинисање или не 375 00:18:26,860 --> 00:18:29,090 то је константа или променљива, следи имену, 376 00:18:29,090 --> 00:18:31,870 затим типа факултативно. 377 00:18:31,870 --> 00:18:34,730 >> Дакле у овом случају смо дефинисања ово име је стринг. 378 00:18:34,730 --> 00:18:35,790 Говоримо је Дан. 379 00:18:35,790 --> 00:18:39,270 И сада имам још једну променљиву, у овом случају то се зове ознака. 380 00:18:39,270 --> 00:18:42,090 Али приметите да је префикс са вар кључну реч. 381 00:18:42,090 --> 00:18:44,430 Означава вар кеиворд да је ова променљива може 382 00:18:44,430 --> 00:18:48,720 се мењати у каснијој тачке у време, негде доле у ​​коду 383 00:18:48,720 --> 00:18:52,480 можемо заправо и то променити неће нам дати неки конкретан грешку. 384 00:18:52,480 --> 00:18:56,760 >> Можемо да урадимо стандард Надовезивањем Овде оператер користећи симбол плус 385 00:18:56,760 --> 00:19:00,130 да заправо додати наш наме у овом низу. 386 00:19:00,130 --> 00:19:02,921 А онда можемо одштампати као што смо видели пре неколико тренутака. 387 00:19:02,921 --> 00:19:04,920 Сада рецимо да вас желимо да створимо променљиву 388 00:19:04,920 --> 00:19:06,586 али не желите да га иницијализовали још. 389 00:19:06,586 --> 00:19:08,590 Не увек желе да стави било какве податке у њему. 390 00:19:08,590 --> 00:19:11,760 Па мораш да кажеш Свифт шта тип података 391 00:19:11,760 --> 00:19:16,430 ће бити пре него што можете заправо га дефинишу правилно. 392 00:19:16,430 --> 00:19:20,360 >> Дакле, у овом случају, када смо дефинисано променљива се зове разреда морамо бити 393 00:19:20,360 --> 00:19:24,450 експлицитан о својој врсти, јер не може закључити само гледа 394 00:19:24,450 --> 00:19:27,300 на инитиализед података да дајете до њега. 395 00:19:27,300 --> 00:19:30,050 То ће нам дати грешку, ако се Само тип вар разред, на пример, 396 00:19:30,050 --> 00:19:31,830 јер нема тип стога. 397 00:19:31,830 --> 00:19:33,353 Дакле степен = 100. 398 00:19:33,353 --> 00:19:35,790 Тако да 100 је цео број, зар уклапа врло лепо у то. 399 00:19:35,790 --> 00:19:36,998 Она ће наставити да функционише. 400 00:19:36,998 --> 00:19:40,350 401 00:19:40,350 --> 00:19:43,022 Можемо да видимо како онда могу цонцатенате ово у. 402 00:19:43,022 --> 00:19:44,730 Сада можете бити искушење, ако вас стварно 403 00:19:44,730 --> 00:19:48,610 желео да спојите разред у други текстуални низ, 404 00:19:48,610 --> 00:19:52,560 у други стринг, који сте управо би користити тај исти Надовезивањем оператера. 405 00:19:52,560 --> 00:19:54,630 А то би нормално било истинито. 406 00:19:54,630 --> 00:20:00,540 Али Свифт неће дозволити да имплицитно променити врсту података. 407 00:20:00,540 --> 00:20:03,440 Дакле, у овом случају, то линија, 25, неће успети 408 00:20:03,440 --> 00:20:06,650 јер разред је цео а не стринг. 409 00:20:06,650 --> 00:20:08,760 И тако постоји несклад сет типова. 410 00:20:08,760 --> 00:20:11,780 Дакле, морате бити експлицитна када желите да промените ове податке, 411 00:20:11,780 --> 00:20:14,080 када желите да присили ово Подаци у другачију врсту 412 00:20:14,080 --> 00:20:17,250 и кажу, у реду, ја желим да се Ова оцена, који је цео број, 413 00:20:17,250 --> 00:20:19,050 и претворити га у стринг. 414 00:20:19,050 --> 00:20:23,970 >> Тако сам узети великим С стринг све типови, приметићете, капитализују, 415 00:20:23,970 --> 00:20:26,280 Инт, Доубле, Стринг, тако даље и тако даље. 416 00:20:26,280 --> 00:20:28,930 Сви они су капитализоване само да би се ствари лакше. 417 00:20:28,930 --> 00:20:32,240 А ми ћемо рећи искористе Стринг пасс у њега разред. 418 00:20:32,240 --> 00:20:35,020 И то ће створити стрингована тог цео број. 419 00:20:35,020 --> 00:20:37,970 А онда можемо цонцатенате два веома лепо. 420 00:20:37,970 --> 00:20:40,500 Сва питања о овим стварима до сада? 421 00:20:40,500 --> 00:20:43,770 У реду, хајде да плуг до броја четири. 422 00:20:43,770 --> 00:20:47,870 >> Хајде сада да причамо о неким напреднији структуре, попут низова и петљама. 423 00:20:47,870 --> 00:20:54,920 И за разлику од Ц, низови у Свифт нису заступа показивачима. 424 00:20:54,920 --> 00:20:58,730 Показивачи у Свифт, иако постоје, звали 425 00:20:58,730 --> 00:21:02,840 као несигурним показивача или неки сличан тип овако, 426 00:21:02,840 --> 00:21:04,950 они не изложени вама нормално. 427 00:21:04,950 --> 00:21:07,300 Тако постаје веома тешко за вас да манипулишу 428 00:21:07,300 --> 00:21:10,020 меморија директно на рачунару. 429 00:21:10,020 --> 00:21:11,670 >> Дакле низови су само тип података. 430 00:21:11,670 --> 00:21:16,830 И они означена коришћењем овакве од сада стандардни квадрат носач нотација 431 00:21:16,830 --> 00:21:18,280 да сте већ видели. 432 00:21:18,280 --> 00:21:21,130 Али када заправо желе да дефинишу тип променљивој 433 00:21:21,130 --> 00:21:24,330 као низ неких Посебно тип, онда сте 434 00:21:24,330 --> 00:21:27,150 стави тај тип у загради. 435 00:21:27,150 --> 00:21:30,260 Па шта ја говорим овде је то Ја стварање променљиву названу 436 00:21:30,260 --> 00:21:33,930 оцене типа инт арраи. 437 00:21:33,930 --> 00:21:37,380 И ја опције коју једнака неке инитиализед подаци, који у овом случају 438 00:21:37,380 --> 00:21:42,960 је 100, 0, 90, 85, која је само Колекција произвољних разреда овде. 439 00:21:42,960 --> 00:21:46,480 Сада у овом случају сам могао, запамтите, уклоните тип, 440 00:21:46,480 --> 00:21:49,580 и било би могли да га закључити на основу иницирали података. 441 00:21:49,580 --> 00:21:51,990 Али, ако сам уклоњен ово и Морао сам да га поставити касније, 442 00:21:51,990 --> 00:21:56,840 онда би морао да се уверите да имам тип тамо. 443 00:21:56,840 --> 00:21:58,750 У реду, идемо заједно. 444 00:21:58,750 --> 00:22:03,010 Тако смо можеш-- низова пружи нам сорта 445 00:22:03,010 --> 00:22:07,130 метода кроз те дот нотацији у тебе су вероватно сада упознати са. 446 00:22:07,130 --> 00:22:10,360 Тако градес.цоунт, на пример, нам говори управо број 447 00:22:10,360 --> 00:22:13,680 елемената који су садржан у овој низа. 448 00:22:13,680 --> 00:22:17,260 >> Ако желим да додам аддитионал-- Сада приметите да је ово вар 449 00:22:17,260 --> 00:22:20,140 а нисам-- ово је променљива а не константна, која 450 00:22:20,140 --> 00:22:24,410 значи да могу да променим садржај овог низа, ја могу додати објекте у њему. 451 00:22:24,410 --> 00:22:28,870 Али ја не могу само да кажем разреда а затим у загради 452 00:22:28,870 --> 00:22:33,280 четири, јер ће то бити изван граница грешке у овом случају. 453 00:22:33,280 --> 00:22:36,190 Ако желим да заиста промене размер низа, 454 00:22:36,190 --> 00:22:41,140 Морам да користим метод тачка додајте у додати нешто на самом крају. 455 00:22:41,140 --> 00:22:46,900 Ја могу, међутим, промена индивидуални индекси. 456 00:22:46,900 --> 00:22:48,920 >> Тако сам могао користити оцене и онда квадратних заграде 457 00:22:48,920 --> 00:22:52,480 нула да манипулише овај први индекс и тако даље, као што то обично очекивали. 458 00:22:52,480 --> 00:22:56,530 И ја могу да урадим исто да стварно примају податке из и то. 459 00:22:56,530 --> 00:23:00,420 Сада постоји и нека врста фенси метода да се то постигне, оцене плус екуалс 460 00:23:00,420 --> 00:23:02,525 а онда још индекс, која ће аппенд-- 461 00:23:02,525 --> 00:23:04,400 или не други индек-- али други списак који 462 00:23:04,400 --> 00:23:07,340 ће додати тај списак на полеђини разреда. 463 00:23:07,340 --> 00:23:09,780 И разреда ће онда садрже све то. 464 00:23:09,780 --> 00:23:13,850 Али то је нека врста додатног ствар Само да вам показујем за забаву. 465 00:23:13,850 --> 00:23:14,910 >> Сада постоји за петљу. 466 00:23:14,910 --> 00:23:18,970 А ово је почетак, где ствари почињу да се мењају мало. 467 00:23:18,970 --> 00:23:22,920 Обратите пажњу како ово за петљу је разликује од петље за у Ц. 468 00:23:22,920 --> 00:23:26,470 Сада ћу напоменути да за петље у Свифт цан 469 00:23:26,470 --> 00:23:30,650 бити да изгледа као на петљи у Ц, али има много више корисних конструката 470 00:23:30,650 --> 00:23:37,840 који у суштини елиминише потребу да имају за вар и једнако 0 и зарез и 471 00:23:37,840 --> 00:23:40,340 мањи од неке дужине, тако даље и тако даље, зар не? 472 00:23:40,340 --> 00:23:42,940 И ова конструкција је само један од њих. 473 00:23:42,940 --> 00:23:49,030 >> За индекс, индекс је нова променљива, у овом случају, у распону. 474 00:23:49,030 --> 00:23:52,730 И шта ја да кажем је да постоји Распон од 0 па све до 475 00:23:52,730 --> 00:23:55,870 али не укључујући градес.цоунт. 476 00:23:55,870 --> 00:23:58,470 Дакле, ово дот дот мање него знак представља 477 00:23:58,470 --> 00:24:05,040 опсег вредности полазећи од нуле па све до градес.цоунт минус 1. 478 00:24:05,040 --> 00:24:07,070 Постоји посебна оператер који постоји, 479 00:24:07,070 --> 00:24:13,320 која је Дот Дот Дот, која би Мислим да хоћу распон нуле 480 00:24:13,320 --> 00:24:16,310 да рачунају разреда закључно. 481 00:24:16,310 --> 00:24:19,130 >> Али у овом случају, јер су низови су нула индекс, ми наравно 482 00:24:19,130 --> 00:24:23,290 не желе да иду у Максималан број разреда. 483 00:24:23,290 --> 00:24:26,390 Ја могу сумирати оцене, као што можете да Очекујемо, и излаз све ове ствари. 484 00:24:26,390 --> 00:24:29,620 Ок, идемо даље. 485 00:24:29,620 --> 00:24:32,270 Хајде сада да причамо о функцијама. 486 00:24:32,270 --> 00:24:35,465 У циљу дефинисања функцију користите функ кључну реч. 487 00:24:35,465 --> 00:24:38,090 И опет, у Свифт морате бити веома опрезан са типовима. 488 00:24:38,090 --> 00:24:41,530 Ви обезбеди да се параметри дефинисањем, на пример, 489 00:24:41,530 --> 00:24:45,440 назив параметра и онда у Колин, тип података 490 00:24:45,440 --> 00:24:47,690 да ли очекујете да параметар да прихвати. 491 00:24:47,690 --> 00:24:50,700 >> Тако да смо у овом случају имају Функција зове штампање разред датотека. 492 00:24:50,700 --> 00:24:54,630 Она прихвата променљиву названу Градебоок, односно параметар који се зове Градебоок. 493 00:24:54,630 --> 00:24:59,267 И ми очекујемо да Градебоок да буде низ целих бројева. 494 00:24:59,267 --> 00:25:01,350 Ако то Градебоок је празна, ћемо штампати једну ствар. 495 00:25:01,350 --> 00:25:06,090 У супротном ћемо одштампати број оцјена да ово заиста има. 496 00:25:06,090 --> 00:25:09,470 >> Сада, ако желимо да се врати нека вредност, онда начин 497 00:25:09,470 --> 00:25:14,595 да смо изменили ова дефиниција је да заправо користе овај стрелице кључну реч, 498 00:25:14,595 --> 00:25:16,870 или да користите ову стрелицу означитеља. 499 00:25:16,870 --> 00:25:19,440 Дакле овде ћемо да дефинишемо функција зове просек. 500 00:25:19,440 --> 00:25:21,940 Идемо да прихвати листу бројева. 501 00:25:21,940 --> 00:25:25,430 И ми ћемо да се врате дупли, који ће, надамо се, 502 00:25:25,430 --> 00:25:31,270 бити просек ове низа. 503 00:25:31,270 --> 00:25:34,570 А да би то, како да заправо израчунавање овог просек, 504 00:25:34,570 --> 00:25:38,651 ми ћемо узети суму и ми ћемо од Наравно сумирамо све објекте 505 00:25:38,651 --> 00:25:39,400 у овом низу. 506 00:25:39,400 --> 00:25:41,480 >> Обратите пажњу да постоји нова стил за петље овде. 507 00:25:41,480 --> 00:25:45,450 Ми не морамо да се експлицитно о итератинг над сваком елементу, 508 00:25:45,450 --> 00:25:48,280 али уместо тога може рећи за разред и оцењивању, значење 509 00:25:48,280 --> 00:25:50,930 да за сваки ставка да имамо у ово, 510 00:25:50,930 --> 00:25:53,482 обезбеди да је ставка у ово променљива зове разред. 511 00:25:53,482 --> 00:25:54,940 И ја желим да урадим нешто са њом. 512 00:25:54,940 --> 00:26:00,350 Зато ћу да сумирамо све ове податке и заправо врати двоструко поделу. 513 00:26:00,350 --> 00:26:04,436 >> Сада приметите опет овде постоји Концепт цео број дивизије у Свифт. 514 00:26:04,436 --> 00:26:06,810 Ако желите да удвостручи поделу јер желите децимале, 515 00:26:06,810 --> 00:26:09,460 онда морате бити експлицитна, не само о једној страни, 516 00:26:09,460 --> 00:26:14,030 јер то неће дозволити да вас да примора податке са обе стране ово, 517 00:26:14,030 --> 00:26:17,030 морате заиста наравно обе поменуте стране у дублу 518 00:26:17,030 --> 00:26:19,440 тако да сте веома експлицитан о пазећи 519 00:26:19,440 --> 00:26:23,370 да радиш двоструко поделу. 520 00:26:23,370 --> 00:26:26,150 >> Идемо даље. 521 00:26:26,150 --> 00:26:31,150 Дакле, ако ја заправо желим да аццепт-- тако да у овом конкретном примеру, 522 00:26:31,150 --> 00:26:34,260 ово је још увек команда линија базирана апликација. 523 00:26:34,260 --> 00:26:37,920 И почињемо да видимо неке од ограничења младог језика 524 00:26:37,920 --> 00:26:41,850 у да, иако можемо приступити аргументе помоћу 525 00:26:41,850 --> 00:26:44,940 ово процесс.аргументс, то је још увек не нужно најчистијих 526 00:26:44,940 --> 00:26:46,200 Оно што смо до сада видели. 527 00:26:46,200 --> 00:26:49,142 Али у основи сам вам и да некако погледате овај код 528 00:26:49,142 --> 00:26:51,100 и покушајте да схватите шта се тачно дешава. 529 00:26:51,100 --> 00:26:55,030 >> У суштини оно што се дешава је да узимамо листу аргумената 530 00:26:55,030 --> 00:26:57,610 и су их принуде у цели бројеви, а онда смо 531 00:26:57,610 --> 00:27:03,620 ће користити то као начин за штампање од просека свих наших разреда. 532 00:27:03,620 --> 00:27:06,150 533 00:27:06,150 --> 00:27:07,350 Идемо даље. 534 00:27:07,350 --> 00:27:11,190 Сада постоји још једна врста дата-- још подаци укуцајте уместо низова 535 00:27:11,190 --> 00:27:14,940 називају речници, који су врло као хасх табеле или хашиш мапе 536 00:27:14,940 --> 00:27:18,560 и слични и да ПХП асоцијативне низове. 537 00:27:18,560 --> 00:27:20,770 Тако они имају идеју кључева и вредности. 538 00:27:20,770 --> 00:27:23,780 >> И они и са дефинисана ово квадрат носач нотација, 539 00:27:23,780 --> 00:27:26,750 али је разлика да речници имају 540 00:27:26,750 --> 00:27:29,370 унутар квадрата конзоле, а колона. 541 00:27:29,370 --> 00:27:33,850 А колона одваја податке укуцајте да је кључ и вредност. 542 00:27:33,850 --> 00:27:38,540 Дакле, у овом случају, ја ћу да створи рјечник да прихвати неке оцене. 543 00:27:38,540 --> 00:27:44,200 И то ће бити типа стринг: инт, 544 00:27:44,200 --> 00:27:46,940 што значи да су сви тастери ће бити жице, 545 00:27:46,940 --> 00:27:53,080 и све вредности оних тастери ће бити цели бројеви. 546 00:27:53,080 --> 00:27:55,780 >> То значи да ја могу затим упућују на специфичан податке 547 00:27:55,780 --> 00:28:00,490 Желим да користе те кључеве прилично него користи нумеричких индекса као И 548 00:28:00,490 --> 00:28:04,350 би имала за стандардни низ. 549 00:28:04,350 --> 00:28:06,470 Сад да видимо, ту је једна важна ствар 550 00:28:06,470 --> 00:28:10,790 да сам и желим да поменем о ова секвенца кода. 551 00:28:10,790 --> 00:28:12,910 А то је да постоји други тип података, 552 00:28:12,910 --> 00:28:15,580 односно ту је ово Идеја података који је 553 00:28:15,580 --> 00:28:18,340 садржан у Свифт зове Оптионалс. 554 00:28:18,340 --> 00:28:21,270 >> А шта значи оптионалс је да признаје чињеницу 555 00:28:21,270 --> 00:28:27,500 да понекад не идемо у добили податке да ли заиста очекујете. 556 00:28:27,500 --> 00:28:31,400 И шта мислим под тим је-- немојмо погледај овог низа кода 557 00:28:31,400 --> 00:28:38,910 Примењује који цитавом аргументи који су донесени на овом коду 558 00:28:38,910 --> 00:28:43,460 и покушава да их претворити, покушаја подели на различите жице, 559 00:28:43,460 --> 00:28:47,310 јер прихвата веома Посебну врсту аргумента. 560 00:28:47,310 --> 00:28:51,530 А онда ће то покушати да примора жице које представљају бројеве 561 00:28:51,530 --> 00:28:55,460 у целих бројева који су оцене, да сам тада да израчуна. 562 00:28:55,460 --> 00:28:58,230 >> Дакле, у основи ћу користите ову функцију да подељена 563 00:28:58,230 --> 00:29:00,080 постоји унутар Свифт стандардна библиотека. 564 00:29:00,080 --> 00:29:03,720 Идем да прође у њу у стринг који желим да поделимо. 565 00:29:03,720 --> 00:29:06,980 А онда у коришћењу ове некако фанки синтаксе, која 566 00:29:06,980 --> 00:29:09,670 Ја не знам да ли ћемо доћи до, али можда ми 567 00:29:09,670 --> 00:29:14,320 ће заправо навести прецизне карактер који желимо да поделимо на. 568 00:29:14,320 --> 00:29:16,030 Па шта то заправо изгледа? 569 00:29:16,030 --> 00:29:18,740 Хајде да погледамо заправо ради овај код. 570 00:29:18,740 --> 00:29:22,000 >> Тако на пример, рецимо имам квиз и имам 50 на то. 571 00:29:22,000 --> 00:29:23,960 И ја имам ПСЕТс и Имам стотину о томе. 572 00:29:23,960 --> 00:29:29,180 И ја тебе-- постоји други квиз и имам 40 на то. 573 00:29:29,180 --> 00:29:33,520 Ја ударио Ентер, и на крају оно ће се десити је то оно што ради 574 00:29:33,520 --> 00:29:37,730 изводи ових параметара, цијепање жице на овим колонама, 575 00:29:37,730 --> 00:29:41,390 признајући да постоји два елемента у сваки, 576 00:29:41,390 --> 00:29:43,700 и то у суштини је праћење сваког. 577 00:29:43,700 --> 00:29:49,226 >> Тако да имам у мом речнику квиз, чији вредност представља по броју 50, 578 00:29:49,226 --> 00:29:54,290 Имам ПСЕТ која има вредност 100, и квиз један који има вредност од 40. 579 00:29:54,290 --> 00:29:57,400 Затим касније у коду И заправо просеку све те вредности 580 00:29:57,400 --> 00:30:01,160 и листу свих кључева да посебно рјечник. 581 00:30:01,160 --> 00:30:03,217 Али ово је важно тако да можете приметити 582 00:30:03,217 --> 00:30:06,050 шта се дешава, јесте да оно што смо желите да урадите је да искористим ову стринг 583 00:30:06,050 --> 00:30:11,450 и поделите га на овог лика, које можемо поново урадити са тог расцепа 584 00:30:11,450 --> 00:30:15,690 Функција употреба оваквих Занимљиво синтакса која постоји овде. 585 00:30:15,690 --> 00:30:17,880 >> Само за сада претпостављају да је то у реду. 586 00:30:17,880 --> 00:30:19,980 Ми ћемо погледати више на ово у само мало. 587 00:30:19,980 --> 00:30:23,230 Али сада је занимљиво аспект који смо заправо 588 00:30:23,230 --> 00:30:27,250 желе да пробају да га претвори у ово стринг у цео број. 589 00:30:27,250 --> 00:30:29,720 Али у другим језицима шта би се могло догодити је 590 00:30:29,720 --> 00:30:33,440 да бисмо вероватно покушати да то уради и било вратим 591 00:30:33,440 --> 00:30:36,185 нека врста сентинел вредност као негативан 592 00:30:36,185 --> 00:30:39,420 или можда нула или нешто слично. 593 00:30:39,420 --> 00:30:41,070 Или можда само би изазвао грешку. 594 00:30:41,070 --> 00:30:42,820 И ми би морали да онда ухватити ту грешку 595 00:30:42,820 --> 00:30:44,820 а затим покушајте да урадите нешто на основу чињенице 596 00:30:44,820 --> 00:30:48,280 да ове конверзије на цео број пропао. 597 00:30:48,280 --> 00:30:50,460 Тамо ова идеја од опциони долази у. 598 00:30:50,460 --> 00:30:56,120 Можете заправо створити тип података који је инт знак питања, на пример. 599 00:30:56,120 --> 00:30:59,140 600 00:30:59,140 --> 00:31:01,910 То значи да овај цео број је, заправо, опционо. 601 00:31:01,910 --> 00:31:05,980 А шта ће се десити је да може садрже цео број, или не могу. 602 00:31:05,980 --> 00:31:10,650 Он може, у ствари, бити та друга Идеја, у потпуности зове Комбинат. 603 00:31:10,650 --> 00:31:14,900 У којој то значи да постоји Не вредност уопште у то. 604 00:31:14,900 --> 00:31:16,810 Није ни нула, једноставно нема вредност. 605 00:31:16,810 --> 00:31:18,790 Нема апсолутно никакве вредности представљени. 606 00:31:18,790 --> 00:31:21,650 >> И то је оно што се ради ова линија 71. 607 00:31:21,650 --> 00:31:25,990 Да ли је то она говори да сам желе да пробају да постави вредност, 608 00:31:25,990 --> 00:31:31,790 променљива зове разред, једнак конверзија ниску у инт. 609 00:31:31,790 --> 00:31:34,010 Па сам се ту жицу, Овај први компоненте, 610 00:31:34,010 --> 00:31:37,680 односно други компоненте, јер ово 611 00:31:37,680 --> 00:31:40,770 је нула индексиран, овога стринг који сам поделила. 612 00:31:40,770 --> 00:31:42,930 И ја желим да претворити да на цео број. 613 00:31:42,930 --> 00:31:46,730 Али не може увек наставити нормално, јер замислите 614 00:31:46,730 --> 00:31:50,710 шта би се десило да, уместо типа број, укуцам наравно као асдф. 615 00:31:50,710 --> 00:31:51,534 >> То ће успети. 616 00:31:51,534 --> 00:31:54,200 Није ваљда да буде могућности то претворити да на цео број 617 00:31:54,200 --> 00:31:55,510 као што сам очекивао. 618 00:31:55,510 --> 00:31:58,660 Тако уместо да кицк офф нека врста грешке, 619 00:31:58,660 --> 00:32:01,210 имамо ту идеју опциони. 620 00:32:01,210 --> 00:32:04,240 А то значи да користећи ово знак питања могу да кажем, 621 00:32:04,240 --> 00:32:09,100 У реду, могуће је да ја могу узети ово, зар претвори у инт, 622 00:32:09,100 --> 00:32:12,630 и ставио га у променљивој, који ће такође бити инт. 623 00:32:12,630 --> 00:32:15,420 Ако је тако, онда то значи да је ово била успешна 624 00:32:15,420 --> 00:32:18,720 а овај први део блок може наставити. 625 00:32:18,720 --> 00:32:21,040 >> У супротном, то није успело. 626 00:32:21,040 --> 00:32:25,840 Нема вредност у граде-- или пре нема вредност у постојеће, 627 00:32:25,840 --> 00:32:30,220 и ја стварно морам да покушамо да хандле овај услов грешке. 628 00:32:30,220 --> 00:32:33,340 Идеш да види ово знак питања све време 629 00:32:33,340 --> 00:32:35,990 у Свифт и у примеру код за Свифт. 630 00:32:35,990 --> 00:32:40,980 И у ствари Комбинат оператер, ова врста од знаком питања, оптионалс део, 631 00:32:40,980 --> 00:32:45,057 ће бити вероватно један од тежих ствари 632 00:32:45,057 --> 00:32:47,640 да некако замотати главу око док у ствари раде са њим. 633 00:32:47,640 --> 00:32:48,490 >> То би могло да сада смисла. 634 00:32:48,490 --> 00:32:50,760 И у ствари, кад сам био писања кода узорак за ово, 635 00:32:50,760 --> 00:32:52,780 Свакако сам схватио шта се дешава, 636 00:32:52,780 --> 00:32:55,570 али ме и даље ухватио изненађење свако мало 637 00:32:55,570 --> 00:32:58,370 кад бих сматрају да неки подаци је у ствари 638 00:32:58,370 --> 00:33:04,024 нил верзија, опционо верзија података који сам очекивао. 639 00:33:04,024 --> 00:33:06,190 Дакле, само схвати да ако вас имају опциони верзију 640 00:33:06,190 --> 00:33:09,360 морате да се распакујем да Подаци из овог прозора. 641 00:33:09,360 --> 00:33:15,870 >> Дакле, то је нешто као ја-- замислите да вас имају кутију и садржи нешто. 642 00:33:15,870 --> 00:33:18,490 А шта вам је потребно да урадите је да постави питање, 643 00:33:18,490 --> 00:33:22,800 да ли је могуће да је ова кутија заправо садржи податке који тражим? 644 00:33:22,800 --> 00:33:28,180 Ако је тако, онда повучеш података аут и стави га у овој варијабли постојеће. 645 00:33:28,180 --> 00:33:32,080 Ако не, онда морам да занемарити садржај овог прозора 646 00:33:32,080 --> 00:33:34,310 заједно јер њега буквално не садржи ништа. 647 00:33:34,310 --> 00:33:36,880 648 00:33:36,880 --> 00:33:40,400 >> Сва питања о овоме? 649 00:33:40,400 --> 00:33:44,430 Ок, идемо даље од овог некако командне линије заснован ствар 650 00:33:44,430 --> 00:33:47,610 и почети гледајући неки од технологије 651 00:33:47,610 --> 00:33:53,060 да Ксцоде пружа нам у облику игралишта. 652 00:33:53,060 --> 00:33:56,669 Тако да је много Могућност овде са Свифт. 653 00:33:56,669 --> 00:33:59,210 А ако отворите Ксцоде и то пита вас шта желите да урадите, 654 00:33:59,210 --> 00:34:01,340 можете отворити игралиште и само играти око 655 00:34:01,340 --> 00:34:06,200 са пуно различитих структура и аспекти језика 656 00:34:06,200 --> 00:34:11,800 пре него што уопште почнете додирује иОС СДК или Мац СДК. 657 00:34:11,800 --> 00:34:15,670 >> Дакле овај случај, рецимо да сам бих-- Имам релативно вештачки пример 658 00:34:15,670 --> 00:34:18,460 овде, али носе са мном као некако смо од раде кроз овај пример. 659 00:34:18,460 --> 00:34:22,639 Рецимо да морамо да урадимо много о експонената са фиксном вредности, 660 00:34:22,639 --> 00:34:26,397 Као што знамо да ћемо морати да уради много квадратних овлашћења, на пример. 661 00:34:26,397 --> 00:34:28,980 Тако ћемо узети неку вредност к, ми ћемо то квадрат, 662 00:34:28,980 --> 00:34:30,540 ћемо узети неку вредност и и ми ћемо га квадрат. 663 00:34:30,540 --> 00:34:31,780 Тако даље и тако даље. 664 00:34:31,780 --> 00:34:35,549 >> Сада смо у ствари можда само створити снага од 2 функције за ово, зар не? 665 00:34:35,549 --> 00:34:37,090 Тако бисмо створити моћ 2 функције. 666 00:34:37,090 --> 00:34:38,600 Ми ћемо прихватити дупло. 667 00:34:38,600 --> 00:34:41,489 Ми ћемо оутпут-- или ћемо ретурн двоструки тип. 668 00:34:41,489 --> 00:34:46,159 Узећемо овај резултат а онда за два пута 669 00:34:46,159 --> 00:34:52,040 оно што заиста и резултате, који је на почетку постављен на вредност једног, 670 00:34:52,040 --> 00:34:53,090 и помнози к. 671 00:34:53,090 --> 00:34:56,540 Дакле, у суштини имамо к пута к овде. 672 00:34:56,540 --> 00:35:01,860 >> И тако онда ћу тада моћи, као што смо можда очекују, узми ово, покрените моћ од 2, 673 00:35:01,860 --> 00:35:03,680 пружају на то неки подаци, ја волим 2.0. 674 00:35:03,680 --> 00:35:05,756 И ми се да видите резултате овде 4.0. 675 00:35:05,756 --> 00:35:09,200 Рун моћ 2 на 3,2 и ве доћи до погледајте наш резултат, 10.24. 676 00:35:09,200 --> 00:35:10,840 За сада је добро, зар не? 677 00:35:10,840 --> 00:35:12,070 Сада размишљамо, добро, у реду. 678 00:35:12,070 --> 00:35:15,530 Сада сам у ствари треба да уради доста овлашћења 3. 679 00:35:15,530 --> 00:35:19,180 Зато ћу цопи пасте све ове кода, промените име функције из 680 00:35:19,180 --> 00:35:24,440 моћ од 2 до 3, моћи и свега ће бити исти осим за ову вредност 681 00:35:24,440 --> 00:35:26,740 Овде, овај распон, 1 ... 2. 682 00:35:26,740 --> 00:35:29,590 >> Дакле, уместо понављања Ова петља двапут, 683 00:35:29,590 --> 00:35:31,880 Желим да поновим ову петљу три пута. 684 00:35:31,880 --> 00:35:36,330 Тако да сам само променити ту вредност са 1 до 3-- односно од 2 до 3. 685 00:35:36,330 --> 00:35:39,230 Дакле опет, исти број, то је једина промена. 686 00:35:39,230 --> 00:35:40,080 Сада ово такође ради. 687 00:35:40,080 --> 00:35:43,860 Снага од 3 остварују на вредност 2. 688 00:35:43,860 --> 00:35:44,420 Добијамо 8. 689 00:35:44,420 --> 00:35:45,370 Тако 2 коцки. 690 00:35:45,370 --> 00:35:48,060 И 3.2 коцки је 32.768. 691 00:35:48,060 --> 00:35:50,597 И до сада је добро, зар не? 692 00:35:50,597 --> 00:35:52,930 Али надам се да је ово мало Мало црвеном заставицом за вас 693 00:35:52,930 --> 00:35:55,530 у које сада имамо неки дуплирање кода 694 00:35:55,530 --> 00:35:58,800 осим за неке врло мали мењају од једног до другог. 695 00:35:58,800 --> 00:36:02,170 Дакле да ли постоји неки начин да можда би могли да се поједностави 696 00:36:02,170 --> 00:36:06,080 овај проблем, где смо у ствари може, време извршавања, схватим неке, 697 00:36:06,080 --> 00:36:11,320 пружити нам неку функцију која има управо моћ да желимо. 698 00:36:11,320 --> 00:36:13,960 >> И ту је та идеја о затварачи, који је заиста, заиста 699 00:36:13,960 --> 00:36:18,180 важан у контексту Свифт, и у многим другим језицима. 700 00:36:18,180 --> 00:36:21,580 Али вероватно ћете видети она користи више у Свифт 701 00:36:21,580 --> 00:36:23,650 зато што је уграђен у овом језику 702 00:36:23,650 --> 00:36:28,280 него хоћеш у другом такође модерне језике. 703 00:36:28,280 --> 00:36:31,140 Тако идејом затварања је ово, је да смо ми 704 00:36:31,140 --> 00:36:35,430 може имати функцију која је требало да бити генерички функција, генерички снага 705 00:36:35,430 --> 00:36:36,860 функције. 706 00:36:36,860 --> 00:36:41,010 >> И ова функција ће прихватити ово експонент да ми заправо 707 00:36:41,010 --> 00:36:42,990 желимо да створимо. 708 00:36:42,990 --> 00:36:46,550 Тако, на пример, први инстанца, желели смо моћ 2. 709 00:36:46,550 --> 00:36:50,050 Тако да би обезбедио моћ а затим у загради 2. 710 00:36:50,050 --> 00:36:52,490 А сада погледајте шта ово заправо враћа. 711 00:36:52,490 --> 00:36:57,680 Ово заузима улаз прајмер зове и то је цео број, 712 00:36:57,680 --> 00:37:03,090 а враћа ово лудо лоокинг ствар у загради парентхесес-- 713 00:37:03,090 --> 00:37:06,230 доубле и онда арров дупло. 714 00:37:06,230 --> 00:37:10,270 >> То значи да сам ће вратити функцију. 715 00:37:10,270 --> 00:37:13,510 Не враћам други тип података, ја сам 716 00:37:13,510 --> 00:37:16,350 у ствари враћа функцију да има овај параметар, који 717 00:37:16,350 --> 00:37:22,680 прихвата дупло као улаз и излази двоструки као повратну вредност. 718 00:37:22,680 --> 00:37:29,750 И као резултат, јер сада сам звао моћ, пролазећи у некој вредности за и, 719 00:37:29,750 --> 00:37:32,280 и ја стварам ово друго фунцтион-- обавештење да постоји 720 00:37:32,280 --> 00:37:35,980 још једна функција која је стварају Унутрашњост ово-- шта радим 721 00:37:35,980 --> 00:37:37,830 Ја се тада може да промени да вриједност, да је један 722 00:37:37,830 --> 00:37:41,010 Вредност коју сам променила од 2 до 3, ја сад да га год. 723 00:37:41,010 --> 00:37:42,500 >> И ово потраје. 724 00:37:42,500 --> 00:37:48,530 Тако сваки пут да ја зовем власт од, у суштини шта се дешава 725 00:37:48,530 --> 00:37:51,030 је да сам се вратио функцију. 726 00:37:51,030 --> 00:37:54,310 Обратите пажњу да овде сам дефинисано нова променљива зове трг. 727 00:37:54,310 --> 00:37:59,340 Ја сам сет је једнака снази, под условом ову вредност 2 на власт. 728 00:37:59,340 --> 00:38:02,030 А шта то вратио је функција. 729 00:38:02,030 --> 00:38:05,970 Дакле квадрат, променљива квадрат, је сада типа функције 730 00:38:05,970 --> 00:38:11,390 да има ово-- оопс, крећите се горе Мало бит-- да има ову потпис, 731 00:38:11,390 --> 00:38:15,560 прихватити двоструки и излаз дупло. 732 00:38:15,560 --> 00:38:17,330 >> Па сад, шта сам урадио Ја сам је у суштини 733 00:38:17,330 --> 00:38:22,890 створио неку функцију зове трг који прихвата никакву вредност и да ће га квадрат. 734 00:38:22,890 --> 00:38:24,960 Можемо да видимо шта се дешава овде. 735 00:38:24,960 --> 00:38:29,960 Квадрат 3 на пример, значи идем да узме вредност 3 и упослио га. 736 00:38:29,960 --> 00:38:32,010 Па како тачно то функционише? 737 00:38:32,010 --> 00:38:37,800 Када сам пасс снагу од кад сам 2-- пасс 2 у ову власт функције, 738 00:38:37,800 --> 00:38:44,430 ово променљива и је насељена са том вредношћу 2. 739 00:38:44,430 --> 00:38:46,340 И то је на неки начин одржава у меморији. 740 00:38:46,340 --> 00:38:49,430 То је нека врста одржан у држава негде у рачунару, 741 00:38:49,430 --> 00:38:51,980 ми стварно не занима ме како или где у овом тренутку. 742 00:38:51,980 --> 00:38:54,692 >> Али ја вратити ову функцију звао екпонентиате. 743 00:38:54,692 --> 00:38:57,400 И опет, то није ни битно ста ова функција се зове, 744 00:38:57,400 --> 00:39:01,730 ми заиста може назвати било шта, што прихвата двоструки и враћа двоструко, 745 00:39:01,730 --> 00:39:05,640 али користи овај вредност и у њему. 746 00:39:05,640 --> 00:39:09,290 Дакле, иако је то ова функција, ово екпонентиатер функција која је 747 00:39:09,290 --> 00:39:13,600 враћени назад на мој променљива да сам звао квадрат, 748 00:39:13,600 --> 00:39:17,980 она је садржана у њој ово појам шта год било. 749 00:39:17,980 --> 00:39:19,070 И памти да. 750 00:39:19,070 --> 00:39:24,810 >> Тако сваки пут кад зовем те функције које се сада зове трг, користи то. 751 00:39:24,810 --> 00:39:27,990 Али то такође значи да ја могу створити још једну променљиву користећи 752 00:39:27,990 --> 00:39:29,120 другачији моћ. 753 00:39:29,120 --> 00:39:33,240 Тако да могу створити коцке променљиву, за Пример, пружају му моћ 3. 754 00:39:33,240 --> 00:39:37,230 Сада коцка ће заправо узети неке вредност и коцка да и вратити га. 755 00:39:37,230 --> 00:39:39,570 Тако можемо видети да добијем вредност 8 од тога. 756 00:39:39,570 --> 00:39:42,720 >> Али то вредност год нема променило зато што су 757 00:39:42,720 --> 00:39:44,980 одржан у врсти независних варијабли. 758 00:39:44,980 --> 00:39:47,480 Они су на неки начин одржава у независни простори у меморији. 759 00:39:47,480 --> 00:39:51,290 Тако ће увек имати коцка к снази 3. 760 00:39:51,290 --> 00:39:55,380 И трг ће увек имати к за моћ 2, која 761 00:39:55,380 --> 00:39:58,470 значи да ће увек квадрат квадратних бројеви, као да очекујем. 762 00:39:58,470 --> 00:40:01,794 И коцка ће увек укоцкавају бројеви, као што сам очекивао. 763 00:40:01,794 --> 00:40:04,960 То такође значи да понекад можете гет неку врсту функи лоокинг синтаксе 764 00:40:04,960 --> 00:40:09,030 где имате моћ у врло дну екрана овде, моћ 5. 765 00:40:09,030 --> 00:40:11,410 А ти прође у резултат. 766 00:40:11,410 --> 00:40:14,670 Ти то зовеш функцију која је враћени са бројем 4. 767 00:40:14,670 --> 00:40:17,440 И шта у суштини ово је 4 петој власти, 768 00:40:17,440 --> 00:40:20,830 можемо видети резултате тамо. 769 00:40:20,830 --> 00:40:23,690 Са мном до сада? 770 00:40:23,690 --> 00:40:26,620 >> Дакле ова идеја се назива затварање, јер оно што ми радимо у суштини 771 00:40:26,620 --> 00:40:30,610 је ми инкапсулирање неки подаци инто-- врста 772 00:40:30,610 --> 00:40:33,050 извесно затварање ове податке у функцији и ми смо 773 00:40:33,050 --> 00:40:36,240 бити у стању да поново користите ову функцију. 774 00:40:36,240 --> 00:40:41,480 Сада ова синтакса мада може заправо бити поједностављен велику количину. 775 00:40:41,480 --> 00:40:45,005 А ту је и много могућности у Свифт за ову поједностављења. 776 00:40:45,005 --> 00:40:47,780 И то је оно што врста накнадне они заправо погледате. 777 00:40:47,780 --> 00:40:51,400 Дакле, у 7б на пример, ми Користим ову потпуно исту шифру. 778 00:40:51,400 --> 00:40:54,360 >> Али сада уместо заправо дефинисати функцију 779 00:40:54,360 --> 00:40:57,910 унутар ове снаге функционишу и дају јој име, 780 00:40:57,910 --> 00:41:00,150 и онда се вратити име те функције, која 781 00:41:00,150 --> 00:41:02,357 тада се користи као део ово затварање, уместо да смо 782 00:41:02,357 --> 00:41:03,440 само да га поједноставити. 783 00:41:03,440 --> 00:41:06,580 Не треба нам ова функција да буде именован. 784 00:41:06,580 --> 00:41:09,760 Дакле, ово је концепт анонимно функција где смо онда можемо 785 00:41:09,760 --> 00:41:15,180 прихватити као улаз, у загради овде, променљива к која је типа доубле. 786 00:41:15,180 --> 00:41:17,250 >> Идемо да врати Двоструко. 787 00:41:17,250 --> 00:41:19,830 А онда слово, н, је почетак ове функције. 788 00:41:19,830 --> 00:41:22,180 Тако приметити да је све ово је у оквиру витичастих заграда 789 00:41:22,180 --> 00:41:25,310 а ми дефинисања анонимно функционишу овде. 790 00:41:25,310 --> 00:41:29,910 Само једноставнији начин дефинисање исту ствар. 791 00:41:29,910 --> 00:41:30,810 У реду? 792 00:41:30,810 --> 00:41:36,740 Али чекај, Свифт заправо нам дозвољава да иду даље и још више поједноставити, 793 00:41:36,740 --> 00:41:40,180 јер стварно ми не радимо стало да овај параметар је 794 00:41:40,180 --> 00:41:41,700 назван неки посебан ствар. 795 00:41:41,700 --> 00:41:48,090 Заиста оно се може назвати било шта и још увек можете да користите тај први параметар. 796 00:41:48,090 --> 00:41:53,800 >> Дакле, у суштини постоји ова посебна Врста података у анонимних функција, 797 00:41:53,800 --> 00:41:57,710 постоји тај посебан назив променљиве у анонимних функција 798 00:41:57,710 --> 00:42:00,280 да почнемо са знак доллара и представљају 799 00:42:00,280 --> 00:42:03,785 бројеви параметар, нула индексирани, за ову функцију. 800 00:42:03,785 --> 00:42:05,410 Тако да пар ствари дешава. 801 00:42:05,410 --> 00:42:08,550 Ево ја ћу да се вратим, а онда коврџава браће представља функцију, 802 00:42:08,550 --> 00:42:09,050 зар не? 803 00:42:09,050 --> 00:42:13,920 >> Обавештење да не дефинисали параметара типа или повратни тип. 804 00:42:13,920 --> 00:42:16,460 Заправо би се могло закључити због потписа 805 00:42:16,460 --> 00:42:18,360 ове оригиналне функције. 806 00:42:18,360 --> 00:42:20,500 Тако можемо елиминисати да као могућност. 807 00:42:20,500 --> 00:42:25,120 Али и ја могу да користим доллар сигн нула до представљају ову прву параметар који је 808 00:42:25,120 --> 00:42:28,200 прешла у овом анонимном функцију. 809 00:42:28,200 --> 00:42:31,630 Тако је поједностављивање још више. 810 00:42:31,630 --> 00:42:32,750 У реду? 811 00:42:32,750 --> 00:42:33,820 До сада, тако добро? 812 00:42:33,820 --> 00:42:36,980 >> Сада је ово тип-- зар не ремембер тхис долара знак нула 813 00:42:36,980 --> 00:42:40,130 да смо видели у овом коврџаву браце да смо видели само мало 814 00:42:40,130 --> 00:42:43,870 пре у овом Свифт шест пример? 815 00:42:43,870 --> 00:42:46,560 Било је баш овде. 816 00:42:46,560 --> 00:42:48,430 Приметите да је управо оно што гледамо, 817 00:42:48,430 --> 00:42:51,580 је да смо прошли у овом подељеном функцију 818 00:42:51,580 --> 00:42:55,140 анонимни функција која проверава први параметар 819 00:42:55,140 --> 00:42:57,830 да видимо да ли једнак симбол колона. 820 00:42:57,830 --> 00:42:59,830 И то је управо оно што је догађа, јесте да све 821 00:42:59,830 --> 00:43:02,320 ми доинг-- повратак кључна реч подразумева 822 00:43:02,320 --> 00:43:05,800 у овом цасе-- смо повратка ова вредност где смо поредећи 823 00:43:05,800 --> 00:43:10,020 Први параметар против ово лик дебелог. 824 00:43:10,020 --> 00:43:11,730 И тако то некако демистификује ово. 825 00:43:11,730 --> 00:43:17,210 И ви ћете да видите ову конструкцију много у Свифт синтакси, учини имајте то 826 00:43:17,210 --> 00:43:19,400 на уму кад си узимајући Погледајте ово. 827 00:43:19,400 --> 00:43:21,970 Сада можемо сићи шине мало 828 00:43:21,970 --> 00:43:25,460 и го заиста фенси да емисија чак још мало Свифт моћи. 829 00:43:25,460 --> 00:43:27,950 Можда ћете чак видети неке од њих у узорку кодовима. 830 00:43:27,950 --> 00:43:29,790 Зато идем показати ово вама. 831 00:43:29,790 --> 00:43:37,260 >> У суштини оно што можемо да урадимо јесте да, прво свега, било је некако Непотребно за мене 832 00:43:37,260 --> 00:43:41,710 да спроведе све те моћи Код јер ако увезете Дарвин 833 00:43:41,710 --> 00:43:46,490 библиотека, заправо садржи функцију зове бам да то ради за вас. 834 00:43:46,490 --> 00:43:50,570 Тако можемо још више поједноставити и имамо снаге до функције сада само 835 00:43:50,570 --> 00:43:54,890 бити диван један брод где смо управо ретурн ову функцију да анонимно 836 00:43:54,890 --> 00:44:00,780 прихвата доллар сигн 0 као база и И као њен експонент. 837 00:44:00,780 --> 00:44:02,582 >> Али можемо добити стварно, стварно фенси Вхен Ве 838 00:44:02,582 --> 00:44:04,790 схватите да Свифт има Много снаге испод хаубе. 839 00:44:04,790 --> 00:44:07,010 Много оператера који смо бави, 840 00:44:07,010 --> 00:44:11,270 плус знаци и симболи дивисион и све те ствари које сте нормално 841 00:44:11,270 --> 00:44:15,620 раде са са типовима података у програмском језику, 842 00:44:15,620 --> 00:44:17,600 су заправо прошириви у Свифт. 843 00:44:17,600 --> 00:44:21,460 Па шта то значи по томе што се може дефинисати наше оператере. 844 00:44:21,460 --> 00:44:26,020 >> Тако сада сам уморан од куцања у свему овоме пов а затим заграде, а затим 845 00:44:26,020 --> 00:44:26,520 база. 846 00:44:26,520 --> 00:44:27,520 Не желим то да урадим. 847 00:44:27,520 --> 00:44:30,190 Ја стварно желим да имам оператер који ми омогућава да урадим. 848 00:44:30,190 --> 00:44:34,510 Дакле, могу да кажем да желим Свифт да створи оператора, звезду 849 00:44:34,510 --> 00:44:39,472 стар-- успут не могу користити карат јер карат је оператер који 850 00:44:39,472 --> 00:44:40,680 ради нешто сасвим друго. 851 00:44:40,680 --> 00:44:42,720 Тако да не желим да сортирају од сударају са тим. 852 00:44:42,720 --> 00:44:45,750 И тако оно што видите у разним језика, укључујући Питхон, 853 00:44:45,750 --> 00:44:48,810 је као стар стар оператора да представља експонената. 854 00:44:48,810 --> 00:44:50,730 >> Дакле, то је једини разлог Зато сам то урадио. 855 00:44:50,730 --> 00:44:53,067 И то ће бити Тип инфикс оператер. 856 00:44:53,067 --> 00:44:54,900 И морам да пружи до њега неке информације 857 00:44:54,900 --> 00:44:58,386 о првенству ове оператер тако да је лево асоцијативна. 858 00:44:58,386 --> 00:45:00,260 То је као релативно Висок предност у односу 859 00:45:00,260 --> 00:45:02,432 да сума или умножавање. 860 00:45:02,432 --> 00:45:04,140 То је виши приоритет него сви они. 861 00:45:04,140 --> 00:45:04,931 Тако даље и тако даље. 862 00:45:04,931 --> 00:45:07,410 А онда сам дефинисати функција која заправо 863 00:45:07,410 --> 00:45:10,070 диктира шта ово оператер ради. 864 00:45:10,070 --> 00:45:14,150 Тако под претпоставком да имам лево ханд сиде и десно, 865 00:45:14,150 --> 00:45:17,330 што би било можда Боље променљиве име за ово. 866 00:45:17,330 --> 00:45:20,690 Лева страна и десна страна. 867 00:45:20,690 --> 00:45:26,740 Ја тада могу искористити ову моћ лева страна на десној страни 868 00:45:26,740 --> 00:45:28,980 и врати ту вредност. 869 00:45:28,980 --> 00:45:30,370 Дакле сад је супер слатко. 870 00:45:30,370 --> 00:45:33,790 Све што треба да урадимо је 2 звездице звездице 3 а то је 2 за треће силе, 871 00:45:33,790 --> 00:45:35,290 и добијамо вредност од 8. 872 00:45:35,290 --> 00:45:40,280 2 стар 10 је 2 до 10тх снага, добијамо 1.024. 873 00:45:40,280 --> 00:45:43,630 >> Тако сада наша снага функције, која опет је другачији, 874 00:45:43,630 --> 00:45:47,030 јер је цела идеја иза овога је да имамо једну функцију која 875 00:45:47,030 --> 00:45:50,700 Увек узима неку вредност и умножава то-- односно 876 00:45:50,700 --> 00:45:53,240 узима експонент на исти власт. 877 00:45:53,240 --> 00:45:54,300 Дакле сад је још једноставније. 878 00:45:54,300 --> 00:45:57,070 Дакле, сада је то само долар сигн 0 стар стар год. 879 00:45:57,070 --> 00:46:01,190 Ми чак не морам више да користите бум. 880 00:46:01,190 --> 00:46:03,020 >> Ок, ко је изгубио? 881 00:46:03,020 --> 00:46:03,700 Радимо добро? 882 00:46:03,700 --> 00:46:05,090 Сва питања о овим стварима? 883 00:46:05,090 --> 00:46:05,815 Да? 884 00:46:05,815 --> 00:46:09,500 >> ПУБЛИКА: Када тебе-- [неразумљиво] функ моћ год дупло. 885 00:46:09,500 --> 00:46:11,441 Дакле, када враћате функцију. 886 00:46:11,441 --> 00:46:13,190 ДАНИЕЛ Армендариз: Функ моћ год дупло. 887 00:46:13,190 --> 00:46:14,270 Ох да, ја не знам шта су и бројеви су. 888 00:46:14,270 --> 00:46:15,708 Жао ми је због тога. 889 00:46:15,708 --> 00:46:19,420 >> ПУБЛИКА: Зашто враћају функција [неразумљиво] кућиште. 890 00:46:19,420 --> 00:46:24,214 Није долар нула звездица звезда И [неразумљиво] 891 00:46:24,214 --> 00:46:29,710 наћи тај оператор са тим враћа двоструко [неразумљиво] дупло? 892 00:46:29,710 --> 00:46:32,742 >> ДАНИЕЛ Армендариз: Па хајде да одговорим на ваше питање 893 00:46:32,742 --> 00:46:35,950 како сам ја схватио, а можете ми рећи ако нисам разумео питање. 894 00:46:35,950 --> 00:46:42,850 Дакле, ово конструкт, коврџава браће знак доллара нула стар година, 895 00:46:42,850 --> 00:46:44,280 је функција. 896 00:46:44,280 --> 00:46:50,080 И то прихвата параметар који је заступа овај долар знак нула. 897 00:46:50,080 --> 00:46:55,830 Повратак кључна реч подразумева у ово Веома кратко, анонимни функција синтакса. 898 00:46:55,830 --> 00:46:57,870 >> Што значи да у суштини шта ово говори 899 00:46:57,870 --> 00:47:01,270 је да сам дефинисање фунцтион-- и онда ћу 900 00:47:01,270 --> 00:47:05,320 Само га зову нешто-- где имам неке вредности и. 901 00:47:05,320 --> 00:47:08,300 Имам и, што је двоструко. 902 00:47:08,300 --> 00:47:10,750 И ја ти враћам дупло. 903 00:47:10,750 --> 00:47:19,010 И ја имам у том повратку и-- жао, Нисам требао да зове ово и-- к. 904 00:47:19,010 --> 00:47:20,240 О драги, драги ох, ох драги. 905 00:47:20,240 --> 00:47:27,440 Кс-- нопе-- стар год. 906 00:47:27,440 --> 00:47:29,720 >> Дакле, ово је само поједностављена верзија ове. 907 00:47:29,720 --> 00:47:33,990 И тако разлог да имам долар знак нула је да коришћењем овог енцлосуре 908 00:47:33,990 --> 00:47:41,050 значи да више немам да куцате бум, или више не радим 909 00:47:41,050 --> 00:47:45,570 Морам да урадим нешто као 3 звездице са 2. 910 00:47:45,570 --> 00:47:48,530 Само могу имати један Функција зове квадрат 911 00:47:48,530 --> 00:47:50,820 да ће увек узети нека вредност као улаз 912 00:47:50,820 --> 00:47:52,980 и заправо врати квадрат који. 913 00:47:52,980 --> 00:47:56,460 >> Дакле цела сврха затварања је да некако енкапсулираш чињеницу 914 00:47:56,460 --> 00:47:59,920 да сам увек желим да користим кад год и Позивам ту функцију као моћ 915 00:47:59,920 --> 00:48:01,710 када узимања овог експонент. 916 00:48:01,710 --> 00:48:04,650 Дакле повратку онда, функција која прихвата 917 00:48:04,650 --> 00:48:08,460 доубле, која је база, и враћање резултат тог експонент 918 00:48:08,460 --> 00:48:10,740 је кључ овде. 919 00:48:10,740 --> 00:48:12,790 И то је главни разлика. 920 00:48:12,790 --> 00:48:14,430 Било је само помало процват. 921 00:48:14,430 --> 00:48:17,970 >> Ово није било другачије односу на претходним примерима, 922 00:48:17,970 --> 00:48:20,530 али то је само мало можемо напредовати може заправо 923 00:48:20,530 --> 00:48:24,500 створи оператор у Свифт и заправо радим ствари са њим, 924 00:48:24,500 --> 00:48:26,396 која је врста хладном ствари. 925 00:48:26,396 --> 00:48:27,520 Да ли да одговорим на ваше питање? 926 00:48:27,520 --> 00:48:28,390 Свеет. 927 00:48:28,390 --> 00:48:31,350 Још нешто пре него што наставимо? 928 00:48:31,350 --> 00:48:33,570 У реду. 929 00:48:33,570 --> 00:48:36,430 >> Сада ова врста моли Питање је то-- добро реду, 930 00:48:36,430 --> 00:48:40,870 Сада имамо могућност за функције да се врати. 931 00:48:40,870 --> 00:48:48,950 Можемо ли такође проћи функције као података или као параметре другим функцијама? 932 00:48:48,950 --> 00:48:50,710 И у ствари можемо. 933 00:48:50,710 --> 00:48:53,480 Па рецимо да имамо сви исти кода. 934 00:48:53,480 --> 00:48:56,120 Имамо квадратни променљиву да ће квадрат овај код. 935 00:48:56,120 --> 00:48:59,320 И имамо коцке променљиву да ће цубе неке податке. 936 00:48:59,320 --> 00:49:02,440 И ми у ствари желимо да примените на широк спектар бројева. 937 00:49:02,440 --> 00:49:06,870 >> Па шта бисмо могли доћи у искушење да уради, наравно, што је свакако важи, 938 00:49:06,870 --> 00:49:15,430 је тако прелазите преко ове листе бројева и примењују моје функције квадрат и коцку 939 00:49:15,430 --> 00:49:22,270 и добили двије нове листе као резултата да су ова оригинална листа на квадрат 940 00:49:22,270 --> 00:49:24,970 и укоцкавају, респективно. 941 00:49:24,970 --> 00:49:26,880 Савршено прихватљиво. 942 00:49:26,880 --> 00:49:29,130 Али шта је ствар која видимо овде је да имамо, 943 00:49:29,130 --> 00:49:31,310 Опет, дуплирање наше кода. 944 00:49:31,310 --> 00:49:34,310 А можда постоји шанса за нас да поједностави ово мало. 945 00:49:34,310 --> 00:49:41,260 Шта ако постоји начин за нас да заправо увек поновити преко неке листе 946 00:49:41,260 --> 00:49:45,450 и само прелазимо на тај магичан функционишу променљиву која 947 00:49:45,450 --> 00:49:47,350 представља функцију да желимо да примените 948 00:49:47,350 --> 00:49:50,336 на сваки предмет у овој листи. 949 00:49:50,336 --> 00:49:53,210 Ово нас доводи до концепта шта се зове веће функције реда. 950 00:49:53,210 --> 00:49:57,150 И то је у суштини оно што ова је, је да можемо да створи функцију. 951 00:49:57,150 --> 00:50:00,210 >> И у овом случају то се зове маппер, само да му дати име, само 952 00:50:00,210 --> 00:50:02,510 мапирање преко сваке појединачна ставка у листи. 953 00:50:02,510 --> 00:50:06,191 Где узети списак и ја узети функцију. 954 00:50:06,191 --> 00:50:08,440 И то функција, наравно, има одређену потпис. 955 00:50:08,440 --> 00:50:11,980 Она прихвата као параметар контру и то ће излаз је двоструко. 956 00:50:11,980 --> 00:50:14,310 И цела резултат ова функција ће 957 00:50:14,310 --> 00:50:18,921 да нова листа која је типа Доубле. 958 00:50:18,921 --> 00:50:19,420 У реду? 959 00:50:19,420 --> 00:50:22,650 >> И шта ћу да урадим је применити ову функцију ф 960 00:50:22,650 --> 00:50:24,960 сваком елементу у мојој листи. 961 00:50:24,960 --> 00:50:30,280 И репли-- и прилично врати ова нова Листа као резултат, што је стварно кул. 962 00:50:30,280 --> 00:50:31,820 Сада могу проћи око функције. 963 00:50:31,820 --> 00:50:35,290 И ова идеја вишег реда Функције је стварно важно. 964 00:50:35,290 --> 00:50:39,260 А ово је заиста само маппер Имплементација сиромаха човека 965 00:50:39,260 --> 00:50:43,130 о функцији која је изграђена у Свифт зове карту. 966 00:50:43,130 --> 00:50:45,690 И управо то ради, можда чак и мало боље. 967 00:50:45,690 --> 00:50:48,260 >> Ово је само једна од генерички, поједностављена верзија која 968 00:50:48,260 --> 00:50:51,270 омогућава нам да видимо Концепт који се односи овде. 969 00:50:51,270 --> 00:50:54,630 Сада погледати на начин који сам може заправо примењују свој квадрат 970 00:50:54,630 --> 00:50:57,850 и моји Цубе функције на овом списку бројева. 971 00:50:57,850 --> 00:50:58,780 Ја водим своју маппер. 972 00:50:58,780 --> 00:51:00,280 Ја пружају на то мој списак бројева. 973 00:51:00,280 --> 00:51:02,155 Ја пружају на то у функција која се дешава 974 00:51:02,155 --> 00:51:04,170 да се обрати сваки од тих индекса. 975 00:51:04,170 --> 00:51:07,120 И то ће бити излаз као резултат. 976 00:51:07,120 --> 00:51:11,810 И ја ћу се да видим да сам на квадрат и укоцкавају моје бројеве као резултат. 977 00:51:11,810 --> 00:51:14,660 >> И наравно маппер ће узети било каква анонимног функције. 978 00:51:14,660 --> 00:51:17,640 Чак можемо видети да сам створио нова анонимна функција која 979 00:51:17,640 --> 00:51:20,220 Само треба неко параметар и дели га са 2. 980 00:51:20,220 --> 00:51:24,340 И видимо да имам, у ствари, подељен моју листу са 2 уместо. 981 00:51:24,340 --> 00:51:25,250 Цоол? 982 00:51:25,250 --> 00:51:27,340 До сада, тако добро? 983 00:51:27,340 --> 00:51:29,650 У реду, хајде сада да вратити на ову идеју. 984 00:51:29,650 --> 00:51:36,160 Хајде да спроведе ово назад у контексту Градебоок. 985 00:51:36,160 --> 00:51:41,860 >> И ако то урадим, можемо видети да ја могу примењују широк спектар ових опције-- 986 00:51:41,860 --> 00:51:44,330 или широк избор ових виши функције реда 987 00:51:44,330 --> 00:51:51,450 да стварно поједноставити своју способност да мноштво ствари на листама бројева. 988 00:51:51,450 --> 00:51:53,660 Тако на пример, ако ја узети листу бројева, 989 00:51:53,660 --> 00:51:57,060 једна од вишег функција реда да постоји се зове смањити. 990 00:51:57,060 --> 00:52:00,080 Шта се смањи ради прилично него карте, своди ће 991 00:52:00,080 --> 00:52:03,710 узме два елемента у листи, ће бити потребно неко функцију да 992 00:52:03,710 --> 00:52:07,420 пореди два елемента Листа, и то онда ће 993 00:52:07,420 --> 00:52:09,610 некако оутпут-- излаз за ту функцију 994 00:52:09,610 --> 00:52:13,790 Биће то још један елемент који ви онда упоредите другима. 995 00:52:13,790 --> 00:52:18,190 >> Да би могао да користи ово да заправо збир бројева у вашој листи. 996 00:52:18,190 --> 00:52:20,640 На пример, ако сте имали списак 1, 2, 3, 4, 5, 997 00:52:20,640 --> 00:52:22,940 узмете прве елементе, 1 и 2. 998 00:52:22,940 --> 00:52:27,270 Можете се пријавити на њега додавање функција која узима та два елемента 999 00:52:27,270 --> 00:52:30,980 и избацује један од тих елемената, који би био вредност 3. 1000 00:52:30,980 --> 00:52:35,684 Онда ћемо узети ту вредност 3 са следећа елемент листе, сум она двојица, 1001 00:52:35,684 --> 00:52:37,100 а затим наставите на дну листе. 1002 00:52:37,100 --> 00:52:40,410 >> Ми смо смањење список на једну вредност. 1003 00:52:40,410 --> 00:52:42,700 И то само тако деси да је симбол плус 1004 00:52:42,700 --> 00:52:44,670 је оператер, баш као што смо управо видели. 1005 00:52:44,670 --> 00:52:47,500 Ово је оператер заправо функција која 1006 00:52:47,500 --> 00:52:53,100 има управо овај списак који смо би желео, а ових особина 1007 00:52:53,100 --> 00:52:54,770 да би желимо. 1008 00:52:54,770 --> 00:52:56,760 Тако сам вам и да погледај ово. 1009 00:52:56,760 --> 00:52:59,290 Желим да те некако потез о из неких овог кодекса 1010 00:52:59,290 --> 00:53:05,330 тако да можемо да погледамо неке стварна, реална, истина Свифт у Ксцоде, 1011 00:53:05,330 --> 00:53:06,880 у иОС развој. 1012 00:53:06,880 --> 00:53:08,630 Али погледајте ово и видите да ли можете 1013 00:53:08,630 --> 00:53:11,171 парсе кроз шта се дешава са неким од ових вишег реда 1014 00:53:11,171 --> 00:53:13,790 функције, укључујући филтер, смањују, а чак ћете 1015 00:53:13,790 --> 00:53:17,060 види негде овде карти. 1016 00:53:17,060 --> 00:53:17,910 То је овде. 1017 00:53:17,910 --> 00:53:20,410 Где ће бити потребно секвенцу оцјена и она заправо хоће 1018 00:53:20,410 --> 00:53:24,230 мап их помоћу прекидача конструкт, који сте можда препознати из Ц, 1019 00:53:24,230 --> 00:53:27,640 али у ствари то је много више моћнији од прекидача конструкт 1020 00:53:27,640 --> 00:53:29,810 да имамо у Ц. 1021 00:53:29,810 --> 00:53:31,930 >> И ми ћемо применити да би сваки елемент у листи 1022 00:53:31,930 --> 00:53:34,540 и заправо обезбеђују писмо разред сваке 1023 00:53:34,540 --> 00:53:40,780 од тих разреда користе све ове појмове да смо управо причали раније. 1024 00:53:40,780 --> 00:53:44,760 Хајде сада да заобиђе за само минут и разговарати о Структуре. 1025 00:53:44,760 --> 00:53:49,680 И тако Структуре су чекање у Ц да смо су били у могућности да дефинишу нови тип података. 1026 00:53:49,680 --> 00:53:53,590 Структуре постоје унутар Свифт. 1027 00:53:53,590 --> 00:53:58,980 И то учини много других конструкција називају енумс и класе, које стварно 1028 00:53:58,980 --> 00:54:01,175 Користим ову идеју потпуно други ниво. 1029 00:54:01,175 --> 00:54:05,300 >> И у суштини то је само начин дефинисања новог типа података. 1030 00:54:05,300 --> 00:54:11,010 Дакле, ако сте добијам-- ако дођете преко класе или Струцтс или енумс, 1031 00:54:11,010 --> 00:54:13,290 Немојте се збунити од њега. 1032 00:54:13,290 --> 00:54:16,280 То је само начин дефинисања нека нова посебан тип података. 1033 00:54:16,280 --> 00:54:20,230 И ово је стварно важно када говоримо о иОС апп развој 1034 00:54:20,230 --> 00:54:24,630 јер све то постоји у апликацији за иОС 1035 00:54:24,630 --> 00:54:27,460 је у суштини предмет неке врсте. 1036 00:54:27,460 --> 00:54:31,980 И објекат је у основи класа или енум или струцт. 1037 00:54:31,980 --> 00:54:34,760 >> Дакле, у овом случају сам дефинисање новог типа података 1038 00:54:34,760 --> 00:54:37,740 да зовем процену то је нека својства, укључујући 1039 00:54:37,740 --> 00:54:41,040 Име и редослед разреда. 1040 00:54:41,040 --> 00:54:43,470 Тако један тип процене да сам можда има на уму 1041 00:54:43,470 --> 00:54:44,760 би квизови, на пример. 1042 00:54:44,760 --> 00:54:48,180 Ја бих желео да имам процена да је квиз 1043 00:54:48,180 --> 00:54:51,460 и који је имао различите разреда повезана с тим, за квиз један, 1044 00:54:51,460 --> 00:54:52,840 квиз два, тако даље и тако даље. 1045 00:54:52,840 --> 00:54:55,720 >> Или сам можда има другу врсту процјене за проблем поставе. 1046 00:54:55,720 --> 00:54:56,650 И ја могу да радим ствари. 1047 00:54:56,650 --> 00:54:59,860 Ја стварно могу имати функције у овој врсти 1048 00:54:59,860 --> 00:55:02,645 података, који су сада названи методе. 1049 00:55:02,645 --> 00:55:04,520 Дакле, ако сте икада видели метод реч, то стварно 1050 00:55:04,520 --> 00:55:08,190 је само функција која важи на веома специфичан класе, 1051 00:55:08,190 --> 00:55:10,100 или на веома специфичан тип података. 1052 00:55:10,100 --> 00:55:12,350 То нам омогућава да измените податке у року. 1053 00:55:12,350 --> 00:55:15,510 >> Другим речима, ако желим да додате разред мојој процени, 1054 00:55:15,510 --> 00:55:18,630 онда све што треба да урадите је да додајте на резултат који је улаз 1055 00:55:18,630 --> 00:55:22,660 на ту функцију на мој унутрашњи имовине. 1056 00:55:22,660 --> 00:55:25,880 Постоји још једна уредан конструкт овде у Свифт, што је овај Дот Дот Дот 1057 00:55:25,880 --> 00:55:31,780 оператер, што значи да је постигао могу Сада прихвати било који број целих бројева. 1058 00:55:31,780 --> 00:55:33,940 И резултати ће бити низ целих бројева који 1059 00:55:33,940 --> 00:55:39,030 Донети су на моју функцију, која значи да могу да урадим овакве ствари. 1060 00:55:39,030 --> 00:55:42,360 >> Ја могу да оцене и додати само обезбедити произвољне број природних бројева у њега 1061 00:55:42,360 --> 00:55:47,420 и заправо се обезбедити низ тих вредности у мом функцији 1062 00:55:47,420 --> 00:55:50,270 или у мом метода, као што је случај. 1063 00:55:50,270 --> 00:55:54,040 Сада је то важно јер све у Ксцоде, све у иОС, 1064 00:55:54,040 --> 00:55:56,250 је у ствари објекат. 1065 00:55:56,250 --> 00:55:59,630 Тако то на уму кад смо буст отворен Ксцоде 1066 00:55:59,630 --> 00:56:04,890 и идите даље иОС верзије два и три 1067 00:56:04,890 --> 00:56:08,820 и заправо иду на верзији четири. 1068 00:56:08,820 --> 00:56:11,940 >> И опет, све ово ће бити објављен на страници семинара. 1069 00:56:11,940 --> 00:56:16,980 иОС четири је нека врста пуну бловн имплементација основном апп. 1070 00:56:16,980 --> 00:56:23,920 А шта ова апликација ради то је учитава УИ, који изгледа овако. 1071 00:56:23,920 --> 00:56:28,680 Опет, ако кликнете на монтажној траци можемо види да је то оно што изгледа. 1072 00:56:28,680 --> 00:56:31,320 Ово је УИ. 1073 00:56:31,320 --> 00:56:33,676 Има титулу на самом врху. 1074 00:56:33,676 --> 00:56:34,800 Ја сам га назвао веб галерија. 1075 00:56:34,800 --> 00:56:38,400 >> У средини постоји елемент назива поглед УИ слика. 1076 00:56:38,400 --> 00:56:41,340 И на дну има алаткама са једним дугметом који 1077 00:56:41,340 --> 00:56:46,850 има стретцхи просторе који га омогућавају да центар усред ове палете. 1078 00:56:46,850 --> 00:56:51,780 А шта се дешава јесте да када ова оптерећења она скида ЈСОН датотеке које 1079 00:56:51,780 --> 00:56:55,540 садржан на серверу на другом месту, парсес тај ЈСОН фајл, 1080 00:56:55,540 --> 00:56:58,130 и ЈСОН фајл изгледа мало овако. 1081 00:56:58,130 --> 00:57:02,770 1082 00:57:02,770 --> 00:57:06,230 ЈСОН фајл изгледа овако. 1083 00:57:06,230 --> 00:57:08,650 Ту је. 1084 00:57:08,650 --> 00:57:11,730 >> Има име албума и има низ фотографија. 1085 00:57:11,730 --> 00:57:13,490 Свака од тих фотографија има име и такође 1086 00:57:13,490 --> 00:57:19,460 сами УРЛ који представљају јпег верзија тог појединачног фото. 1087 00:57:19,460 --> 00:57:24,780 Па шта се деси је да када је овај програм оптерећења, она преузима ЈСОН фајл, 1088 00:57:24,780 --> 00:57:30,590 парсес га, ставља све ово у еквивалент низа у иОС 1089 00:57:30,590 --> 00:57:33,020 апп развој, која је нсарраи. 1090 00:57:33,020 --> 00:57:37,520 И онда ја онда могу учитати ови подаци у апликацији 1091 00:57:37,520 --> 00:57:41,100 и учитати га на свом екрану. 1092 00:57:41,100 --> 00:57:44,760 >> Постоји слика која је напуњен помоћу дугмета на самом дну. 1093 00:57:44,760 --> 00:57:49,190 Ако кликнем Гет Нект Имаге, онда повлачи ту слику са интернета 1094 00:57:49,190 --> 00:57:53,370 и замењује ту слику у приказу УИ слике. 1095 00:57:53,370 --> 00:57:57,820 Тако да можете преузети ово и стварно погледај га на рачунар. 1096 00:57:57,820 --> 00:58:00,940 И то буилд а заправо саставити га на свом уређају. 1097 00:58:00,940 --> 00:58:04,710 Али у суштини процес био ово, креирајте сторибоард-- 1098 00:58:04,710 --> 00:58:08,080 односно не цреате-- али изаберите скице сценарија. 1099 00:58:08,080 --> 00:58:15,030 И заправо ве'лл-- ако не минд-- узећемо само пар секунди 1100 00:58:15,030 --> 00:58:18,390 да заправо вам показати како је то урађено. 1101 00:58:18,390 --> 00:58:22,430 1102 00:58:22,430 --> 00:58:27,820 >> Само тако да како ствари могу постигло је направљен још мало 1103 00:58:27,820 --> 00:58:28,360 очигледна. 1104 00:58:28,360 --> 00:58:30,651 Еинзелзиммер апликација, ја сам ће позвати овај семинар 1105 00:58:30,651 --> 00:58:35,330 четири представља ово Посебно број. 1106 00:58:35,330 --> 00:58:36,335 Сачувај то на радној површини. 1107 00:58:36,335 --> 00:58:39,890 1108 00:58:39,890 --> 00:58:42,110 У реду, идемо да кликнете на прозору за уређивање. 1109 00:58:42,110 --> 00:58:47,030 И шта ћу да урадим је пронаћи свој слику поглед, 1110 00:58:47,030 --> 00:58:50,940 превуците га на мом корисника интерфејс и центар је. 1111 00:58:50,940 --> 00:58:54,850 Сада само центрирање нажалост неће учинити пуно, 1112 00:58:54,850 --> 00:58:58,680 осим екран да је то тачно величине. 1113 00:58:58,680 --> 00:59:03,950 >> Тако можемо да се убедим да је кликом на ове двоструке кругу ствари, 1114 00:59:03,950 --> 00:59:08,290 рушење ове поп менија овде и мења 1115 00:59:08,290 --> 00:59:11,110 да прегледате, где смо заправо ћу добити прилику да прегледате како 1116 00:59:11,110 --> 00:59:13,530 ово ће стварно погледати на другим уређајима. 1117 00:59:13,530 --> 00:59:16,500 Као што видимо, ми не знамо ни види га на овом случају. 1118 00:59:16,500 --> 00:59:18,500 Зато ћу затворити ово за сада. 1119 00:59:18,500 --> 00:59:22,100 >> И ја ћу да изаберете ова икона доле у ​​врло 1120 00:59:22,100 --> 00:59:23,910 доњи део екрана. 1121 00:59:23,910 --> 00:59:26,584 Каже Ресолве Ауто Иссуес Лаиоут. 1122 00:59:26,584 --> 00:59:28,000 Извини, то је одсечен на дну. 1123 00:59:28,000 --> 00:59:36,360 Али ако кликнем на то, оно што сам гет је ово забавна их-- нестати. 1124 00:59:36,360 --> 00:59:39,740 1125 00:59:39,740 --> 00:59:51,220 Оно што се деси је то поп уп да ми омогућава да додате недостају ограничења. 1126 00:59:51,220 --> 00:59:53,780 И тиме њему ће онда некако се забрави 1127 00:59:53,780 --> 00:59:56,640 у центру део Екран као да би се могло очекивати. 1128 00:59:56,640 --> 01:00:00,520 >> Сада, како би се добили ово дугме на врх тога, морам да идем у Едитор. 1129 01:00:00,520 --> 01:00:05,010 Иди на уградили у и клик Навигација контролер. 1130 01:00:05,010 --> 01:00:08,900 Шта да ће учинити је да ће додати скроз друга компонента на њега, 1131 01:00:08,900 --> 01:00:11,310 али ће заправо повезати то вратим у своју оригиналну УИ. 1132 01:00:11,310 --> 01:00:14,450 А детаљи, опет, ми не радимо Стварно треба да брину о сада. 1133 01:00:14,450 --> 01:00:16,710 Али ја желим да имам палета на самом дну. 1134 01:00:16,710 --> 01:00:18,530 Зато ћу провјерити показује Тоолбар. 1135 01:00:18,530 --> 01:00:21,870 >> И то даје у мом мишљењу, која је сада негде другде, 1136 01:00:21,870 --> 01:00:23,900 Видимо да је то повезано овде. 1137 01:00:23,900 --> 01:00:28,710 Сада пружа тоолбар на дну мог УИ. 1138 01:00:28,710 --> 01:00:34,770 Дакле сада, уместо избора Слике поглед, ја могу да нађем етикету, 1139 01:00:34,770 --> 01:00:41,140 односно тоолбар-- хајде да видимо, где је то? 1140 01:00:41,140 --> 01:00:41,890 Како се зове? 1141 01:00:41,890 --> 01:00:49,760 Буттон-- ставка бар-- итем-- је-- бара дугме ставка. 1142 01:00:49,760 --> 01:00:54,590 Бућ да тамо и примењују пар флексибилних простора са обе стране 1143 01:00:54,590 --> 01:00:57,429 да стварно центар који. 1144 01:00:57,429 --> 01:00:58,970 Зато сам створио свој УИ, у основи. 1145 01:00:58,970 --> 01:01:01,428 И ја могу да му дати име по дупли клик на самом врху 1146 01:01:01,428 --> 01:01:04,880 овде и кажем веб галерију и тако даље. 1147 01:01:04,880 --> 01:01:08,100 Сада опет, то су елементи да постоје сами. 1148 01:01:08,100 --> 01:01:10,400 И ја имам за повезивање им то ми кода који 1149 01:01:10,400 --> 01:01:14,297 Ја могу да урадим по опет доводи до ове двоструке кружићу, 1150 01:01:14,297 --> 01:01:15,380 мења из превиев. 1151 01:01:15,380 --> 01:01:18,950 Која, узгред, сада можемо да видимо је лепо средини и да ће изгледати добро 1152 01:01:18,950 --> 01:01:23,720 на различитим уређаја. 1153 01:01:23,720 --> 01:01:27,280 >> Свитцх то аутоматски, који ће би се појавила ВиевЦонтроллер код. 1154 01:01:27,280 --> 01:01:29,030 И сада овај део је важно. 1155 01:01:29,030 --> 01:01:34,590 Да би сте се повезали ово два елемента, ваш број на УИ, 1156 01:01:34,590 --> 01:01:36,680 изаберете ставку која желите да се повежете. 1157 01:01:36,680 --> 01:01:39,570 Дакле, у овом случају, ми заправо желе да кодира 1158 01:01:39,570 --> 01:01:43,520 промените слику која је садржана У оквиру овог УИ слике погледом. 1159 01:01:43,520 --> 01:01:47,070 Дакле, ако ви контролишете кликнете од поглед слика и драг, 1160 01:01:47,070 --> 01:01:51,960 приметићете да добијеш мало бар, кад пусти све ово поп 1161 01:01:51,960 --> 01:01:53,550 се ће се догодити. 1162 01:01:53,550 --> 01:01:56,470 >> И пише да ћемо креирате везу. 1163 01:01:56,470 --> 01:01:59,300 И одавде желим да га дам име, нешто као галерији. 1164 01:01:59,300 --> 01:02:00,240 Хит Ентер. 1165 01:02:00,240 --> 01:02:03,040 И ово заиста пружа променљива зове галерија 1166 01:02:03,040 --> 01:02:08,600 да сам тада могу референце у мом коду да промените слику, на пример. 1167 01:02:08,600 --> 01:02:10,430 Па како да код заправо изгледају? 1168 01:02:10,430 --> 01:02:13,030 Па опет, ја не желим да проводе превише времена на томе. 1169 01:02:13,030 --> 01:02:15,430 И ја вам и да преузмите и погледај. 1170 01:02:15,430 --> 01:02:18,330 Али један од највише Важан аспект је код 1171 01:02:18,330 --> 01:02:20,980 да заправо нађе неку слику. 1172 01:02:20,980 --> 01:02:26,470 >> Дакле, у овом случају желим да у року од мојим фотографијама 1173 01:02:26,470 --> 01:02:28,520 арраи, која је садржана у мом разреду. 1174 01:02:28,520 --> 01:02:33,390 Желим дефинисати име и УРЛ која били обрађени из ове ЈСОН. 1175 01:02:33,390 --> 01:02:39,810 Заправо питати уређај да УРЛ адреса, да донесе УРЛ из ове, 1176 01:02:39,810 --> 01:02:44,060 а затим наћи податке из садржина тог УРЛ. 1177 01:02:44,060 --> 01:02:49,430 Тада претворити да су подаци у слику доношењем га у УИ слику. 1178 01:02:49,430 --> 01:02:52,880 Дакле опет, то су сви различити типови објеката, различите врсте класа. 1179 01:02:52,880 --> 01:02:58,410 >> И онда ја онда могу поставити мој галлери.имаге једнака тим подацима. 1180 01:02:58,410 --> 01:03:00,750 И то је нека врста меса од тога да је заправо онда 1181 01:03:00,750 --> 01:03:08,250 у могућности да промените промените податке од-- слика од једног до другог. 1182 01:03:08,250 --> 01:03:10,660 Дакле опет, надам се сада Много конструката 1183 01:03:10,660 --> 01:03:12,240 учиниће мало више смисла. 1184 01:03:12,240 --> 01:03:15,260 Обратите пажњу да постоји нека узвичник овде. 1185 01:03:15,260 --> 01:03:19,810 У узвичник су суштини односи на опциони. 1186 01:03:19,810 --> 01:03:22,657 >> Оно што ја говорим је у основи да без чак провере 1187 01:03:22,657 --> 01:03:24,490 да видим да ли има података унутар ове опционо, 1188 01:03:24,490 --> 01:03:27,140 Идем да само напред и претпоставити да постоји и одмотати га. 1189 01:03:27,140 --> 01:03:31,340 Запамтите да смо користили аналогију врста пакета за опциони 1190 01:03:31,340 --> 01:03:34,700 и морамо да размотати пакет и извуците податке напоље. 1191 01:03:34,700 --> 01:03:37,570 Знак узвика снаге које заправо догодити. 1192 01:03:37,570 --> 01:03:39,590 >> Али знам да је ово јер сигурно сам проверио 1193 01:03:39,590 --> 01:03:42,070 да видим да ли слика подаци једнак са нулом, ја сам у ствари проверим 1194 01:03:42,070 --> 01:03:45,420 да видимо да ли да опциони био, у ствари, није успео. 1195 01:03:45,420 --> 01:03:47,110 Ако је је, у ствари, нису већ. 1196 01:03:47,110 --> 01:03:52,450 И тако сам сигуран да кад дођем до ово тачка са сигурношћу могу размотати те податке. 1197 01:03:52,450 --> 01:03:55,710 Такође би сте је видели у облик знаком питања. 1198 01:03:55,710 --> 01:03:59,100 Дакле, ако смо спустите се где сам треба да стварно анализирам податке. 1199 01:03:59,100 --> 01:04:01,850 >> Зато не треба одложити до такве врсте дугих имена. 1200 01:04:01,850 --> 01:04:06,580 Можете наћи у Аппле програмер сајт много 1201 01:04:06,580 --> 01:04:09,620 референци на све предмети и сви процеси 1202 01:04:09,620 --> 01:04:11,170 да заправо би ово било могуће. 1203 01:04:11,170 --> 01:04:15,990 Али приметите да је ово у суштини функција где сам га проћи неке податке. 1204 01:04:15,990 --> 01:04:18,410 И ја се вратим неку врсту података. 1205 01:04:18,410 --> 01:04:24,190 И морам да користим ово као појам у претворити га у овом нсдицтионари? 1206 01:04:24,190 --> 01:04:26,490 Која је опет, опционо нсдицтионари. 1207 01:04:26,490 --> 01:04:31,070 Које сам тада треба да проверите да ли постоји. 1208 01:04:31,070 --> 01:04:37,130 >> Тако да могу да користим да ако дозволите успешни једнаки обрађени, 1209 01:04:37,130 --> 01:04:40,620 онда знам да то опциони заправо садржи неке податке. 1210 01:04:40,620 --> 01:04:43,840 Или оно што сам урадио је била да Само претпостављају да ако постоји 1211 01:04:43,840 --> 01:04:49,067 било грешака да је то у ствари сигурно. 1212 01:04:49,067 --> 01:04:51,400 У реду, желим да се захвалим ви сви што сте дошли. 1213 01:04:51,400 --> 01:04:53,540 Знам да је било много, али то је само сат 1214 01:04:53,540 --> 01:04:55,920 да разговарамо о неким прилично напредне ствари. 1215 01:04:55,920 --> 01:04:59,640 И тако надам се да ћеш добити Могуће да преузмете сав код 1216 01:04:59,640 --> 01:05:01,657 и да боље, више исцрпан поглед на њу. 1217 01:05:01,657 --> 01:05:04,240 Тако некако убедите себе од свега у ствари које се дешава. 1218 01:05:04,240 --> 01:05:06,800 И желим да вам се захвалим све, опет, дошли. 1219 01:05:06,800 --> 01:05:08,760 И срећно са коначним пројектима. 1220 01:05:08,760 --> 01:05:10,600 Пријатан дан. 1221 01:05:10,600 --> 01:05:11,467