1 00:00:00,000 --> 00:00:03,332 >> [MUSIC PLAYING] 2 00:00:03,332 --> 00:00:06,200 3 00:00:06,200 --> 00:00:09,590 >> DAN AMRMENDARIZ: Hər kəs, CS50 seminara salamlayıram, 4 00:00:09,590 --> 00:00:11,690 Swift ilə iOS App Development. 5 00:00:11,690 --> 00:00:15,690 Mən Dan Armendariz oldum və bir hoca edirəm burada Harvard informatika. 6 00:00:15,690 --> 00:00:21,510 >> Və növbəti saat olacaq qədər məhsullarının bir qasırğa tur 7 00:00:21,510 --> 00:00:25,160 bu mövzu haqqında biz uyğun bilər. 8 00:00:25,160 --> 00:00:29,170 Mən mənbə kodu bütün göndərmək olacaq Siz online Bu gün görəcəksiniz ki. 9 00:00:29,170 --> 00:00:31,990 Biz ola bilər həqiqətən hər şeyə getmək 10 00:00:31,990 --> 00:00:34,810 Mən deyiləm ki, edirəm ki, Bu saat göstərən. 11 00:00:34,810 --> 00:00:37,580 Amma ən azı inşallah vasitəsilə mənbə kodu şərh, 12 00:00:37,580 --> 00:00:40,830 Siz anlamaq üçün cəhd edə bilərsiniz nə məhz bu şeylər üçün baş 13 00:00:40,830 --> 00:00:42,950 biz olduqca almaq deyil ki. 14 00:00:42,950 --> 00:00:46,970 >> Ümumi, strukturu aşağıdakı kimi bugünkü müzakirəsi olacaq. 15 00:00:46,970 --> 00:00:52,820 Biz bəzi əsas bunu başlamaq lazımdır Swift dili ilə syntax, 16 00:00:52,820 --> 00:00:56,290 daha inkişaf etmiş bəzi gedən Swift dilinin sintaksis. 17 00:00:56,290 --> 00:00:59,560 Dil Çünki həqiqətən müasir və edir 18 00:00:59,560 --> 00:01:02,110 yüksək səviyyədə bir çox var xüsusiyyətləri, biz var şeyi 19 00:01:02,110 --> 00:01:06,600 , CS50 ərzində C görüldü və ya hətta bəzi digər dillərdə 20 00:01:06,600 --> 00:01:09,310 biz açılmış etdik ki, kimi PHP CS50 istifadə edərək, 21 00:01:09,310 --> 00:01:12,670 mən üçün cəhd etmək lazımdır gedirəm bəzi mövzular təqdim ki, 22 00:01:12,670 --> 00:01:18,580 yüksək səviyyədə dillərə bağlı Siz CS50 dərinliyi görmək deyil ki, 23 00:01:18,580 --> 00:01:21,380 amma sonra görəcəksiniz informatika dərsləri. 24 00:01:21,380 --> 00:01:25,290 Belə ki, bir olacaq sıx saat dolu. 25 00:01:25,290 --> 00:01:28,897 Və mənə bildirin çekinmeyin Əgər hər hansı bir sualınız varsa, bilirik. 26 00:01:28,897 --> 00:01:30,730 Əgər istəyirsinizsə Belə ki, inkişaf etməkdə 27 00:01:30,730 --> 00:01:34,442 Swift, və ya, həqiqətən, Hər hansı bir iOS app inkişaf, 28 00:01:34,442 --> 00:01:35,900 tələblərinin bir neçə var. 29 00:01:35,900 --> 00:01:39,940 İlk növbədə, siz istifadə etmək lazımdır Mac, nümunələri çalışan 30 00:01:39,940 --> 00:01:43,880 biz bu gün istifadə edir ki, OS nisbətən yeni versiyası 31 00:01:43,880 --> 00:01:46,580 Bu halda X. mən X 10.5 çalışan alıram. 32 00:01:46,580 --> 00:01:48,600 Əgər siz 10.11 çalışan bilər. 33 00:01:48,600 --> 00:01:52,430 Amma hər şey olacaq ki, sonra Xcode 7 və cəlb görürük, 34 00:01:52,430 --> 00:01:56,271 olan son versiyası var Swift 2.0 Swift edir. 35 00:01:56,271 --> 00:01:58,270 Bu, həqiqətən, olduqca deyil əhəmiyyətli fərq. 36 00:01:58,270 --> 00:02:01,510 Sintaksis bir çox var olduqca əhəmiyyətli dərəcədə dəyişib 37 00:02:01,510 --> 00:02:05,890 Swift 1.0 bəzi hallarda, Ötən il azad edilib, 38 00:02:05,890 --> 00:02:08,514 Swift 2.0, olan yalnız bu payız çıxdı. 39 00:02:08,514 --> 00:02:09,889 Beləliklə, biz Swift 2.0 göstərmək olacaq. 40 00:02:09,889 --> 00:02:13,020 Çox şey ki, Siz online axtarış 41 00:02:13,020 --> 00:02:18,040 əlavə almaq üçün çalışdığınız zaman şeyi bir sıra haqqında məlumat 42 00:02:18,040 --> 00:02:20,710 Siz açıq-aydın edə bilərsiniz Swift 2 üçün axtarış 43 00:02:20,710 --> 00:02:24,950 deyil, yalnız düz köhnə Swift çox etmək Siz syntax doğru almaq əmin olun. 44 00:02:24,950 --> 00:02:26,920 >> Əslində, bu, ümumiyyətlə doğrudur. 45 00:02:26,920 --> 00:02:31,210 Inkişaf sürətli məbləği var Swift dilində baş 46 00:02:31,210 --> 00:02:35,110 Apple azad beri, mən hesab edirəm nə, bir il ərzində bir az olmuşdur 47 00:02:35,110 --> 00:02:36,370 indi. 48 00:02:36,370 --> 00:02:39,080 Və hər şeyi dəyişdi dramatik o zaman. 49 00:02:39,080 --> 00:02:42,160 Və belə incidir etməyin əgər, siz ətrafında axtarır etdiyiniz zaman 50 00:02:42,160 --> 00:02:48,310 necə yerinə yetirmək üçün Swift və ya mövzular üçün bir misal kodu istifadə edərək, bir şey 51 00:02:48,310 --> 00:02:51,210 və ya bir şey deyil ki, həqiqətən Swift 2.0 üzərində işləyirik. 52 00:02:51,210 --> 00:02:53,790 Siz axtarır etmək xüsusilə versiyası üçün 53 00:02:53,790 --> 00:02:58,690 müxtəlif təsiri minimuma endirmək üçün cəhd versiyasını və hər şeyi bu cür. 54 00:02:58,690 --> 00:03:02,470 >> Mən yalnız bir şeyi qeyd etmək cəhd edəcəyik eski versiyasını fərqli olduqlarını bildirib. 55 00:03:02,470 --> 00:03:03,970 Amma bu üçün izləmək üçün bir şey var. 56 00:03:03,970 --> 00:03:06,770 Bu yəqin ki, olacaq ən böyük baş ağrısı bir 57 00:03:06,770 --> 00:03:11,010 Siz Swift ilə olacaq tapmaq olunur ki, , hətta yalnız köhnə nümunə kodu 58 00:03:11,010 --> 00:03:14,050 Bir neçə ay, istifadə etməyə çalışırıq Sizin daha müasir layihə. 59 00:03:14,050 --> 00:03:15,430 Və sadəcə iş deyil. 60 00:03:15,430 --> 00:03:18,530 Siz compiler səhv əldə etdiyiniz, syntax səhvlər, crazy məhsullarının bütün növ. 61 00:03:18,530 --> 00:03:21,580 Belə ki, yalnız səbr ki, inşallah olacaq 62 00:03:21,580 --> 00:03:24,200 olduqca gözəl təcrübə var Swift Ümumiyyətlə ilə. 63 00:03:24,200 --> 00:03:28,430 >> İndi join-- həqiqətən bilərsiniz və mən ümid edirəm biz, həqiqətən, hələ bu year-- var 64 00:03:28,430 --> 00:03:30,910 CS 50 Apple app inkişaf komanda olan 65 00:03:30,910 --> 00:03:34,680 Əgər hər hansı bir apps yüklemek üçün imkan verir siz iOS cihazlar yaradır. 66 00:03:34,680 --> 00:03:39,190 Belə ki, bu URL əgər nəzər Siz bunu maraqlıyıq. 67 00:03:39,190 --> 00:03:41,450 >> Belə ki, yalnız bir neçə Swift özü haqqında hər şeyi. 68 00:03:41,450 --> 00:03:43,580 Bu tərtib dilidir. 69 00:03:43,580 --> 00:03:45,870 Amma bəzi görəcəksiniz Biz istifadə xüsusiyyətləri 70 00:03:45,870 --> 00:03:50,650 Bu bir az da istifadə imkan verir bir yol, eləcə də şərh kimi. 71 00:03:50,650 --> 00:03:56,350 >> Sintaksis bir çox borc C. Bu əsasında və C. yazılı 72 00:03:56,350 --> 00:04:00,400 Və belə ki, biz olduğunu görəcəksiniz takeaways bir çox var 73 00:04:00,400 --> 00:04:04,450 Mövcud bilik C biz Swift üçün port bilər ki. 74 00:04:04,450 --> 00:04:07,290 >> Lakin şeyi var ki, C. çox fərqli etmək 75 00:04:07,290 --> 00:04:08,860 Bu, çox güclü çap olunur. 76 00:04:08,860 --> 00:04:10,380 Avtomatik yaddaş idarə var. 77 00:04:10,380 --> 00:04:13,170 Sizə fikrində deyilik malloc və ya pulsuz yerdə istifadə edin. 78 00:04:13,170 --> 00:04:15,110 Bu ümumiliyi üçün nəzərdə tutulmuşdur. 79 00:04:15,110 --> 00:04:19,480 Belə ki, başqa sözlə, siz onu istifadə edə bilərsiniz Apple Watch kontekstlərdə bütün növ, 80 00:04:19,480 --> 00:04:26,290 iPhone üçün bütün yol OS X, və qədər hətta bəzi server, hətta bəzi scripting. 81 00:04:26,290 --> 00:04:28,400 Amma biz ki, görürsünüz scripting dəstək 82 00:04:28,400 --> 00:04:31,360 Biz hələ çox var kimi digər dillərdə var. 83 00:04:31,360 --> 00:04:34,930 Belə ki, çox güman ki, istifadə olacaq Bu xüsusi inkişafı üçün 84 00:04:34,930 --> 00:04:37,060 Mac və ya iPhone. 85 00:04:37,060 --> 00:04:40,150 >> Və bu müasir xüsusiyyətləri bir çox var. 86 00:04:40,150 --> 00:04:43,380 Və bu çox şey stuff var ki, biz, bu gün üçün cəhd olacaq 87 00:04:43,380 --> 00:04:47,590 həm də mövzu səmimi ki, biz bütün kurslar sərf edə bilər. 88 00:04:47,590 --> 00:04:50,140 Əslində, CS 51, təklif növbəti dövr, 89 00:04:50,140 --> 00:04:53,990 bu mövzular üzrə bir çox diqqət ki, aşağıda təsvir olunur. 90 00:04:53,990 --> 00:04:56,781 Belə ki, bütün semestr sərf edə bilər bu şeyi dərk. 91 00:04:56,781 --> 00:04:58,530 Amma biz cəhd olacaq onların vasitəsilə almaq üçün 92 00:04:58,530 --> 00:05:00,800 ən azı kifayət qədər ki, siz nə başa düşmək olar 93 00:05:00,800 --> 00:05:03,700 siz baxmaq zaman gedir bir Swift proqramı 94 00:05:03,700 --> 00:05:07,310 və yol hack edə son layihə üçün vasitəsilə. 95 00:05:07,310 --> 00:05:10,780 >> Ən yaxşı yollarından biridir İndi ki, siz bu barədə əlavə məlumat əldə 96 00:05:10,780 --> 00:05:14,700 yalnız Apple vasitəsilə səmimi deyil Swift üçün sənədləri təqdim. 97 00:05:14,700 --> 00:05:16,930 API bir çox var mövcuddur ki. 98 00:05:16,930 --> 00:05:21,170 Bu sizin üçün yaxşı bir ev baza var xüsusi şey üçün baxmaq ki, 99 00:05:21,170 --> 00:05:23,020 IOS cəlb API etmək istəyirəm. 100 00:05:23,020 --> 00:05:26,350 Siz kamera istifadə etmək istəyirsinizsə Məsələn, siz burada axtarır başlaya bilərsiniz 101 00:05:26,350 --> 00:05:32,540 və həmçinin Google və Stack istifadə Siz zamanki kimi Overflow. 102 00:05:32,540 --> 00:05:36,670 >> Bu hər hansı bir sual biz doğru tullanmaq əvvəl? 103 00:05:36,670 --> 00:05:37,880 Oldu. 104 00:05:37,880 --> 00:05:38,700 Üzrə hərəkət edək. 105 00:05:38,700 --> 00:05:42,620 >> Belə ki, ilk, mən bir Məsələn faylları sayı. 106 00:05:42,620 --> 00:05:46,040 Mən addım cəhd gedirəm nisbətən tez onların vasitəsilə. 107 00:05:46,040 --> 00:05:49,190 Bu Swift üçün Hello World fayl. 108 00:05:49,190 --> 00:05:51,050 Bu, çox sadə. 109 00:05:51,050 --> 00:05:54,360 Yol daha şərhlər var faktiki code orada daha var. 110 00:05:54,360 --> 00:05:57,100 Faktiki kodu edir bildirək line 14-də çox aşağı. 111 00:05:57,100 --> 00:05:57,980 Bu çap deyir. 112 00:05:57,980 --> 00:05:59,820 Və sonra bir funksiyası zəng var. 113 00:05:59,820 --> 00:06:03,010 Biz bir daxil keçən edirik string Hello CS50 çağırıb. 114 00:06:03,010 --> 00:06:04,750 Heç bir semicolons var ki, görürsünüz. 115 00:06:04,750 --> 00:06:07,010 Heç bir int əsas var ki, görürsünüz. 116 00:06:07,010 --> 00:06:10,392 Heç biri var biz C. idi cruft 117 00:06:10,392 --> 00:06:15,020 Biz bu yolla Swift istifadə edərkən, yalnız bir mətn faylı yazıldığı 118 00:06:15,020 --> 00:06:18,340 və sonra mənim kompüter saxlanan Mən onu tərtib və çalıştırabilirsiniz. 119 00:06:18,340 --> 00:06:20,920 >> Mən burada Qeyd edək ki, CS50 IDE istifadə. 120 00:06:20,920 --> 00:06:24,460 Bu edirəm ki, nəzərdə tutur çalışan və mən OS X edirəm ki, 121 00:06:24,460 --> 00:06:27,870 və mən Xcode artıq quraşdırılıb ki, bu üçün bu maşın 122 00:06:27,870 --> 00:06:29,080 həqiqətən funksiyası. 123 00:06:29,080 --> 00:06:33,349 Amma bu yalnız bir normal mətn faylı ki, biz sonra tərtib və redaktə edə bilərsiniz. 124 00:06:33,349 --> 00:06:34,890 Belə ki, bu, həqiqətən, necə işlədiyini görmək edək. 125 00:06:34,890 --> 00:06:37,430 Mən onu tərtib istəyirsinizsə? 126 00:06:37,430 --> 00:06:40,450 swiftc 1.swift. 127 00:06:40,450 --> 00:06:42,960 Bir an və ya iki sonra, biz indi olduğunu görəcəksiniz 128 00:06:42,960 --> 00:06:45,360 1 adlı bir fayl bu tərtib. 129 00:06:45,360 --> 00:06:51,090 İndi biz CS50 çap, deyil, bizim Hello World tətbiqi. 130 00:06:51,090 --> 00:06:54,690 >> Kimi başqa bir şey edək yaxşı ki, default deyil 131 00:06:54,690 --> 00:07:00,090 biz daxil yox idi / n bir yeni xətt çap. 132 00:07:00,090 --> 00:07:05,315 Mənim cari olaraq, çap funksiyası ilə Swift sizin üçün yeni bir xətt çap edəcək. 133 00:07:05,315 --> 00:07:09,284 Siz isteğe əlavə keçə bilər parametri bunu deyil demək. 134 00:07:09,284 --> 00:07:10,950 Amma ki, daha ətraflı məlumat üçün Google. 135 00:07:10,950 --> 00:07:13,450 Mənim cari olaraq, çap xətt edəcəyik. 136 00:07:13,450 --> 00:07:16,420 >> Bütün hüquqlar, belə ki, hərəkət edək sonra bəzi digər şeylər. 137 00:07:16,420 --> 00:07:18,620 Belə ki, necə biz, həqiqətən, dəyişənlərin müəyyən edə bilərsiniz? 138 00:07:18,620 --> 00:07:21,960 Biz ki, istifadə var edə bilərsiniz iki üsullardan biri. 139 00:07:21,960 --> 00:07:26,122 Mən istəyirəm ki, bir demək ilk bu let müəyyən edir. 140 00:07:26,122 --> 00:07:27,830 Bu vacibdir səmərəli, çünki 141 00:07:27,830 --> 00:07:30,240 nə edirik daimi müəyyən edir. 142 00:07:30,240 --> 00:07:34,010 Biz dəyişən yaratmaq üçün gedir, daha doğrusu daimi adlı adı, 143 00:07:34,010 --> 00:07:38,200 bəzi fel ona təmin Bu halda, simli Dan. 144 00:07:38,200 --> 00:07:40,630 Amma bu etsin istifadə edərək, söz, biz söyləyərək 145 00:07:40,630 --> 00:07:43,860 Bu dəyişən ki, və ya yenidən adlı constant-- 146 00:07:43,860 --> 00:07:46,220 adı heç vaxt dəyişdirilə gedir. 147 00:07:46,220 --> 00:07:50,120 Bu ərzində dəyişməz olacaq Bu proqramın müddəti 148 00:07:50,120 --> 00:07:53,100 və ya ərzində kontekstində müddəti 149 00:07:53,100 --> 00:07:55,390 ki, dəyişən mövcuddur. 150 00:07:55,390 --> 00:08:00,096 >> Bu zaman ki, həqiqətən vacibdir Siz bəzi məlumatlar var 151 00:08:00,096 --> 00:08:02,970 proqram dəyişdirmək gedir, və nümunələri bir sıra görəcəksiniz 152 00:08:02,970 --> 00:08:06,790 biz istifadə etmək istədiyiniz zaman haqqında digər sintaksis qarşı qoy, 153 00:08:06,790 --> 00:08:11,040 imkan istifadə vacibdir Mümkün bu bildirir, çünki 154 00:08:11,040 --> 00:08:13,740 bu dil dəyişdirilə niyyətində deyil, 155 00:08:13,740 --> 00:08:16,590 və bu, həqiqətən edə bilərsiniz optimallaşdırılması bir çox 156 00:08:16,590 --> 00:08:19,560 sürəti artırmaq üçün və Proqram təhlükəsizlik. 157 00:08:19,560 --> 00:08:24,480 Və təhlükəsizlik, mən imkan demək crazy səhvlər ilə crash 158 00:08:24,480 --> 00:08:27,910 biz ola bilər ki, C. görməyə vərdiş 159 00:08:27,910 --> 00:08:32,460 >> Sonra biz string interpolation istifadə edə bilərsiniz bir string ərzində bu içine. 160 00:08:32,460 --> 00:08:35,200 Beləliklə, biz bu edə bilərsiniz çap line, salam çap 161 00:08:35,200 --> 00:08:38,950 və sonra backslash açıq parens istifadə edərək, və sonra mənim dəyişən adı, 162 00:08:38,950 --> 00:08:41,809 Bu halda daimi olan, parantez bağlayın. 163 00:08:41,809 --> 00:08:46,400 Mən mahiyyətcə sonra qoyulması alıram bu dəyişən çağırıb adı məzmunu 164 00:08:46,400 --> 00:08:50,240 simli daxilində və sonra orada nəticə çap. 165 00:08:50,240 --> 00:08:54,070 >> Bu şəkilə olan başqa bir dəyişiklik var Mən çox üst, var, 166 00:08:54,070 --> 00:08:57,340 bir shebang line qoymaq əsasən yalnız müəyyən 167 00:08:57,340 --> 00:09:00,180 Mən istifadə etmək istəyirəm ki, Swift tərcüməçi olan 168 00:09:00,180 --> 00:09:04,190 Mən artıq o deməkdir ki, bu proqram tərtib. 169 00:09:04,190 --> 00:09:06,567 Mən yalnız öz script kimi çalıştırabilirsiniz. 170 00:09:06,567 --> 00:09:09,400 Amma bu arxasında, bu halda, edir səhnələri tərtib və sonra olunur 171 00:09:09,400 --> 00:09:10,030 run olan. 172 00:09:10,030 --> 00:09:13,540 Bu, bizim üçün yalnız görünməz var. 173 00:09:13,540 --> 00:09:15,880 >> Bütün hüquqlar, belə ki, hərəkət edək. 174 00:09:15,880 --> 00:09:19,650 Belə ki, fırıldaqçılıq bir az var ki, əvvəl baş verib. 175 00:09:19,650 --> 00:09:23,230 Mən sizə ki, mən göstərdi sabit müəyyən edə bilər. 176 00:09:23,230 --> 00:09:25,490 Mən bunu bəzi məlumatlar təmin edə bilər. 177 00:09:25,490 --> 00:09:29,240 Amma bu halda, mən deyil ki, qeyd həqiqətən məlumatların növü daxil 178 00:09:29,240 --> 00:09:29,820 Bu edir. 179 00:09:29,820 --> 00:09:32,780 Və, çünki compiler, Swift bilərsiniz 180 00:09:32,780 --> 00:09:36,910 yalnız based data növü nəticə çıxarmaq Mən onu qoymaq məlumatlar. 181 00:09:36,910 --> 00:09:41,760 Bu bu qiymətləndirən bilir ki, çünki dəyişən burada, bu veri sağ 182 00:09:41,760 --> 00:09:43,370 Burada, bu simli olduğunu bilir. 183 00:09:43,370 --> 00:09:48,690 Və bu daimi adı səbəbdən eləcə də bir simli olacaq. 184 00:09:48,690 --> 00:09:52,730 >> Amma biz də açıq ola bilər növü haqqında 185 00:09:52,730 --> 00:09:55,790 biz istifadə edir sabitləri və ya dəyişənlər 186 00:09:55,790 --> 00:10:01,590 Bu sintaksis istifadə edərək Əvəzində adı colon String bərabərdir imkan 187 00:10:01,590 --> 00:10:05,530 Bu halda biz istəyirik deməkdir Dan, daimi adlı ad müəyyən olacaq. 188 00:10:05,530 --> 00:10:07,150 Bu növü simli olacaq. 189 00:10:07,150 --> 00:10:10,550 Və dəyəri Dan olacaq. 190 00:10:10,550 --> 00:10:12,550 İndi digər yolu biz dəyişənlər yarada 191 00:10:12,550 --> 00:10:15,549 bu mutable dəyişənlər, olan biz ki, əslində, gedir deməkdir 192 00:10:15,549 --> 00:10:19,670 zaman onların məzmunu dəyişmək kontekstində müddəti 193 00:10:19,670 --> 00:10:23,890 ki, dəyişən biz müəyyən deyil ki, var söz istifadə əvəzinə bildirin. 194 00:10:23,890 --> 00:10:27,400 Ancaq yenə də, ismarıcları, halda bilirsiniz ki, data manipulyasiya etmək lazımdır ki, 195 00:10:27,400 --> 00:10:30,510 üçün imkan istifadə etməyə cəhd performans təkmilləşdirilməsi. 196 00:10:30,510 --> 00:10:33,740 >> Bu halda, mən sonra bilər məlumatların növü daxil 197 00:10:33,740 --> 00:10:37,650 biz daxilində olmasını gözlədiklərini etiket adlanan bu yeni dəyişən. 198 00:10:37,650 --> 00:10:38,800 Bu simli olacaq. 199 00:10:38,800 --> 00:10:43,030 Və biz sonra concatenate olacaq iki strings birlikdə simli hello, 200 00:10:43,030 --> 00:10:48,070 və simli təmsil dəyişən, daha doğrusu, daimi adı. 201 00:10:48,070 --> 00:10:50,660 >> Belə ki, bu, çünki gözəl qədər ki, biz kimi PHP 202 00:10:50,660 --> 00:10:52,250 çox asan string concatenation var. 203 00:10:52,250 --> 00:10:56,350 Biz avtomatik olaraq yoxdur yaddaş idarə hər hansı istifadə 204 00:10:56,350 --> 00:11:00,580 ölçüsünü artırmaq və bunu orada funny şeyi hər cür. 205 00:11:00,580 --> 00:11:05,040 Biz, həqiqətən, gözləmək olardı kimi işləyir. 206 00:11:05,040 --> 00:11:09,370 >> Bütün hüquqlar, bu barədə hər hansı bir sualınız? 207 00:11:09,370 --> 00:11:12,520 >> İndi digər səbəbi biz imkanı var lazımdır 208 00:11:12,520 --> 00:11:15,490 nə müəyyən etmək üçün data dəyişənlərin növü var 209 00:11:15,490 --> 00:11:18,170 bəzən biz deyil, çünki dəyişənlər başlamaq istəyirəm 210 00:11:18,170 --> 00:11:21,080 bəzi məlumatları müəyyən point. 211 00:11:21,080 --> 00:11:23,500 Bu halda, belə ki, deyək Mən giren başlamaq istəyirəm ki, 212 00:11:23,500 --> 00:11:25,040 bir sinif kitab bəzi notları. 213 00:11:25,040 --> 00:11:27,530 Yaxşı mən bilirəm ki, hər kəs Mən olmaq istəyirəm dəyişənlər 214 00:11:27,530 --> 00:11:30,280 bir mutable grade olacaq. 215 00:11:30,280 --> 00:11:33,010 Və biz də bilirik ki, biz Bu bir tam olmaq istəyirəm. 216 00:11:33,010 --> 00:11:36,030 Amma bəlkə biz hələ yoxdur ki, sinif var. 217 00:11:36,030 --> 00:11:39,570 >> Swift, siz var məlumatların növü müəyyən 218 00:11:39,570 --> 00:11:44,000 ki, bir ilə bağlıdır dəyişən və ya sabit edək 219 00:11:44,000 --> 00:11:47,840 Siz, həqiqətən, bilərsiniz əvvəl ki, dəyişən istifadə edin. 220 00:11:47,840 --> 00:11:51,170 Güclü tipli, çünki, Bir növü birləşmək var 221 00:11:51,170 --> 00:11:52,890 bu dəyişənlərin. 222 00:11:52,890 --> 00:11:56,120 >> Mən düzgün deyil varsa, bu halda belə bəzi dəyəri ilə ilk başlatılmış, 223 00:11:56,120 --> 00:12:00,520 sonra Swift demək lazımdır nə Mən data type olmasını gözləyirik. 224 00:12:00,520 --> 00:12:02,650 Və qalmaq olacaq eyni data type 225 00:12:02,650 --> 00:12:05,780 Bu proqram tarix boyunca. 226 00:12:05,780 --> 00:12:10,050 >> İndi qısa müddətdə aldanmaq bilər Bu sinif dəyişən yaratmışdır 227 00:12:10,050 --> 00:12:13,530 və bir təqdim I, əgər indi 100 tam, 228 00:12:13,530 --> 00:12:18,540 concatenate üçün cəhd etmək istəyirəm ki, tam bir string, 229 00:12:18,540 --> 00:12:21,610 hələ istifadə etmək aldanmaq bilər ki, simli concatenation operator 230 00:12:21,610 --> 00:12:24,500 kimi biz yalnız bir neçə xətləri əvvəl idi. 231 00:12:24,500 --> 00:12:26,460 Amma təəssüf ki, Bu, həqiqətən deyil 232 00:12:26,460 --> 00:12:29,270 Siz, çünki iş mahiyyətcə həyata 233 00:12:29,270 --> 00:12:32,380 iki müxtəlif növ bir əməliyyat. 234 00:12:32,380 --> 00:12:36,856 >> İndi bu-birindən çox fərqli həqiqətən PHP kimi dillərdə 235 00:12:36,856 --> 00:12:38,480 növ öz növ ilə loosey goosey. 236 00:12:38,480 --> 00:12:40,030 Onlar yalnız, Bəli, istəyirəm edirik nə olursa olsun, mən qayğı yoxdur. 237 00:12:40,030 --> 00:12:42,710 Yalnız mənə bir növü vermək və bəlkə mən doğru şey edəcəyik. 238 00:12:42,710 --> 00:12:46,060 >> Bu halda, Swift növləri haqqında çox ciddi 239 00:12:46,060 --> 00:12:47,350 Siz ilə məşğul olan. 240 00:12:47,350 --> 00:12:50,700 Bu toplama operator və ya concatenation operator 241 00:12:50,700 --> 00:12:54,400 mahiyyətcə bir neçə var müxtəlif mümkün variantları. 242 00:12:54,400 --> 00:12:56,970 Siz toplama edə bilərsiniz integers, və ya sizinlə 243 00:12:56,970 --> 00:13:00,870 string concatenation edə bilər, və bəlkə bəzi başqa şeylər həmçinin. 244 00:13:00,870 --> 00:13:05,550 Amma ki, operator tanımır əgər bu hər tərəfdən nə, 245 00:13:05,550 --> 00:13:10,452 və ya həmin birləşməsi olduqca iki növ, bu gözləyirik nə deyil, 246 00:13:10,452 --> 00:13:11,910 sonra bir çatışmazlığı səbəb olacaq. 247 00:13:11,910 --> 00:13:16,690 >> Bu halda, belə ki, bu nə deməkdir bir simli plus tam var? 248 00:13:16,690 --> 00:13:18,880 Yaxşı kontekstində Bu, biz yəqin ki, istəyirəm 249 00:13:18,880 --> 00:13:21,990 simli concatenation əməliyyat etmək. 250 00:13:21,990 --> 00:13:26,420 Amma əlbəttə kompüter kontekstində ki, sort yoxdur. 251 00:13:26,420 --> 00:13:29,950 Və belə ki, biz təmin etmək lazımdır əlavə məlumat 252 00:13:29,950 --> 00:13:32,390 bu nə bildirin Biz nə istəyirik ki. 253 00:13:32,390 --> 00:13:36,860 >> Başqa sözlə, əslində belə Swift güclü tipli ki, 254 00:13:36,860 --> 00:13:39,520 Bir nə var deməkdir əlavə iş az 255 00:13:39,520 --> 00:13:42,100 bu fəaliyyət üçün Siz istədiyiniz yol. 256 00:13:42,100 --> 00:13:43,710 Amma nəticədə, bu daha təhlükəsiz edir. 257 00:13:43,710 --> 00:13:46,290 Və bir dəfə almaq bu növ nəzərə, 258 00:13:46,290 --> 00:13:49,300 hər şeyi yalnız səmimi başlamaq olduqca yaxşı iş. 259 00:13:49,300 --> 00:13:52,520 >> Bu halda, biz sonra elə string concatenation çıxış 260 00:13:52,520 --> 00:13:56,040 aydın tökmə ilə simli tam 261 00:13:56,040 --> 00:13:58,490 Bu onu qucaqlayaraq kapital S String funksiyası, 262 00:13:58,490 --> 00:14:03,510 və sonra simli concatenation istifadə operator, bizim etiket dəyişən dəyişdirmək üçün 263 00:14:03,510 --> 00:14:06,280 və sonra onu çap. 264 00:14:06,280 --> 00:14:08,420 >> İndiyə qədər belə yaxşı? 265 00:14:08,420 --> 00:14:12,020 Bütün hüquqlar, üzrə hərəkət edək. 266 00:14:12,020 --> 00:14:16,300 >> İndi məlumatların bir sıra var biz Swift istifadə edə bilərsiniz növləri. 267 00:14:16,300 --> 00:14:21,620 Siz vərdiş halına kimi, bir mutable array yarada bilərsiniz. 268 00:14:21,620 --> 00:14:26,140 Və array yalnız bilərsiniz bir növü var. 269 00:14:26,140 --> 00:14:30,360 >> Belə ki, bu halda, biz yaratmaq olacaq integers bir mutable seriallarda hansı 270 00:14:30,360 --> 00:14:34,800 biz notları zəng və biz mümkün olacaq Bu kvadrat mötərizə ki, saxlamaq üçün 271 00:14:34,800 --> 00:14:38,650 sizin kimi format vərdiş artıb etdik Başqa dillərdə müxtəlif üçün. 272 00:14:38,650 --> 00:14:41,150 Amma biz istəyirik ki, burada qeyd şeyi bir neçə müəyyən. 273 00:14:41,150 --> 00:14:45,350 notları bir mutable dəyişən deyil biz let söz istifadə. 274 00:14:45,350 --> 00:14:49,620 O deməkdir ki, belə ki, biz bundan sonra dəyişə bilərsiniz Bu serialın məzmunu. 275 00:14:49,620 --> 00:14:53,420 Bu tipli Array Int edir və biz deyə bilərəm ki, 276 00:14:53,420 --> 00:14:56,260 Burada bu kvadrat mötərizədə əsaslanır. 277 00:14:56,260 --> 00:14:58,930 >> Gözəl şeylər indi bir Bu barədə biz deyil 278 00:14:58,930 --> 00:15:02,310 bir çox etmək imkanı var Əlavə informasiya 279 00:15:02,310 --> 00:15:07,110 array, yalnız istifadə bəzi sadə dot notation. 280 00:15:07,110 --> 00:15:10,500 Belə ki, məsələn, grades.count bizə təmin 281 00:15:10,500 --> 00:15:14,820 ki, mövcud maddələr sayı biz sonra olduqca əldə edə bilərsiniz array, 282 00:15:14,820 --> 00:15:19,090 asanlıqla sadəcə dot notation istifadə edərək. 283 00:15:19,090 --> 00:15:21,830 >> Əgər əlavə əlavə etmək istəyirsinizsə Bu array maddələr, 284 00:15:21,830 --> 00:15:27,220 Siz PHP stil edə bilməz burada yalnız açıq-aşkar müəyyən 285 00:15:27,220 --> 00:15:30,910 bir index da, bəzi dəyəri daxil etmək istədiyiniz ki. 286 00:15:30,910 --> 00:15:37,210 Əksinə, əlavə istifadə array növü metodu 287 00:15:37,210 --> 00:15:40,920 bu siyahıya, həmin maddə 95 əlavə. 288 00:15:40,920 --> 00:15:45,990 >> Belə ki, indi bu array aşağıdakı var 100, 0, 90, 85 contents--. 289 00:15:45,990 --> 00:15:49,270 İndi biz əlavə etdik Ki, 95 həmçinin. 290 00:15:49,270 --> 00:15:51,830 >> Digər yolları var biz hər şeyi əlavə edə bilərsiniz. 291 00:15:51,830 --> 00:15:55,030 Siz, həqiqətən, istifadə edə bilərsiniz bir toplama edir operator, 292 00:15:55,030 --> 00:15:59,200 olan kimi təfsir olunacaq bir sıra əlavə əməliyyat. 293 00:15:59,200 --> 00:16:04,680 Və sonra başqa əlavə edə bilərsiniz Onun məzmunu 70 və 80 olan array, 294 00:16:04,680 --> 00:16:05,560 ki array. 295 00:16:05,560 --> 00:16:08,250 Belə ki, indi biz Bu dəyişən məzmunu 296 00:16:08,250 --> 00:16:17,220 100, 0, 90, 85, 95, 70, və 80 grades--. 297 00:16:17,220 --> 00:16:21,850 Bu yalnız bir gözəl az sintaktik deyil Swift bizə təmin şəkər. 298 00:16:21,850 --> 00:16:23,850 >> Biz yekun istəyirsinizsə Belə ki, notları biz bəlkə istəyirik 299 00:16:23,850 --> 00:16:27,340 təkrarlamaq istəyirəm olacaq bu loop hər maddə üzərində. 300 00:16:27,340 --> 00:16:32,150 Və biz Swift-ci ildə, anlayışı, var bir loop üçün gözləmək kimi. 301 00:16:32,150 --> 00:16:35,350 Amma biz göstərir yolu bir sıra az fərqli. 302 00:16:35,350 --> 00:16:37,790 Bu halda, Belə ki, hər şeyi yekunlaşdırmaq alacağıq 303 00:16:37,790 --> 00:16:40,650 müvəqqəti yaratmaq niyyətindədir bizim üçün dəyişən deyilən məbləğ 304 00:16:40,650 --> 00:16:42,580 bu count saxlamaq. 305 00:16:42,580 --> 00:16:44,430 >> Və bizim üçün xəbərdarlıq burada loop tikinti. 306 00:16:44,430 --> 00:16:46,820 0-ci ildə indeksi üçün .. 00:16:51,480 308 00:16:51,480 --> 00:16:57,390 Belə ki, bu tikinti, 0 .. 00:17:01,860 biz yaratmaq niyyətindəyik olduğunu söyləyən 0 qədər integers bir sıra 310 00:17:01,860 --> 00:17:05,750 lakin grades.count istisna olmaqla. 311 00:17:05,750 --> 00:17:09,577 Belə ki, bu olacaq 0, 1, 2, 3, 4, 5, up lakin bir çox biri qədər 312 00:17:09,577 --> 00:17:10,410 grades.count əvvəl. 313 00:17:10,410 --> 00:17:14,160 >> Belə ki, bu necə fərqli biz loops üçün adətən istifadə edirəm 314 00:17:14,160 --> 00:17:18,569 Bəzi index harada dəyişən, ilk 0 bərabər müəyyən 315 00:17:18,569 --> 00:17:25,480 və sonra bəzi qədər inteqrasiya maddələr sayı az dəyəri 316 00:17:25,480 --> 00:17:27,140 ki array. 317 00:17:27,140 --> 00:17:29,820 >> Belə ki, bir dəyişiklik var Bu, həqiqətən, 318 00:17:29,820 --> 00:17:35,010 olan bizi çox asanlıqla imkan verir aralıklarının müxtəlif növ seçin. 319 00:17:35,010 --> 00:17:40,570 Bu sıra dəyişdirmək əgər üç nöqtə, 0 ... grade.count, 320 00:17:40,570 --> 00:17:45,120 bu sıra təmsil 0 daxil grades.count üçün, 321 00:17:45,120 --> 00:17:49,260 ki sayı da o deməkdir ki, sonra sıra daxildir. 322 00:17:49,260 --> 00:17:52,110 >> Amma bu çox lazımlı bu dəqiq şeylər üçün, 323 00:17:52,110 --> 00:17:54,590 biz yerinə yetirmək üçün zaman loop üzərində tekrarlamalar 324 00:17:54,590 --> 00:17:59,630 o indeksləri sıfır yönümlü, çünki, biz digər dillərdə gördüyümüz kimi 325 00:17:59,630 --> 00:18:02,360 həmçinin. 326 00:18:02,360 --> 00:18:05,210 Loop üçün bu hər hansı suallar? 327 00:18:05,210 --> 00:18:10,660 >> Belə ki, gizli müəyyən var bu göstərici dəyişən, 328 00:18:10,660 --> 00:18:14,350 onların dəyəri 0 başlayır və hər loop iteration davam edir 329 00:18:14,350 --> 00:18:17,950 bir nöqtəyə qədər 1 qədər artacaq ki, grades.count bərabərdir 330 00:18:17,950 --> 00:18:20,380 olan nöqtədə, loop aborts. 331 00:18:20,380 --> 00:18:23,730 >> Bizim simli Qeyd edək ki, burada İnterpolasyon, 332 00:18:23,730 --> 00:18:26,910 biz, həqiqətən, bir neçə sadə edə bilərsiniz bu dəyərlərə manipulyasiya. 333 00:18:26,910 --> 00:18:31,230 Belə ki, index plus 1 həqiqətən olacaq ki, dəyəri bir toplama edir çıxış 334 00:18:31,230 --> 00:18:34,780 index, çünki da Bu halda, bir tamsayı. 335 00:18:34,780 --> 00:18:37,810 Və o nöqtədə, o, sonra simli çevrilir 336 00:18:37,810 --> 00:18:42,230 və burada bu simli daxil interpolyasiya biz gözləmək kimi və çap. . 337 00:18:42,230 --> 00:18:44,520 >> Və gözəl şey Diziler haqqında burada 338 00:18:44,520 --> 00:18:50,730 biz də var edə bilərlər ki, alma dəyərlər və qəbulu dəyərlər 339 00:18:50,730 --> 00:18:54,080 kvadrat mötərizə notation kimi istifadə biz də digər dillərdə gördüm. 340 00:18:54,080 --> 00:18:57,130 341 00:18:57,130 --> 00:19:01,030 >> Bütün hüquqlar, burada, biz indi Bizim siniflər bütün bizim məbləği hesablamaq. 342 00:19:01,030 --> 00:19:02,780 İndi sort növbəti məntiqi addım olardı 343 00:19:02,780 --> 00:19:07,580 tapmaq üçün bir bölmə əməliyyat etmək həmin siniflər orta həyata. 344 00:19:07,580 --> 00:19:10,150 Amma əhəmiyyətli bir şey Burada baş hansı 345 00:19:10,150 --> 00:19:15,020 bu məbləğ bəlkə bir tam olmasıdır. 346 00:19:15,020 --> 00:19:18,020 Lakin biz bəzi yerinə yetirmək üçün lazımdır ikiqat bölgüsü sort. 347 00:19:18,020 --> 00:19:20,600 Bu olacaq zaman son dərəcə əhəmiyyətli 348 00:19:20,600 --> 00:19:24,140 bu əməliyyat istəyirəm, biz söyləyərək nə çünki 349 00:19:24,140 --> 00:19:28,430 biz, həqiqətən, lazımdır ki, iki çiftler şöbəsinin həyata keçirir. 350 00:19:28,430 --> 00:19:31,370 Və yenə, Swift, çünki çox güclü tipli, 351 00:19:31,370 --> 00:19:36,760 biz aydın şəkildə bütün qurmalısınız ikiqat maddələr biz əvvəl həqiqətən 352 00:19:36,760 --> 00:19:38,300 ki, əməliyyat. 353 00:19:38,300 --> 00:19:40,550 >> Məqsədilə bizim üçün belə ikiqat bölgüsü yerinə, 354 00:19:40,550 --> 00:19:43,730 Yalnız bir üçün kifayət qədər deyil həmin maddələr ikiqat olmalıdır. 355 00:19:43,730 --> 00:19:46,400 Onların hər ikisi bir olmalıdır sürətli üçün ikiqat 356 00:19:46,400 --> 00:19:50,860 Bu əmin olmaq Biz nə etmək istəyirəm nə. 357 00:19:50,860 --> 00:19:54,360 Belə ki, biz sonra aydın typecast edəcək Yuxarıda hesablanır etdik məbləği 358 00:19:54,360 --> 00:19:58,970 və çiftler üçün siniflər sayı, və sonra əməliyyat və mağaza çıxış 359 00:19:58,970 --> 00:20:02,390 bu yeni dəyişən, daha doğrusu orta adlanan bu yeni daimi, 360 00:20:02,390 --> 00:20:06,810 hansı növü, siz təsəvvür hansı olacaq? 361 00:20:06,810 --> 00:20:07,587 Double, evet. 362 00:20:07,587 --> 00:20:09,420 Bu halda, belə ki, biz onu müəyyən etmək yoxdur 363 00:20:09,420 --> 00:20:13,450 Bu nəticə çıxarmaq olar, çünki data orta əməliyyatı növü 364 00:20:13,450 --> 00:20:14,730 olacaq. 365 00:20:14,730 --> 00:20:19,025 Və Swift ümumiyyətlə olduqca yaxşı haqqında növləri nəticə çıxarmaq edə. 366 00:20:19,025 --> 00:20:22,116 367 00:20:22,116 --> 00:20:24,200 >> Bu görmək istəyirsiniz run, və ya hərəkət edə bilər? 368 00:20:24,200 --> 00:20:25,640 Mən davam etmək istəyirəm. 369 00:20:25,640 --> 00:20:28,130 Bu hər hansı bir hər hansı suallar? 370 00:20:28,130 --> 00:20:28,630 Great. 371 00:20:28,630 --> 00:20:31,160 372 00:20:31,160 --> 00:20:35,010 >> İndi biz almaq üçün başlamaq olacaq yaxşı stuff-- Defining funksiyaları, 373 00:20:35,010 --> 00:20:39,090 və digər növ bir neçə Swift üçün unikal deyil ki, 374 00:20:39,090 --> 00:20:41,620 Başqa dillərdə görüldü Bu baxımdan qədər, 375 00:20:41,620 --> 00:20:46,290 lakin onlar digər mövcuddur Daha sonra tapa bilər languages. 376 00:20:46,290 --> 00:20:48,210 Belə ki, ilk istəyirsinizsə bir funksiyası müəyyən etmək üçün, 377 00:20:48,210 --> 00:20:52,170 Siz funky sözü ilə müəyyən funksiyası, və sonra funksiyası adı, 378 00:20:52,170 --> 00:20:56,710 və sonra parantez, arqumentlər ki, funksiyası qəbul etmək istəyirəm. 379 00:20:56,710 --> 00:21:00,280 arqumentlər də olmalıdır müəyyən yerləşir generally-- 380 00:21:00,280 --> 00:21:05,010 həmçinin məlumatların növü daxil etməlidir ki, onlar nəticə çıxarmaq olar halda onlar var. 381 00:21:05,010 --> 00:21:07,500 Və biz kiçik görürsünüz Yalnız bir az verirlər. 382 00:21:07,500 --> 00:21:09,920 >> Belə ki, bu halda biz bir var funksiyası printGradeCount çağırıb. 383 00:21:09,920 --> 00:21:12,840 Biz qəbul olacaq dəyişən və ya deyil, bu halda, 384 00:21:12,840 --> 00:21:14,450 bir constant-- gradebook çağırıb. 385 00:21:14,450 --> 00:21:18,517 Və o olacaq integers sıra yazın. 386 00:21:18,517 --> 00:21:20,600 İndi bir şey var ki, burada həqiqətən vacibdir 387 00:21:20,600 --> 00:21:21,849 ki, Mən sizə anlamaq istəyirəm. 388 00:21:21,849 --> 00:21:27,560 Ki, Mənim cari olaraq, bu dəlilləri var Bu funksiya üçün giriş olunur ki, 389 00:21:27,560 --> 00:21:34,380 bir gizli let söz ilə müəyyən edilmiş, Mən bu dəyişdirə bilməz o deməkdir ki, 390 00:21:34,380 --> 00:21:39,850 burada gradebook dəyişən. 391 00:21:39,850 --> 00:21:43,360 Və sort, anlamlı Siz data keçən edirik, çünki. 392 00:21:43,360 --> 00:21:45,860 Və bəlkə də istəmirəm altında dəyişib olunacaq. 393 00:21:45,860 --> 00:21:50,800 Bu aydın qeyd etmək mümkündür bu bir dəyişən qoyaraq ki, 394 00:21:50,800 --> 00:21:52,070 Burada var söz. 395 00:21:52,070 --> 00:21:56,832 Amma ki, biz bir gotcha deyil qeyd nəfər keçmişdə etmiş 396 00:21:56,832 --> 00:21:59,790 onlar olacaq ki, ehtimal ki, dəyişən olmaq zaman, əslində, onu 397 00:21:59,790 --> 00:22:02,640 daimi deyil. 398 00:22:02,640 --> 00:22:07,340 >> Bütün hüquqlar, belə ki, burada, sonra bu halda, Biz hər hansı bir qaytarılması növü ifadə deyil. 399 00:22:07,340 --> 00:22:09,460 Biz necə üçün sizə göstərmək lazımdır yalnız bir anda olduğunu. 400 00:22:09,460 --> 00:22:12,340 Amma biz burada fark vəziyyəti, əgər yalnız bir sadə. 401 00:22:12,340 --> 00:22:14,560 Gradebook Əgər boş Bu halda hansı 402 00:22:14,560 --> 00:22:19,310 Bu tam yalnız mülkiyyətidir array, sonra biz bir şey çap. 403 00:22:19,310 --> 00:22:23,100 Əks halda biz başqa bir şey. 404 00:22:23,100 --> 00:22:25,000 >> Pretty sadə günə qədər düşünürəm. 405 00:22:25,000 --> 00:22:27,960 Hər hansı bir sualınız varsa Lakin məni dayandırmaq. 406 00:22:27,960 --> 00:22:33,350 >> İndi bu funksiya, orta, həmçinin edir bəzi dəlilləri, daha doğrusu bir dəlil, 407 00:22:33,350 --> 00:22:37,507 gradebook, və bu zaman olan ikiqat növü qayıtmaq üçün gedir. 408 00:22:37,507 --> 00:22:39,340 Bu hesablama Çünki orta və bu 409 00:22:39,340 --> 00:22:45,010 həqiqətən ki, geri gedir zəng xəttinə hesablanmış orta. 410 00:22:45,010 --> 00:22:50,070 >> Bu halda, biz müəyyən Ox sonra növü qayıtmaq. 411 00:22:50,070 --> 00:22:53,260 Bu hiss edə bilər ilk qəribə cür. 412 00:22:53,260 --> 00:22:55,610 Siz vərdiş artıb etdik geri qəbulu 413 00:22:55,610 --> 00:22:57,720 funksiyası adı əvvəl yazın. 414 00:22:57,720 --> 00:23:00,310 Lakin bu hesab əgər riyaziyyat baxımından, 415 00:23:00,310 --> 00:23:03,320 kimi riyaziyyat zaman ki, bir funksiyası müəyyən, 416 00:23:03,320 --> 00:23:06,807 Bəzi ilə funksiyası var giriş, və bir məhsulun istehsal. 417 00:23:06,807 --> 00:23:08,890 Və dəqiq nə var Bu taklit üçün nəzərdə tutulur. 418 00:23:08,890 --> 00:23:12,460 Və digər dillərdə bir neçə var ki, eləcə də oxşar sintaksis var 419 00:23:12,460 --> 00:23:15,674 lakin yəqin ki, heç biri Siz CS50 gördüm. 420 00:23:15,674 --> 00:23:17,090 Amma hələ də səhv etməyin. 421 00:23:17,090 --> 00:23:21,650 arrow gedir nə deməkdir bu halda qaytarılması. 422 00:23:21,650 --> 00:23:23,650 OK, belə ki, necə biz gedir Bu orta hesablamaq üçün necə? 423 00:23:23,650 --> 00:23:25,649 Yaxşı, əgər gradebook boş, yaxşı, sonra biz istəyirik 424 00:23:25,649 --> 00:23:30,731 olan bəlkə, 0 qayıtmaq üçün gedir ağlabatan yolu bu müalicə. 425 00:23:30,731 --> 00:23:32,980 Mən gəlsin, bilmirəm geri ki, bir az. 426 00:23:32,980 --> 00:23:34,688 Bu, həqiqətən bilməz məqbul yol 427 00:23:34,688 --> 00:23:38,310 orta əgər hesablamaq üçün biz boş gradebook var. 428 00:23:38,310 --> 00:23:41,260 >> Sonra biz yalnız bizim toplama yerinə yetirmək lazımdır. 429 00:23:41,260 --> 00:23:43,900 Biz, həqiqətən, ki, burada edək bir alternativ versiyası 430 00:23:43,900 --> 00:23:49,190 Bizə təkrarlamaq üçün imkan verir loop üçün bir sıra hər bir maddə üzərində 431 00:23:49,190 --> 00:23:53,630 və hər bir element yerləşdirmək öz dəyişən. 432 00:23:53,630 --> 00:23:56,200 Da sinif üçün ifadə edərək gradebook, biz nə deyə edilir 433 00:23:56,200 --> 00:24:00,560 biz dolayısı olacaq ki, adlı yeni sabit yaratmaq 434 00:24:00,560 --> 00:24:05,180 təmsil gedir grade gradebook hər unikal maddə 435 00:24:05,180 --> 00:24:06,769 hər zaman ki, loop iterates üçün. 436 00:24:06,769 --> 00:24:08,560 Ilk dəfə Belə ki, Bu run, grade olacaq 437 00:24:08,560 --> 00:24:09,800 gradebook ilk maddə ola. 438 00:24:09,800 --> 00:24:12,300 ikinci dəfə olacaq İkinci maddə, belə ki, və s 439 00:24:12,300 --> 00:24:15,970 gradebook var qədər elementləri özünü canı. 440 00:24:15,970 --> 00:24:20,390 Sonra biz ki, yekunlaşdırmaq mümkün olacaq Bizim toplama dəyişən sinif 441 00:24:20,390 --> 00:24:22,570 və orta qayıtmaq biz əvvəl gördüm. 442 00:24:22,570 --> 00:24:25,670 443 00:24:25,670 --> 00:24:26,950 OK, hər hansı bir sualınız? 444 00:24:26,950 --> 00:24:27,699 Bəli? 445 00:24:27,699 --> 00:24:28,990 Auditoriya: Mən iki sualım var. 446 00:24:28,990 --> 00:24:33,586 Sayı bir, təxmini, bilərsiniz bu bir tam run? 447 00:24:33,586 --> 00:24:35,604 Bir olmaq yoxdur ikiqat, doğru deyil? 448 00:24:35,604 --> 00:24:37,520 DAN AMRMENDARIZ: Kompüter siz ki, sual təkrar? 449 00:24:37,520 --> 00:24:39,587 Auditoriya: Mən edə bilərəmmi orta kimi tam? 450 00:24:39,587 --> 00:24:41,670 DAN AMRMENDARIZ: Kompüter siz orta kimi tam edirsiniz? 451 00:24:41,670 --> 00:24:45,015 Belə ki, bir tam qayıtmaq əvəzinə ikiqat orta? 452 00:24:45,015 --> 00:24:48,204 >> Auditoriya: siz Return-- ki, indi aşağıdakı var. 453 00:24:48,204 --> 00:24:49,870 DAN AMRMENDARIZ: Burada, 0.0 qayıtmaq? 454 00:24:49,870 --> 00:24:51,790 Auditoriya: Bəli, yalnız 0 qaytarın. 455 00:24:51,790 --> 00:24:56,590 Belə ki, ya olacaq 80 və ya 85, lakin 85.2. 456 00:24:56,590 --> 00:24:59,465 >> DAN AMRMENDARIZ: bu halda ki, belə bir neçə müxtəlif yolları var 457 00:24:59,465 --> 00:25:00,090 ki, cavab. 458 00:25:00,090 --> 00:25:02,760 Mənə qaydada onlara cavab bildirin. 459 00:25:02,760 --> 00:25:06,740 Mən yalnız bu geri edə Belə ki 0, 0 tam dəyəri. 460 00:25:06,740 --> 00:25:09,730 Və belə ki, bir səbəb olacaq Bu halda Növü səhv 461 00:25:09,730 --> 00:25:13,210 bir cüt gözləyirik, çünki lakin sonra bir tam qayıdır. 462 00:25:13,210 --> 00:25:16,770 Mən tam qayıtmaq istəyirsinizsə, mən. 463 00:25:16,770 --> 00:25:20,450 Mən qaytarılması növü müəyyən edə bilərsiniz , int burada 0 qayıtmaq üçün, 464 00:25:20,450 --> 00:25:22,047 və ikiqat bölgüsü yerinə. 465 00:25:22,047 --> 00:25:23,880 Amma sonra biz olardı tam bölgüsü edir. 466 00:25:23,880 --> 00:25:27,080 Və belə ki, biz sonra almaq deyil biz bəlkə gözləmək olardı ki, orta. 467 00:25:27,080 --> 00:25:29,210 Amma bəli, biz dəyişə bilərsiniz ki, şəkildə növləri. 468 00:25:29,210 --> 00:25:32,598 >> Auditoriya: Və ikincisi, siz üst bir cüt var. 469 00:25:32,598 --> 00:25:35,502 Lakin aşağı, zaman ikiqat geri etmək, 470 00:25:35,502 --> 00:25:38,280 avtomatik olaraq artıq Double format qaytarılması. 471 00:25:38,280 --> 00:25:42,278 Niyə hələ də müəyyən etmək lazımdır ikiqat ilə üst arrow ilə? 472 00:25:42,278 --> 00:25:45,010 >> DAN AMRMENDARIZ: Belə ki, halda, bu hissəsi 473 00:25:45,010 --> 00:25:50,580 bir the--, belə ki, sual təkrar Bu qaytarılması gizli çünki 474 00:25:50,580 --> 00:25:56,030 Burada növləri, hansı növ bu, həqiqətən, , biz Swift ilə açıq olmaq lazımdır 475 00:25:56,030 --> 00:25:59,970 biz istəyirəm nə haqqında Bu funksiya həyata qayıtmaq 476 00:25:59,970 --> 00:26:02,690 Bu yazın həyata zaman, belə ki, yoxlanılması, əmin edə bilərsiniz 477 00:26:02,690 --> 00:26:05,850 biz, həqiqətən, yazılı nə ki, aşağı, həqiqətən, uyğun. 478 00:26:05,850 --> 00:26:10,225 Belə ki, bir çek kimi sort var vəziyyət özünüzü sort. 479 00:26:10,225 --> 00:26:11,050 Amma are-- 480 00:26:11,050 --> 00:26:12,560 >> Auditoriya: [işitilemez] arrow? 481 00:26:12,560 --> 00:26:19,490 >> DAN AMRMENDARIZ: hallarda zaman var biz dolayısı edə bilər ki, müəyyən edə bilərsiniz 482 00:26:19,490 --> 00:26:21,550 qaytarılması növü seçin. 483 00:26:21,550 --> 00:26:23,940 Amma bu halda, mən deyil ki, iş olardı. 484 00:26:23,940 --> 00:26:26,190 Bəzi digər sintaksis var biz sonra görəcəksiniz ki. 485 00:26:26,190 --> 00:26:30,320 486 00:26:30,320 --> 00:26:35,280 >> Bütün hüquqlar, belə ki, bu mənbə kodu bir az fərqli 487 00:26:35,280 --> 00:26:41,839 bu dəlilləri çözümler çünki biz zəng etdiyiniz fəaliyyət göstərir. 488 00:26:41,839 --> 00:26:44,130 Bu işləri necə mənə göstərmək bildirin biz, həqiqətən, hərəkət əvvəl 489 00:26:44,130 --> 00:26:48,050 bəzi maraqlı şeylər ki Swift baş. 490 00:26:48,050 --> 00:26:51,870 >> Bu halda, belə ki, əgər mən yalnız bu run Bu nə indeksi, fark 491 00:26:51,870 --> 00:26:54,900 is-- isə, bu cür mənə qəribə səhv verir. 492 00:26:54,900 --> 00:26:59,730 Mən bir neçə keçmək lazımdır bir command line arqument kimi integers. 493 00:26:59,730 --> 00:27:06,220 Belə ki, 150 və 80 görək, və Enter düyməsini basın bu, həqiqətən bunu nə tapmaq üçün. 494 00:27:06,220 --> 00:27:09,890 Bu hər qəbul edir integers kimi bu dəyərlər. 495 00:27:09,890 --> 00:27:12,040 Bu gradebook onları giren var. 496 00:27:12,040 --> 00:27:14,470 Və sonra həyata var ki, orta hesablanması 497 00:27:14,470 --> 00:27:16,650 və biz gözləmək olardı ki, tipi. 498 00:27:16,650 --> 00:27:19,950 >> Amma təbii ki, bir şey gedir var bu rədd şey ilə 499 00:27:19,950 --> 00:27:23,300 bir tam kimi bir şey. 500 00:27:23,300 --> 00:27:27,300 Biz zaman geri bilər command line dəlilləri ilə məşğul 501 00:27:27,300 --> 00:27:32,640 ilk C və digər dillərdə Ki, command line arqument 0-ci maddə 502 00:27:32,640 --> 00:27:35,774 siyahısı komanda adı biz, həqiqətən, icra edir. 503 00:27:35,774 --> 00:27:38,690 Bu halda, belə ki, mən yalnız loop alıram bütün command line dəlilləri üzərində. 504 00:27:38,690 --> 00:27:41,650 Amma xülya hər hansı bunu deyiləm birinci üzərində keçmək edin. 505 00:27:41,650 --> 00:27:45,920 Mən yalnız açıq-aşkar deyiləm və ya dolayısı ilə Ben bu cür olan yoxlanılması 506 00:27:45,920 --> 00:27:49,900 integers, həqiqətən, Mən əvvəl var Bu hesablanmasını həyata keçirir. 507 00:27:49,900 --> 00:27:52,420 >> Və mahiyyətcə var nə burada baş. 508 00:27:52,420 --> 00:27:55,860 Hər mübahisədə üçün proses arqumentləri, 509 00:27:55,860 --> 00:27:59,210 Mən bəzi çek çıxış üçün gedirəm. 510 00:27:59,210 --> 00:28:01,970 Və bu halda, mən gedirəm ilk çevirmək üçün cəhd 511 00:28:01,970 --> 00:28:07,620 tam o arqument tərəfindən aydın Typecast həyata, 512 00:28:07,620 --> 00:28:12,310 Bu, giriş, bir string çünki və tam əslində. 513 00:28:12,310 --> 00:28:18,140 >> Amma bu qəribə sintaksis növüdür, imkan grade Int (dəlil) bərabərdir əgər. 514 00:28:18,140 --> 00:28:21,120 Həqiqətən nə baş verir burada son dərəcə 515 00:28:21,120 --> 00:28:24,390 Sizin istifadə Swift vacibdir. 516 00:28:24,390 --> 00:28:27,610 Bu nə istifadə edir isteğe növü çağırıb. 517 00:28:27,610 --> 00:28:34,790 >> Belə ki, bu funksiya, Int (dəlil) yalnız bir tam, lakin yekunları qaytarır 518 00:28:34,790 --> 00:28:37,470 nə isteğe tam deyirlər. 519 00:28:37,470 --> 00:28:41,200 Və bu sort edir bir növü üst bir növü. 520 00:28:41,200 --> 00:28:45,900 Siz sort kimi təsəvvür edə bilərsiniz bir paketi kimi qaytarılması. 521 00:28:45,900 --> 00:28:47,750 Və siz açmaq zaman paketi, ya 522 00:28:47,750 --> 00:28:53,930 nəticə bir tam, var, və ya Bu bütün bu tamamilə heç bir şey yoxdur. 523 00:28:53,930 --> 00:28:58,140 Bu bir səhv yoxlanılması kimi faydalıdır mexanizmi, çünki bu halda 524 00:28:58,140 --> 00:29:02,080 biz tapa bilərsiniz, bu idi növü dönüşüm uğurlu? 525 00:29:02,080 --> 00:29:05,810 Idi, onda əslində daxili tam gedir. 526 00:29:05,810 --> 00:29:08,750 Əks halda bəzi olacaq biz nil zəng edəcəyik dəyəri olan 527 00:29:08,750 --> 00:29:10,920 heç bir tam nümayəndəsidir. 528 00:29:10,920 --> 00:29:13,270 Bu, həqiqətən heç bir şey nümayəndəsi var. 529 00:29:13,270 --> 00:29:18,130 >> Və bu halda tikinti bizə paketi açmaq üçün imkan verir, 530 00:29:18,130 --> 00:29:19,850 məcburi ki, isteğe. 531 00:29:19,850 --> 00:29:25,560 Və biz açmaq edə bilərlər, əgər paketi və daxili bir tam tapmaq, 532 00:29:25,560 --> 00:29:27,720 sonra biz söyləyərək burada biz sonra olacaq edir 533 00:29:27,720 --> 00:29:33,090 ki, dəyəri müəyyən edilə imkan verir Bu sinif adlanan bu daimi. 534 00:29:33,090 --> 00:29:36,590 Əgər şərhdə bu hissəsi, əgər şərhdə üst hissəsi 535 00:29:36,590 --> 00:29:40,390 run çünki edəcək açmaq uğurlu oldu. 536 00:29:40,390 --> 00:29:43,290 >> Yalnız belə ki, baş verərsə bir səhv bəlkə var idi 537 00:29:43,290 --> 00:29:47,040 Bu açıq tipli dönüşüm bəlkə, bir tam bir simli 538 00:29:47,040 --> 00:29:49,160 məsələn dəyər ABC var. 539 00:29:49,160 --> 00:29:52,120 Və həqiqətən gedir deyil bir tam çevirmək. 540 00:29:52,120 --> 00:29:55,520 Sonra, Nil qayıdacaqlar olan tam deyil. 541 00:29:55,520 --> 00:29:57,570 Və bu halda bəyanat yaxşı, sonra uğursuz. 542 00:29:57,570 --> 00:30:01,930 Çünki mövcud deyil grade Bu, heç bir tam məzmun var. 543 00:30:01,930 --> 00:30:06,391 Və əvəzinə bu başqa blok davam edəcək. 544 00:30:06,391 --> 00:30:06,890 Bəli? 545 00:30:06,890 --> 00:30:09,652 >> Auditoriya: Nil N-I-L edir? 546 00:30:09,652 --> 00:30:11,110 DAN AMRMENDARIZ: nil bəli, N-I-L edir. 547 00:30:11,110 --> 00:30:14,970 548 00:30:14,970 --> 00:30:20,310 >> Belə ki, bu, bəlkə biridir Swift haqqında ən ağır şey, 549 00:30:20,310 --> 00:30:23,690 Siz etdiyiniz xüsusilə bir iOS app alaq otları 550 00:30:23,690 --> 00:30:27,442 və həqiqətən çalışdığınız bəzi inkişaf etmək. 551 00:30:27,442 --> 00:30:29,400 Bu böyle olacaq haqqında isteğe sizə. 552 00:30:29,400 --> 00:30:33,050 Bu isteyen olacaq sual işarələri və nida xal. 553 00:30:33,050 --> 00:30:37,100 Amma əgər siz yazaraq anlamaq dəfə həyata figuring bəzi vaxt sərf 554 00:30:37,100 --> 00:30:41,990 nə isteğe növləri ilə gedir Özünüz baş ağrısı bir çox saxlaya bilərsiniz 555 00:30:41,990 --> 00:30:46,040 Siz üçün çalışırıq kimi Swift bir app yazın. 556 00:30:46,040 --> 00:30:47,660 >> Bu, həqiqətən çox güclü xüsusiyyət var. 557 00:30:47,660 --> 00:30:49,826 Və yalnız lazımdır İndi bunun üçün mənim söz almaq. 558 00:30:49,826 --> 00:30:52,620 Amma biz bu tikinti görəcəksiniz və s bu kimi 559 00:30:52,620 --> 00:30:56,740 digər mənbə kodu bəzi ki, biz yalnız bir az göstərmək lazımdır. 560 00:30:56,740 --> 00:31:00,440 >> Ilkin suallara burada var? 561 00:31:00,440 --> 00:31:03,790 562 00:31:03,790 --> 00:31:08,690 Qədər əhəmiyyətli paket bir ki, isteğe növü metatype sortudur. 563 00:31:08,690 --> 00:31:12,500 Bu da, bir dəyəri var və sonra, əgər 564 00:31:12,500 --> 00:31:18,110 bəlkə bağlı ki, dəyəri olacaq bu və ya heç bir dəyəri var, 565 00:31:18,110 --> 00:31:19,620 və sıfır ilə təmsil olunur. 566 00:31:19,620 --> 00:31:24,210 567 00:31:24,210 --> 00:31:28,870 Bu qalan bəlkə beklediğiniz kimi. 568 00:31:28,870 --> 00:31:32,900 >> Belə ki, ramp edək çətinlik yenə. 569 00:31:32,900 --> 00:31:37,070 Və bu zaman, bəzi nəzər salaq faktiki olaraq mövcud digər məlumatlar növləri. 570 00:31:37,070 --> 00:31:41,290 Onlardan biri olan, lüğətlər edir Python lüğətlərin çox oxşar. 571 00:31:41,290 --> 00:31:48,270 Bu hash masa üçün bir qədər oxşar C. Bu əhəmiyyətli düymələri bir mapping edir 572 00:31:48,270 --> 00:31:49,820 harada düymələri strings ola bilər. 573 00:31:49,820 --> 00:31:52,670 Və bu düymələri baxmaq zaman, bu düymələri bir dəyər olacaq. 574 00:31:52,670 --> 00:31:56,020 Belə ki, kifayət qədər bir sıra deyil, lakin əvəzinə, daha yaxından bağlı 575 00:31:56,020 --> 00:31:58,810 bir hash xəritə və ya bir hash masa. 576 00:31:58,810 --> 00:32:02,420 >> Bu ehtimal olunur necə edək həqiqətən biz əvvəl iş 577 00:32:02,420 --> 00:32:05,210 mənbə kodu özü daxil. 578 00:32:05,210 --> 00:32:07,680 Mən yalnız bu run, heç bir şey həqiqətən baş verir. 579 00:32:07,680 --> 00:32:12,430 Mən gözləyirəm ki, mənə izah edir Aşağıdakı tipli bəzi parametrləri. 580 00:32:12,430 --> 00:32:16,050 Beləliklə, mən təmin etmək gedirəm bəzi problem müəyyən adları, 581 00:32:16,050 --> 00:32:18,490 belə pset0, bəlkə mən 100 var. 582 00:32:18,490 --> 00:32:20,790 Və pset1, mən 5 var. 583 00:32:20,790 --> 00:32:24,630 Və sonra imtahan, mən həqiqətən yaxşı idi və 30 var. 584 00:32:24,630 --> 00:32:27,180 Və oops, mən burada bir yer təşkil edib. 585 00:32:27,180 --> 00:32:30,940 >> Mən daxil edin hit zaman, siz görə bilərsiniz bəzi hesablanmasını həyata keçirir. 586 00:32:30,940 --> 00:32:33,740 Bu gradebook üç deyir notları pset1, pset0, exam. 587 00:32:33,740 --> 00:32:36,120 Və gradebook var bu xüsusi orta. 588 00:32:36,120 --> 00:32:38,370 Belə ki, yenə, biz çalışırıq Bu gradebook ideya ilə, 589 00:32:38,370 --> 00:32:44,650 lakin biz iterating davam edirik Bizim funksiyası mürəkkəbliyi ilə. 590 00:32:44,650 --> 00:32:47,650 >> Başlanğıc Belə ki, biz yalnız istəyirik bir funksiyası yaratmaq gedir 591 00:32:47,650 --> 00:32:49,390 istifadə çap üçün məsuliyyət daşıyır. 592 00:32:49,390 --> 00:32:51,920 Bu çıxış var olan funksiyası yalnız 593 00:32:51,920 --> 00:32:53,710 zorla proqram çıxmaq. 594 00:32:53,710 --> 00:32:56,530 Bu bir şey deyil ki, Siz iOS app istifadə edəcək. 595 00:32:56,530 --> 00:32:59,750 Bu, bu halda, yalnız bir command line arqumenti ilə. 596 00:32:59,750 --> 00:33:01,990 Sonrakı biz Xcode doğru hərəkət başlamaq lazımdır. 597 00:33:01,990 --> 00:33:07,760 Amma bu komanda xüsusi Swift line stil proqram. 598 00:33:07,760 --> 00:33:11,490 >> Nin bəzi nəzər salaq Burada maraqlı şeylər. 599 00:33:11,490 --> 00:33:15,150 Nin yalnız bir neçə, görək maraqlı şeylər bəlkə qeyd etmək 600 00:33:15,150 --> 00:33:19,930 ki, mənim funksiyası var siniflər sayı çap, 601 00:33:19,930 --> 00:33:26,090 Mən ki, siyahı var idi ki, xatırlayıram bilər items-- pset1, pset0 və imtahan. 602 00:33:26,090 --> 00:33:29,130 Siz, həqiqətən, tez və asanlıqla bunu 603 00:33:29,130 --> 00:33:34,490 a gradebook alaraq düymələri və dəyərləri var lüğət. 604 00:33:34,490 --> 00:33:38,730 Əsas bütün vasitəsilə tapmaq burada dot düymələri üsulu, 605 00:33:38,730 --> 00:33:43,180 və sonra bu joinWithSeparator istifadə sonra düymələri bütün tutacaq 606 00:33:43,180 --> 00:33:48,590 biz çap etmişdir ki, pset1-- və ya sorry, pset0, pset1, və exam-- 607 00:33:48,590 --> 00:33:53,030 və onlara birlikdə concatenate bir vergül və boşluq istifadə 608 00:33:53,030 --> 00:33:55,400 bir uzun string yaratmaq. 609 00:33:55,400 --> 00:34:00,190 Bu qoşulmaq əməliyyat yalnız phenomenally deyil kontekstlərdə bir sıra faydalı. 610 00:34:00,190 --> 00:34:03,450 Və belə ki, bu joinWithSeparator edir. 611 00:34:03,450 --> 00:34:06,939 >> Bu ki, bir şey deyil Swift 1 Swift 2 dəyişdi. 612 00:34:06,939 --> 00:34:08,730 Bir olmaq üçün istifadə Python style-- değilseniz 613 00:34:08,730 --> 00:34:13,219 Python-- bir Python ilə tanış stil strings metodu buyurun. 614 00:34:13,219 --> 00:34:15,699 Amma ki, artıq Swift 2 halda. 615 00:34:15,699 --> 00:34:19,400 Siz istəyirsinizsə, bu istifadə etmək istədiyiniz məhsullarının bir sıra concatenate üçün 616 00:34:19,400 --> 00:34:23,380 birlikdə bir simli ilə. 617 00:34:23,380 --> 00:34:27,889 >> Belə ki, bəlkə sonra bizim əvvəl orta müzakirəsi, 618 00:34:27,889 --> 00:34:32,659 Bu bir az daha anlamlı Bizi orta funksiyası qurmaq üçün 619 00:34:32,659 --> 00:34:36,610 daha isteğe ikiqat olmaq Yalnız bir açıq ikiqat artıq. 620 00:34:36,610 --> 00:34:39,239 Ki, idi, çünki qeyri-adi vəziyyət olduğu, 621 00:34:39,239 --> 00:34:41,550 nə gradebook həqiqətən əgər ərzində heç bir dəyərləri var? 622 00:34:41,550 --> 00:34:44,280 Nə orta qaytarılması lazımdır? 623 00:34:44,280 --> 00:34:46,350 >> Yaxşı bəlkə C siz bir şey olardı 624 00:34:46,350 --> 00:34:50,040 kimi, sentinel dəyər təmin kimi 0.0, və ya bəlkə bir mənfi sayı, 625 00:34:50,040 --> 00:34:53,690 və ya bir şey yalnız fakt təmsil bəzi səhv vəziyyət var idi ki, 626 00:34:53,690 --> 00:34:57,910 və bəlkə həqiqətən yoxdur ki, orta hesablamaq imkanı. 627 00:34:57,910 --> 00:35:05,590 Yaxşı bir ifadə gözəllik isteğe növü bunu olardı. 628 00:35:05,590 --> 00:35:09,540 Və mən indi bütün bu sözləri deyərək, lakin alıram bu, həqiqətən optionals istifadə etmir. 629 00:35:09,540 --> 00:35:12,970 Amma biz yalnız ki, görürsünüz biz orta bilərsiniz dəqiqə 630 00:35:12,970 --> 00:35:17,230 ki, isteğe data type olmaq Bu, həqiqətən sonra bəzi məlumatları qaytarır əgər 631 00:35:17,230 --> 00:35:18,470 ki, data qayıdacaqlar. 632 00:35:18,470 --> 00:35:20,570 Əks halda biz qayıdacaqlar nil, bu olduğunu söyləyərək 633 00:35:20,570 --> 00:35:22,200 heç bir mənalı hesablanmasını var. 634 00:35:22,200 --> 00:35:25,650 635 00:35:25,650 --> 00:35:28,570 >> Nin başqa bir şey üçün hərəkət edək. 636 00:35:28,570 --> 00:35:35,910 Buradan belə ki, biz ariyordum command line bütün bu nümunələr. 637 00:35:35,910 --> 00:35:39,470 Amma həqiqətən olacaq nə ilə məşğul olmaq üçün Xcode edir. 638 00:35:39,470 --> 00:35:43,720 Və haqqında gözəl şeyi biridir Xcode və xüsusi Swift da, 639 00:35:43,720 --> 00:35:47,450 Biz bu var ki, şey Playground çağırıb. 640 00:35:47,450 --> 00:35:51,470 Və Playground deyil bütün iOS app. 641 00:35:51,470 --> 00:35:54,751 Ancaq sınağa imkan verir bir çox asan şəkildə Swift ilə. 642 00:35:54,751 --> 00:35:56,000 Siz bütün kodu edəbilərsiniz. 643 00:35:56,000 --> 00:35:58,140 Bu gözəl burada qeyd sintaksis var. 644 00:35:58,140 --> 00:36:01,600 Yeni bir fayl yaratmaq, o, xahiş edəcək Siz oyun yaratmaq istəyirsinizsə. 645 00:36:01,600 --> 00:36:08,720 Amma Playground haqqında gözəl şey ki, pəncərə doğru deyil 646 00:36:08,720 --> 00:36:12,020 Bu, həqiqətən sizə göstərir Sizin kodu çıxdı. 647 00:36:12,020 --> 00:36:16,110 Mən aşağı diyirləyin əgər Belə ki, biz nə edə bilərsiniz kodu müxtəlif xətləri çıxış 648 00:36:16,110 --> 00:36:17,200 həqiqətən olmaq olur. 649 00:36:17,200 --> 00:36:19,850 650 00:36:19,850 --> 00:36:26,790 >> Bu halda, belə ki, biz olacaq istiqamətləri yalnız bir az dəyişdirmək 651 00:36:26,790 --> 00:36:30,960 və həqiqətən bir şey haqqında danışmaq Bu yüksək səviyyəli şəkildə vacibdir 652 00:36:30,960 --> 00:36:34,020 Swift, bu və fəaliyyət bağlayırlar bu fikirdir. 653 00:36:34,020 --> 00:36:36,960 Və yəqin ki, bu gördüm JavaScript bir az. 654 00:36:36,960 --> 00:36:40,770 Sizin ki CS50 var, bağlayırlar 655 00:36:40,770 --> 00:36:47,240 bunu çox məşhur, çox yaxşı bir yoldur müasir dildə yüksək səviyyədə şeylər. 656 00:36:47,240 --> 00:36:50,270 Lakin bu da cür çətindir ilk dəfə ətrafında baş kesmek. 657 00:36:50,270 --> 00:36:52,269 Bu baxaraq Belə ki ilk dəfə, ki, OK. 658 00:36:52,269 --> 00:36:56,740 Yalnız mənbə kodu baxmaq və görmək evdə anlamaq bilər. 659 00:36:56,740 --> 00:37:01,050 >> Bu halda Belə ki, ki, bildirin, biz eksponent bir çox yaratmaq istəyirəm 660 00:37:01,050 --> 00:37:04,134 bəzi sabit dəyəri. 661 00:37:04,134 --> 00:37:05,800 Belə ki, bu halda mən bir funksiyası yarada bilərsiniz. 662 00:37:05,800 --> 00:37:09,270 Mən güc zəng etmək üçün gedirəm Həyat 2 yeganə məqsədi 663 00:37:09,270 --> 00:37:15,770 bəzi giriş və ikiqat almaq üçün Bu ki, dəyəri qayıtmaq. 664 00:37:15,770 --> 00:37:21,210 Mən burada Qeyd edək ki, məlumatların bir növü qəbul. 665 00:37:21,210 --> 00:37:23,137 Bu x adlı dəyişən olacaq. 666 00:37:23,137 --> 00:37:23,970 Bu tipli Double var. 667 00:37:23,970 --> 00:37:26,190 Mən burada ikili qayıtmaq üçün gedirəm. 668 00:37:26,190 --> 00:37:29,100 Mən yalnız gedirəm bir çox səmimi, olduqca 669 00:37:29,100 --> 00:37:32,650 bu dəyər misli sadəlövh yol. 670 00:37:32,650 --> 00:37:35,600 Mən sizə niyə bu göstərmək lazımdır yalnız ikinci faydalıdır. 671 00:37:35,600 --> 00:37:40,418 >> Bu sıra ki, burada edək yenidən. 1 şey, dot üçün 672 00:37:40,418 --> 00:37:44,130 o deməkdir ki, dot dot, 2, Bu loop iki dəfə davam edəcək. 673 00:37:44,130 --> 00:37:46,480 Amma bu dummy dəyişən təmsil edir. 674 00:37:46,480 --> 00:37:49,650 Mən, həqiqətən, fikrində deyiləm deməkdir hər yerdə ki, dəyişən istifadə 675 00:37:49,650 --> 00:37:51,070 bu loop daxilində. 676 00:37:51,070 --> 00:37:55,380 Mən yalnız bu xətt istəyirəm kodu iki dəfə çalıştırmak üçün, 677 00:37:55,380 --> 00:37:58,980 bilmək ehtiyacı olmadan ki, sıra dəyəri. 678 00:37:58,980 --> 00:38:02,570 >> Bu halda mən nəticə çalışan alıram So dəfə olan mahiyyətcə iki dəfə x 679 00:38:02,570 --> 00:38:06,560 Mən bu dəyər squaring edirəm deməkdir. 680 00:38:06,560 --> 00:38:10,230 Bu olur biz gözləmək kimi çalışır. 681 00:38:10,230 --> 00:38:16,410 2 Power, bir dəyər keçən 2.0 bizə 4 bir çıxış verir. 682 00:38:16,410 --> 00:38:18,810 10.24 3.2 işləyir. 683 00:38:18,810 --> 00:38:22,660 >> İndi biz oxşar edə bilərsiniz 3 güc şey. 684 00:38:22,660 --> 00:38:25,330 Amma indi yalnız üçündür dəyişdirmək. 685 00:38:25,330 --> 00:38:28,840 1-ci dummy dəyişən üçün 3 vasitəsilə, 3 dəfə çoxaltmaq 686 00:38:28,840 --> 00:38:29,830 və eyni şey. 687 00:38:29,830 --> 00:38:32,240 >> Belə ki, bu bir az göstərdi hiss edə bilər. 688 00:38:32,240 --> 00:38:34,270 Amma əhəmiyyətli var burada bir şey olan 689 00:38:34,270 --> 00:38:37,770 bu baxaraq ki, iki funksiyaları var 690 00:38:37,770 --> 00:38:43,600 müxtəlif yalnız bir şey, olan intervalında bu dəyəri. 691 00:38:43,600 --> 00:38:46,910 Bu iki haqqında başqa hər şey funksiyaları, 3 güc və 2 güc, 692 00:38:46,910 --> 00:38:50,440 ki, əslində, eyni çünki Onlar eyni şəkildə işləyir. 693 00:38:50,440 --> 00:38:53,460 >> Bu nöqtədə, bir az belə alarm bell gediş edilməlidir. 694 00:38:53,460 --> 00:38:56,200 Ümid edirəm sizə deyə nəyi, Bilirsiniz, bu bir az hiss edir 695 00:38:56,200 --> 00:38:59,250 səy təkrarlanması kimi. 696 00:38:59,250 --> 00:39:02,950 Yəqin ki, bir yol ki, mən var Bu bütün içine edə 697 00:39:02,950 --> 00:39:06,630 və funksiyası təmin və ya bir funksiyası yaratmaq 698 00:39:06,630 --> 00:39:11,550 məhz mən olmadan istədiyiniz nə aydın onu yazın ehtiyacı. 699 00:39:11,550 --> 00:39:15,732 Bu nə güc bir bağlanması bizə imkan verir. 700 00:39:15,732 --> 00:39:16,940 Belə ki, bu nəzər salaq. 701 00:39:16,940 --> 00:39:18,700 Mən bir neçə sərf edəcəyik Bu dəqiqə, bu, çünki 702 00:39:18,700 --> 00:39:20,310 Swift üçün olduqca vacibdir. 703 00:39:20,310 --> 00:39:22,900 Biz bu hər zaman görürük. 704 00:39:22,900 --> 00:39:24,550 Biz bir funksiyası müəyyən olacaq. 705 00:39:24,550 --> 00:39:26,380 Bu powerOf adlandırmaq olacaq. 706 00:39:26,380 --> 00:39:29,470 Bu qəbul olacaq parametri növü Int y çağırıb. 707 00:39:29,470 --> 00:39:32,220 Amma qaytarılması növü nəzər. 708 00:39:32,220 --> 00:39:38,730 qaytarılması növü olaraq, parantez, Double Double arrow. 709 00:39:38,730 --> 00:39:43,370 Bu funksiya o deməkdir ki, bu funksiya powerOf, 710 00:39:43,370 --> 00:39:46,550 bir funksiyası qayıdır. 711 00:39:46,550 --> 00:39:50,845 Ki, ikiqat qəbul edir və ikiqat qaytarılması. 712 00:39:50,845 --> 00:39:53,720 Belə ki, crazy cür görünə bilər, lakin bir az aşağı diyirləyin bildirin 713 00:39:53,720 --> 00:39:55,060 və nə görmək üçün baxmaq. 714 00:39:55,060 --> 00:39:57,910 Biz bu funksiya powerOf daxilində istəyirik. 715 00:39:57,910 --> 00:40:00,760 Biz yeni funksiya yaratmaq edirik exponentiator adlı, 716 00:40:00,760 --> 00:40:02,900 lakin bu nə etməz. 717 00:40:02,900 --> 00:40:06,410 >> Bu var Qeyd edək ki, x giriş dəyəri. 718 00:40:06,410 --> 00:40:09,910 Və bir Double edir və ikiqat qaytarılması. 719 00:40:09,910 --> 00:40:16,320 Bu eyni kodu edir ki, biz 2 dəyəri istisna olmaqla, yuxarıda gördüm 720 00:40:16,320 --> 00:40:20,060 3 və ya dəyəri, ki, ki, intervalında bağlı yuxarı, 721 00:40:20,060 --> 00:40:23,210 ilə əvəz edilmişdir y bu dəyər olan 722 00:40:23,210 --> 00:40:27,230 ilkin parametri idi Bizim powerOf funksiyası. 723 00:40:27,230 --> 00:40:31,700 Və bu nöqtədə, biz exponentiator qayıtmaq. 724 00:40:31,700 --> 00:40:33,345 Biz funksiyası qaytarılması edirik. 725 00:40:33,345 --> 00:40:36,300 726 00:40:36,300 --> 00:40:39,550 >> Bu cür bir az mind əsən kimi. 727 00:40:39,550 --> 00:40:44,360 Amma nə təsəvvür edək Mən bu funksiyası zəng zaman powerOf 728 00:40:44,360 --> 00:40:47,610 və 2 kimi bəzi dəyəri keçir. 729 00:40:47,610 --> 00:40:50,020 Bu o deməkdir ki, İndi dəyəri var 730 00:40:50,020 --> 00:40:55,130 Bu dəyər o deməkdir ki, y 2, bu exponentiator funksiyası y 731 00:40:55,130 --> 00:40:56,410 ki, dəyəri 2 olacaq. 732 00:40:56,410 --> 00:41:01,290 Amma bu qaytarılması alıram exponentiator fəaliyyət göstərir. 733 00:41:01,290 --> 00:41:05,900 >> Belə ki, Swift I deyir qeyd Bu halda yaratmışdır. 734 00:41:05,900 --> 00:41:10,550 kvadrat, bir tərif edək ikiqat qəbul bir funksiyası 735 00:41:10,550 --> 00:41:12,610 və ikiqat qaytarır. 736 00:41:12,610 --> 00:41:16,590 Mən bir funksiyası yaratmışdır meydanların bir şey ki, 737 00:41:16,590 --> 00:41:19,782 burada bu mexanizmi istifadə edərək. 738 00:41:19,782 --> 00:41:22,490 Və həqiqətən neler var bu funksiyanı qayıdır ki, 739 00:41:22,490 --> 00:41:26,390 exponentiator, lakin bu dəyər y daxilində bükülür. 740 00:41:26,390 --> 00:41:31,080 Və indi hər zaman istifadə dəyişən və ya bu daimi adlı 741 00:41:31,080 --> 00:41:35,180 kvadrat, bu gedir bir funksiyası kimi davranmaq. 742 00:41:35,180 --> 00:41:39,960 Və mən o dəyişən zəng edə bilərsiniz Mən bir funksiyası zəng, 743 00:41:39,960 --> 00:41:43,830 və onu bir sıra keçir, Bu halda 3 kimi. 744 00:41:43,830 --> 00:41:45,910 Mən sonra bu dəyər kvadrat olacaq. 745 00:41:45,910 --> 00:41:53,340 Belə ki, 3 sonra olacaq kvadrat Biz burada görə bilərsiniz kimi, 9 olur. 746 00:41:53,340 --> 00:41:56,530 >> Həqiqətən crazy, lakin bu artıq Mənə imkan verir 747 00:41:56,530 --> 00:41:59,040 digər powerOf funksiyaları yaratmaq. 748 00:41:59,040 --> 00:42:03,680 Mən OK, yaxşı indi istəyirəm, demək olar Like yeni funksiya yaratmaq, powerOf (3), 749 00:42:03,680 --> 00:42:06,290 və o mağaza daimi adlı kub. 750 00:42:06,290 --> 00:42:10,220 İndi kub olacaq sonra olacaq, ayrı-ayrı funksiyası 751 00:42:10,220 --> 00:42:14,800 giriş və kub kimi bəzi dəyəri almaq biz alt xətt göründüyü kimi dəyər 752 00:42:14,800 --> 00:42:16,420 burada. 753 00:42:16,420 --> 00:42:18,590 2 kub 8 nəticə gedir. 754 00:42:18,590 --> 00:42:21,330 755 00:42:21,330 --> 00:42:22,680 >> İnşallah olduqca səliqəli stuff. 756 00:42:22,680 --> 00:42:25,920 Siz əvvəl bu görməmişəm. 757 00:42:25,920 --> 00:42:29,990 Mən bağlayırlar baxmaq üçün təşviq və bir az daha bu araşdırmaq. 758 00:42:29,990 --> 00:42:33,570 Biz bir çox həqiqətən güclü stuff görmək oldu JavaScript və bəzi digər dillərdə. 759 00:42:33,570 --> 00:42:37,160 Bu, həqiqətən, vacibdir həmçinin API dərk 760 00:42:37,160 --> 00:42:38,620 biz yalnız ikinci almaq lazımdır ki,. 761 00:42:38,620 --> 00:42:39,456 Bəli? 762 00:42:39,456 --> 00:42:43,740 >> Auditoriya: zaman nə powerOf (2), mötərizə, sonra 763 00:42:43,740 --> 00:42:48,764 başqa mötərizə, başqa input-- əsasən kvadrat əvəz edirik. 764 00:42:48,764 --> 00:42:50,930 DAN AMRMENDARIZ: Belə ki, baxmaq Burada son xətt. 765 00:42:50,930 --> 00:42:55,930 Bu, həqiqətən, tamamilə mümkündür Siz təklif zəncirləmə bunu. 766 00:42:55,930 --> 00:43:00,990 Belə ki, powerOf (5) gedirik o deməkdir ki, burada 5 bir exponentiator var. 767 00:43:00,990 --> 00:43:04,160 Belə ki, bu mahiyyətcə olacaq beşinci hakimiyyətə 4 eyni şey, 768 00:43:04,160 --> 00:43:07,200 biz eksponent yaratdıq, çünki beşinci hakimiyyətə fəaliyyət, 769 00:43:07,200 --> 00:43:09,920 və biz daxil keçən edirik ki, dəyəri 4 fəaliyyət göstərir. 770 00:43:09,920 --> 00:43:12,619 Və biz dəyər almaq biz, 1024 gözləyirik. 771 00:43:12,619 --> 00:43:14,785 Auditoriya: Və bir deyil bu daha asan edir, belə ki, ad 772 00:43:14,785 --> 00:43:16,570 hər hansı kvadrat oxumaq. 773 00:43:16,570 --> 00:43:17,903 >> DAN AMRMENDARIZ: Sağ, dəqiq. 774 00:43:17,903 --> 00:43:21,120 Mən yalnız onu qoymaq əvvəl Belə ki, Burada belə bir sabit daxil 775 00:43:21,120 --> 00:43:23,808 Bu ki, asan bu adı istifadə. 776 00:43:23,808 --> 00:43:24,308 Bəli? 777 00:43:24,308 --> 00:43:26,942 >> Auditoriya: Bu əhatədə powerOf, bu hissəsi 778 00:43:26,942 --> 00:43:30,774 proqramlaşdırma dili yol fərqli olaraq 779 00:43:30,774 --> 00:43:33,952 [Işitilemez] powerOf hesab? 780 00:43:33,952 --> 00:43:35,660 DAN AMRMENDARIZ: Belə ki, bu halda, powerOf 781 00:43:35,660 --> 00:43:39,280 sadəcə adı Mən burada müəyyən funksiyası. 782 00:43:39,280 --> 00:43:41,801 Belə ki, xas deyil dil özü, 783 00:43:41,801 --> 00:43:43,550 lakin əvəzinə, yalnız var bir funksiyası 784 00:43:43,550 --> 00:43:45,628 ki, adı mən bu adı verir, çünki. 785 00:43:45,628 --> 00:43:48,770 786 00:43:48,770 --> 00:43:51,920 Hər hansı digər suallar? 787 00:43:51,920 --> 00:43:52,800 Oldu. 788 00:43:52,800 --> 00:43:54,750 >> İndi bu böyükdür. 789 00:43:54,750 --> 00:43:58,170 Amma bir görmək fikrində deyilik bağlanması funksiyaları çox ki, 790 00:43:58,170 --> 00:44:03,440 müəyyən harada daxilində bu kimi bir funksiyası, bir funksiyası. 791 00:44:03,440 --> 00:44:04,320 Və siz bunu edə bilərsiniz. 792 00:44:04,320 --> 00:44:06,430 Amma bu cür deyil həqiqətən zəruri, sağ? 793 00:44:06,430 --> 00:44:09,189 Mən bu müəyyən niyə Like funksiyası adlanır exponentiator 794 00:44:09,189 --> 00:44:10,480 və sonra dərhal geri. 795 00:44:10,480 --> 00:44:15,220 Niyə bilməz Mən dərhal Bu funksiya qayıtmaq? 796 00:44:15,220 --> 00:44:18,890 >> Və əslində, bu dəqiq deyil adlı bir anlayış arxasında ideyası 797 00:44:18,890 --> 00:44:22,410 anonim funksiyaları, anonim funksiyaları həqiqətən deyil 798 00:44:22,410 --> 00:44:25,270 çünki onlar bir adı var bir var ehtiyac yoxdur. 799 00:44:25,270 --> 00:44:28,700 Və bu halda, 7B, biz dəqiq ki, tapa bilərsiniz. 800 00:44:28,700 --> 00:44:31,470 Bu, bütün eyni kod eyni şey yoxdur 801 00:44:31,470 --> 00:44:35,570 lakin indi biz belə yüngül onu dəyişib etdik bu powerOf funksiyası dərhal 802 00:44:35,570 --> 00:44:37,750 bir funksiyası qaytarır. 803 00:44:37,750 --> 00:44:44,150 Qayıtdıqdan sonra bildirək ki, açıq buruq bracket var. 804 00:44:44,150 --> 00:44:46,410 Bu giriş Double gözləyirik oldu. 805 00:44:46,410 --> 00:44:48,560 Bu çıxış Double gözləyirik oldu. 806 00:44:48,560 --> 00:44:52,175 Və sonra söz kodu özü ayırır. 807 00:44:52,175 --> 00:44:53,550 Belə ki, bu anonim funksiyası var. 808 00:44:53,550 --> 00:44:57,030 Bu, faktiki olaraq isə, bir adı yoxdur əvvəl exponentiator adlanırdı. 809 00:44:57,030 --> 00:45:00,229 Amma biz yalnız həqiqətən, gördüm exponentiator müraciət etməyib 810 00:45:00,229 --> 00:45:01,270 ki, funksiyası xaricində. 811 00:45:01,270 --> 00:45:02,470 Belə ki, fərqi yox idi. 812 00:45:02,470 --> 00:45:06,300 Belə ki, bu anonim funksiyası Bu adsız çünki sözdə, 813 00:45:06,300 --> 00:45:09,107 lakin hələ də istifadə olunur Bu kodu kontekstində. 814 00:45:09,107 --> 00:45:13,690 815 00:45:13,690 --> 00:45:16,079 >> Mən növbəti bir neçə olanlar inşallah davam 816 00:45:16,079 --> 00:45:17,370 fikrinizi bir az əsən. 817 00:45:17,370 --> 00:45:20,410 Biz bu daha sadələşdirmək bilər. 818 00:45:20,410 --> 00:45:24,490 Astutely idi, çünki əvvəllər diqqət çəkən 819 00:45:24,490 --> 00:45:29,100 bəlkə də həqiqətən, bilirəm Bu kodu inferring, nə 820 00:45:29,100 --> 00:45:31,750 Bu kodu çıxış olacaq. 821 00:45:31,750 --> 00:45:38,180 Və əslində, bu anonim funksiyası, biz əslində məlumatların növləri nəticə çıxarmaq olar. 822 00:45:38,180 --> 00:45:41,650 >> Belə ki, bu bir, biz artıq aydın müəyyən etmək lazımdır 823 00:45:41,650 --> 00:45:44,850 olan oldu məlumatların növü bu funksiyası giriş və çıxış 824 00:45:44,850 --> 00:45:45,890 səbəblərdən bir neçə. 825 00:45:45,890 --> 00:45:51,390 Biz qədər, müəyyən etdik ki, enclosing funksiyası prototip, 826 00:45:51,390 --> 00:45:55,770 məlumatların bu anonim hansı növü funksiyası giriş və çıxış olmalıdır. 827 00:45:55,770 --> 00:45:57,900 Və digər, biz kod nəticə çıxarmaq olar 828 00:45:57,900 --> 00:46:01,930 burada biz qəbul olunur ki, Double növü var giriş 829 00:46:01,930 --> 00:46:03,670 və ikiqat qaytarılması. 830 00:46:03,670 --> 00:46:07,890 >> Biz açıq-aydın deyil ki, burada edək dəlilləri adlarını müəyyən 831 00:46:07,890 --> 00:46:11,220 Bu funksiya qəbul edir. 832 00:46:11,220 --> 00:46:16,180 Və belə ki, biz müraciət edə bilərsiniz görmək $ 0, $ 1 istifadə edərək, bu parametrləri, 833 00:46:16,180 --> 00:46:20,140 s və s asılı olaraq istifadə parametri sayı 834 00:46:20,140 --> 00:46:20,850 bu funksiyası. 835 00:46:20,850 --> 00:46:23,370 836 00:46:23,370 --> 00:46:29,740 >> Bu gedir bir şey deyil bir çox bu açıq buruq bracket görmək 837 00:46:29,740 --> 00:46:32,797 müəyyən bir izlədi $ 0, və sonra bəzi əməliyyat, 838 00:46:32,797 --> 00:46:34,130 və sonra qapalı buruq bracket. 839 00:46:34,130 --> 00:46:38,630 Bu anonim funksiyası bu əməliyyatı həyata keçirir. 840 00:46:38,630 --> 00:46:42,940 Bu parametri harada var Bu tipli inferred deyil. 841 00:46:42,940 --> 00:46:44,860 Ilk parametri $ 0 edir. 842 00:46:44,860 --> 00:46:49,010 Və bəzi əməliyyat ki, $ 0 olur. 843 00:46:49,010 --> 00:46:52,100 >> Auditoriya: dollar işarəsi So , əsasən parametr deməkdir 844 00:46:52,100 --> 00:46:53,429 0 birinci deməkdir? 845 00:46:53,429 --> 00:46:54,720 DAN Armendariz: Bu doğru deyil. 846 00:46:54,720 --> 00:46:59,100 Belə ki, dollar işarəsi əsasən deməkdir parametri və 0 birinci deməkdir. 847 00:46:59,100 --> 00:47:02,760 Amma bu xüsusi işləyir Mən adına deyil bu hal 848 00:47:02,760 --> 00:47:07,940 Mənim anonim funksiyası dəlilləri. 849 00:47:07,940 --> 00:47:11,119 >> Auditoriya: Perl və ya bir şey varmı Orada bu dollar işarəsi, dollar 0? 850 00:47:11,119 --> 00:47:12,702 DAN Armendariz: Üzgünüm, hansı varmı? 851 00:47:12,702 --> 00:47:15,360 Auditoriya: Perl varmı Bu dollar 0, dollar 1 var 852 00:47:15,360 --> 00:47:17,318 DAN Armendariz: mən deyiləm Perl ilə çox tanış, 853 00:47:17,318 --> 00:47:21,340 lakin PHP nə dəyişənlərin müəyyən dollar əlamətləri əsaslanır. 854 00:47:21,340 --> 00:47:26,120 Və bəzi dillər ola bilər bu kimi xüsusiyyətləri var. 855 00:47:26,120 --> 00:47:28,240 Əslində, Swift borc bir bu kimi xüsusiyyətləri çox 856 00:47:28,240 --> 00:47:29,489 Başqa dillərdə bir çox. 857 00:47:29,489 --> 00:47:32,380 Biz bu Python göstərişlər baxın. 858 00:47:32,380 --> 00:47:35,800 Tipli Bu tərif OCaml gəlib görünür. 859 00:47:35,800 --> 00:47:38,932 Və biz yalnız bütün dəstə var müxtəlif dillərdə çox olan stuff. 860 00:47:38,932 --> 00:47:40,640 Bu gözəl biri Swift haqqında hər şeyi 861 00:47:40,640 --> 00:47:43,390 ən yaxşı bir çox edir ki, Dil bir dəstə fikir 862 00:47:43,390 --> 00:47:47,229 və onların hamısını çəkəcək bir super dilinə. 863 00:47:47,229 --> 00:47:49,520 Əslində, əgər mənə imkan verir fikrinizi əsən davam 864 00:47:49,520 --> 00:47:51,000 belə ki, biz bütün bu bunu etdik. 865 00:47:51,000 --> 00:47:56,690 Biz bəlkə də bu bir az sadələşdirmək bilər əlbəttə, ki, həyata tərəfindən bit, 866 00:47:56,690 --> 00:48:02,120 Swift bir eksponent var funksiyası inşa. 867 00:48:02,120 --> 00:48:04,660 Mən Darvin, idxal varsa hansı yalnız kitabxana ki, 868 00:48:04,660 --> 00:48:09,680 İndi, bu funksiyası adlanır POW edir Mən funksiyası mənim güc sadələşdirmək bilər 869 00:48:09,680 --> 00:48:11,830 Aşağıdakı olmalıdır. 870 00:48:11,830 --> 00:48:15,860 Bu qaytarılması olacaq bu anonim funksiyası. 871 00:48:15,860 --> 00:48:17,950 >> Amma bu indi nə qədər sadə oldu. 872 00:48:17,950 --> 00:48:22,780 Bu anonim funksiyası ki, məlumatların bir növü qəbul edir, 873 00:48:22,780 --> 00:48:26,600 və bir olacaq dəlil xüsusi, 874 00:48:26,600 --> 00:48:29,320 növü Double edir ki, $ 0 müraciət. 875 00:48:29,320 --> 00:48:32,680 Bu bir növü Double qayıtmaq üçün gedir. 876 00:48:32,680 --> 00:48:35,760 Amma geri bəyanat İndi gizli deyil. 877 00:48:35,760 --> 00:48:39,990 >> Və bu dəqiq stil ki, , Swift çox, çox yayılıb 878 00:48:39,990 --> 00:48:40,790 bütün yer üzərində. 879 00:48:40,790 --> 00:48:43,190 Biz bu görmək olacaq Swift hər zaman. 880 00:48:43,190 --> 00:48:46,150 Beləliklə, mən bu bütün göstərən alıram Bu sintaksis çünki. 881 00:48:46,150 --> 00:48:49,070 Bu, çox ümumi onu deməkdir ki, görmək 882 00:48:49,070 --> 00:48:51,420 anonim funksiyası ki, həyata 883 00:48:51,420 --> 00:48:54,640 bu dəlilləri bəzi əməliyyat. 884 00:48:54,640 --> 00:48:56,940 Və gizli qaytarılması var. 885 00:48:56,940 --> 00:49:01,850 Belə ki, bu, tamamilə eyni şeydir Bizi burada, bu demək üçün. 886 00:49:01,850 --> 00:49:05,730 887 00:49:05,730 --> 00:49:08,150 >> Bu buruq Çünki bracket, bir funksiyası var 888 00:49:08,150 --> 00:49:10,480 bu əməliyyat istəyirik ilk mübahisə. 889 00:49:10,480 --> 00:49:12,170 Biz ki, geri olacaq. 890 00:49:12,170 --> 00:49:14,815 Amma bu xarici qayıdacaqsınız ki, bütün funksiyası qaytarılması, 891 00:49:14,815 --> 00:49:19,855 ki, bütün anonim funksiyası biz yalnız yaratdıq ki. 892 00:49:19,855 --> 00:49:21,689 Hər hansı digər suallar? 893 00:49:21,689 --> 00:49:23,980 Bütün sağ, mən əgər bilmirəm Sizlərin bu hazırıq 894 00:49:23,980 --> 00:49:27,455 lakin biz Swift hətta crazier bilərsiniz. 895 00:49:27,455 --> 00:49:28,560 Hazır edirsiniz? 896 00:49:28,560 --> 00:49:29,930 OK, bu böyükdür. 897 00:49:29,930 --> 00:49:35,310 >> İndi biz, həqiqətən, imkanı var üçün, Swift, çünki necə modul 898 00:49:35,310 --> 00:49:39,650 protokol əsasında necə və bu, var öz freaking operatorları müəyyən edir. 899 00:49:39,650 --> 00:49:44,060 Bu halda kimi, biz idi heç bir yaxşı exponentiation-- üçün operator, 900 00:49:44,060 --> 00:49:47,990 bir şey səlahiyyətləri həyata keçirilməsi üçün. 901 00:49:47,990 --> 00:49:53,632 Amma, Swift, yeni müəyyən edə bilərsiniz dəqiq ki, yoxdur operator. 902 00:49:53,632 --> 00:49:55,590 Belə ki, bu halda var burada sintaksis bir dəstə. 903 00:49:55,590 --> 00:49:59,980 Və mən ona baxmaq üçün imkan lazımdır evdə bu baxdığımız zaman. 904 00:49:59,980 --> 00:50:06,890 Amma biz bu infix müəyyən edilir operator, **, daha sonra bizə imkan verəcək ki, 905 00:50:06,890 --> 00:50:09,840 nə müəyyən funksiyası ** həqiqətən 906 00:50:09,840 --> 00:50:15,010 , sol əlini qəbul etmir yan və sağ tərəfdən, 907 00:50:15,010 --> 00:50:21,190 və sonra ki, eksponent qayıtmaq sağ sol tərəfdən. 908 00:50:21,190 --> 00:50:24,850 >> Və indi qəflətən I bütün yeni surət yaratmışdır. 909 00:50:24,850 --> 00:50:29,490 Belə ki, 2 ** 3 üçüncü hakimiyyətə 2 deməkdir. 910 00:50:29,490 --> 00:50:34,420 [Mind əsən SES] Bu by özü kimi ola etməlidir 911 00:50:34,420 --> 00:50:37,960 OK, vida C. gedirəm Swift bütün yol. 912 00:50:37,960 --> 00:50:38,740 Bu əladı. 913 00:50:38,740 --> 00:50:40,140 Bu olduqca fantastik deyil. 914 00:50:40,140 --> 00:50:42,240 >> Baxmayaraq ki, bu böyük bir nümunəsidir. 915 00:50:42,240 --> 00:50:45,570 Amma bir dəfə kənarda heç vaxt Bu misal əslində 916 00:50:45,570 --> 00:50:46,800 Öz operator müəyyən edilmişdir. 917 00:50:46,800 --> 00:50:49,710 Amma hələ ki, göstərir Swift hakimiyyəti çox 918 00:50:49,710 --> 00:50:54,050 və bu həqiqətən nə həqiqətən çox sərin. 919 00:50:54,050 --> 00:50:55,832 Bəli, OK? 920 00:50:55,832 --> 00:50:57,790 Auditoriya: Siz değilseniz Öz operator müəyyən, 921 00:50:57,790 --> 00:51:02,940 Siz təsadüfən deyil bilirik necə cəhd və ki, bir operator yaratmaq 922 00:51:02,940 --> 00:51:06,040 C yerdə olan kimi Swift haradasa gizli, 923 00:51:06,040 --> 00:51:12,210 bir qaranlıq kimi ki, əvvəl görmüşəm bilər. 924 00:51:12,210 --> 00:51:15,050 >> DAN Armendariz: Siz çalışdığınız əgər Belə ki, Öz operatorları müəyyən etmək, 925 00:51:15,050 --> 00:51:20,970 müəyyən riski var mövcud operator üzərində bir. 926 00:51:20,970 --> 00:51:24,870 Ki, ətraflı bir səviyyədə ki, gider Edirəm ki, biz artıq getmək üçün vaxt düşünmürəm. 927 00:51:24,870 --> 00:51:27,620 Amma ki, bir risk edir. 928 00:51:27,620 --> 00:51:31,320 Və çox səbəbi əslində Mən caret simvolu istifadə etməyən 929 00:51:31,320 --> 00:51:36,210 gücümüz yazaraq etdiyiniz zaman, biz adətən 4 az caret 5 və ya bir şey istifadə 930 00:51:36,210 --> 00:51:40,560 kimi, yalnız biz olduğunuzda Arkadaşları və ya hər hansı Gchatting. 931 00:51:40,560 --> 00:51:43,660 Amma bu halda, həqiqətən bir toqquşma səbəb olardı. 932 00:51:43,660 --> 00:51:46,450 Və mən yalnız çünki yol Mən bu halda bilmək baş 933 00:51:46,450 --> 00:51:50,430 ki, toqquşma səbəb ki. 934 00:51:50,430 --> 00:51:52,270 >> Oldu. 935 00:51:52,270 --> 00:51:55,080 İndi təəssüf ki, üçün son yeddi dəqiqə, 936 00:51:55,080 --> 00:51:57,410 Mən əsən saxlamaq lazımdır Ürəyinizdə bir az. 937 00:51:57,410 --> 00:52:00,230 Mənə sizə göstərmək üçün imkan verir Bəzi başqa şeylər həmçinin. 938 00:52:00,230 --> 00:52:03,710 >> Biz sizə bu fikri göstərilən etdik bu anonim funksiyaları olan, 939 00:52:03,710 --> 00:52:07,040 sizə imkan verir bu bağlayırlar cür ətrafında funksiyaları keçir. 940 00:52:07,040 --> 00:52:08,100 Siz onları dəyişə bilərsiniz. 941 00:52:08,100 --> 00:52:09,490 Siz onları manipulyasiya edə bilər. 942 00:52:09,490 --> 00:52:11,790 Siz crazy məhsullarının bütün növ edə bilərsiniz. 943 00:52:11,790 --> 00:52:14,850 >> Amma başqa bir şey ki, faydalı olmaq olur 944 00:52:14,850 --> 00:52:19,740 qabiliyyəti, fərqli üçün kimi bu funksiyaları qaytarılması 945 00:52:19,740 --> 00:52:25,146 bir funksiyası, bir funksiyası keçmək başqa funksiyası bir parametri kimi. 946 00:52:25,146 --> 00:52:30,430 Siz yer üzündə, nə də düşünür ola bilər Hesab edirəm ki, kimi bir şey istəyirsiniz? 947 00:52:30,430 --> 00:52:33,660 >> Yaxşı, mən istəyirəm ki, deyək Bu operator almaq ki, mən 948 00:52:33,660 --> 00:52:40,260 işləyib belə ağır yaratmaq və tətbiq etmək müxtəlif nömrələr bir dəstə üçün 949 00:52:40,260 --> 00:52:41,770 bir sıra. 950 00:52:41,770 --> 00:52:46,700 Belə ki, bu halda mən bir sıra var 1, 4, 7, 2, 5, 10, 56 integers--. 951 00:52:46,700 --> 00:52:48,080 Mən onlara bütün ikiqat artırmaq istəyirik. 952 00:52:48,080 --> 00:52:50,430 yol ki, biz adətən olardı yalnız yazmaq üçün nə 953 00:52:50,430 --> 00:52:53,440 loop üçün sadə Onların bütün iterates 954 00:52:53,440 --> 00:52:57,140 və bir növ çıxış onların üzərində kvadrat əməliyyat, 955 00:52:57,140 --> 00:53:02,700 yeni o yeni dəyərlər giren dəyişən, daha doğrusu, burada yeni array. 956 00:53:02,700 --> 00:53:07,370 Və çıxdı dəyəri Nəticədə, həmin seriallarda bütün 957 00:53:07,370 --> 00:53:10,200 daha doğrusu o bütün elementləri artıq kvadrat. 958 00:53:10,200 --> 00:53:12,680 >> Və biz eyni edə bilər bu cubing üçün bir şey, 959 00:53:12,680 --> 00:53:15,360 lakin bir az həyəcan zəng olmalıdır off gedir 960 00:53:15,360 --> 00:53:17,360 bəlkə var olduğunu söyləyən bir şəkildə, biz 961 00:53:17,360 --> 00:53:19,860 Bu bir az asanlaşdırmaq edə bilərsiniz. 962 00:53:19,860 --> 00:53:21,130 Və əslində var. 963 00:53:21,130 --> 00:53:25,320 Biz yaratmaq bilər imkan verir bir funksiyası 964 00:53:25,320 --> 00:53:28,350 bir yırtıcı, bir funksiyası kimi qəbul etmək olar? 965 00:53:28,350 --> 00:53:30,350 Bu halda, belə ki, almaq bu dəlilləri baxmaq. 966 00:53:30,350 --> 00:53:33,220 Biz ikiqat siyahısını qəbul olacaq. 967 00:53:33,220 --> 00:53:35,030 Və sonra biz gedirik bir funksiyası qəbul 968 00:53:35,030 --> 00:53:40,990 ki, f adlı dəyişən gedir ikiqat almaq və ikiqat qayıtmaq üçün. 969 00:53:40,990 --> 00:53:43,320 Və bütün çıxış bütün bu funksiyanın 970 00:53:43,320 --> 00:53:47,310 adlı Mapper gedir ikiqat adlı bir sıra qayıtmaq. 971 00:53:47,310 --> 00:53:52,380 >> Bu sonra mənə imkan verir nə ki, siyahı üzərində təkrarlamaq deyil 972 00:53:52,380 --> 00:53:56,350 indi eyni şey, lakin hər funksiyası tətbiq 973 00:53:56,350 --> 00:53:58,970 ki, siyahıda fərdi dəyərlər. 974 00:53:58,970 --> 00:54:00,750 Beləliklə, mən həqiqətən nə f bilmirəm. 975 00:54:00,750 --> 00:54:02,010 Bu, mənim üçün fərqi yoxdur. 976 00:54:02,010 --> 00:54:06,530 Amma bir Double edir belə uzun kimi, bu barədə bəzi əməliyyatı reallaşdıran 977 00:54:06,530 --> 00:54:08,640 və sonra qaytarır bir Cüt, Mən sonra olacaq 978 00:54:08,640 --> 00:54:13,415 arasında funksiyası xəritəsi edə siyahıda hər bir element. 979 00:54:13,415 --> 00:54:16,270 980 00:54:16,270 --> 00:54:20,930 >> Və proqramlaşdırma bu növü adlı ali məqsədi funksiyaları, 981 00:54:20,930 --> 00:54:24,440 biz funksiyaları keçən edirik ətrafında parametrləri kimi 982 00:54:24,440 --> 00:54:26,430 və funksiyaları ilə şeyler. 983 00:54:26,430 --> 00:54:29,640 Bu bütün bunlar alaraq kimi sort var biz CS50 öyrəndim fikir 984 00:54:29,640 --> 00:54:31,390 və sort onlara alaraq növbəti səviyyəyə. 985 00:54:31,390 --> 00:54:34,140 Və bu CS51 style stuff var. 986 00:54:34,140 --> 00:54:37,080 Və belə ki, biz dərin getmək lazımdır kimi siniflərdə daha çox. 987 00:54:37,080 --> 00:54:38,930 >> Amma bu da Burada əhəmiyyətli Çünki biz 988 00:54:38,930 --> 00:54:42,010 funksiyaları bir çox görürük Swift istifadə olunur ki, 989 00:54:42,010 --> 00:54:45,590 ki, mahiyyətcə yoxdur Bu, biz var 990 00:54:45,590 --> 00:54:48,300 bəzi nömrələri, nömrələri bəzi array. 991 00:54:48,300 --> 00:54:50,850 Biz bu keçmək olacaq Bizim Mapper daxil array. 992 00:54:50,850 --> 00:54:55,770 Və biz də olacaq bəzi funksiyası, keçmək 993 00:54:55,770 --> 00:54:57,950 biz artıq burada müəyyən etdik. 994 00:54:57,950 --> 00:54:59,690 Bu kvadrat olacaq. 995 00:54:59,690 --> 00:55:02,220 Və biz sonra olacaq bu nömrələr bütün kvadrat 996 00:55:02,220 --> 00:55:04,710 və bu nəticə ki saxlamayın. 997 00:55:04,710 --> 00:55:07,280 998 00:55:07,280 --> 00:55:11,000 >> Belə ki, bu halda biz müəyyən etdik bizim öz funksiyası Mapper çağırıb. 999 00:55:11,000 --> 00:55:15,370 Amma bu dəqiq şey, Əslində, Swift daxil. 1000 00:55:15,370 --> 00:55:18,960 Bir sıra var funksiyaları xəritəsi çağırıb. 1001 00:55:18,960 --> 00:55:21,520 Bir xəritə funksiyası var, bir funksiyası azaltmaq var, 1002 00:55:21,520 --> 00:55:25,630 və filter funksiyası var, mahiyyətcə funksiyaları tətbiq edən 1003 00:55:25,630 --> 00:55:30,782 bir hər bir element bir şəkildə onları dəyişdirmək edin. 1004 00:55:30,782 --> 00:55:34,510 >> Auditoriya: Siz dəyişdirir olunur So başqa formata data 1005 00:55:34,510 --> 00:55:36,134 bir funksiya vasitəsilə 1006 00:55:36,134 --> 00:55:37,050 DAN Armendariz: Sağ. 1007 00:55:37,050 --> 00:55:39,420 Bəli, belə funksiyası biz qəbul edirik ki, 1008 00:55:39,420 --> 00:55:41,790 bir şəkildə data dəyişdirir. 1009 00:55:41,790 --> 00:55:44,700 Bu halda, biz ya idi bu squaring, və ya biz bunu cubing idi, 1010 00:55:44,700 --> 00:55:50,060 və ya, həqiqətən, biz çıxış edə bilər bütün bu barədə heç bir əməliyyat. 1011 00:55:50,060 --> 00:55:54,150 >> Amma mənə sonra necə göstərmək bildirin praktikada baxmaq üçün gedir. 1012 00:55:54,150 --> 00:55:56,681 Və yenə, mən çalışan alıram vaxt bit. mən deyiləm 1013 00:55:56,681 --> 00:55:59,430 bütün getmək mümkün olacaq burada ətraflı mənbə kodu. 1014 00:55:59,430 --> 00:56:00,721 Amma bunu gəlir. 1015 00:56:00,721 --> 00:56:03,850 Biz tezliklə kimi göndərmək lazımdır mümkün bu görüşdən sonra. 1016 00:56:03,850 --> 00:56:07,610 >> Amma bu nəzər alsaq, biz nömrələri bir siyahısı var ki, güman, 1017 00:56:07,610 --> 00:56:10,260 bu nömrələri bir sıra dəyişən adlı nömrələri. 1018 00:56:10,260 --> 00:56:16,670 Sonra biz bu çıxış etmək istəyirəm bu nömrələri filter əməliyyat. 1019 00:56:16,670 --> 00:56:19,730 Belə ki, filter bir yüksəkdir sifariş funksiyası 1020 00:56:19,730 --> 00:56:24,660 də bir sıra və bir funksiyası qəbul edir. 1021 00:56:24,660 --> 00:56:28,760 Və hər element haqqında array, bu funksiyanı yerinə yetirir. 1022 00:56:28,760 --> 00:56:31,990 >> Ki, funksiyası yekunları əgər doğru, bu maddə saxlayır. 1023 00:56:31,990 --> 00:56:36,100 Ki, funksiyası yalan qaytarır, bu maddə üz salır. 1024 00:56:36,100 --> 00:56:40,480 Və sonra bir siyahısını qaytarır ki, sonra bütün edilir 1025 00:56:40,480 --> 00:56:44,360 filtrelenen bu maddələrin. 1026 00:56:44,360 --> 00:56:47,150 >> Belə ki, başqa sözlə, bu eyni fikir, gradebook. 1027 00:56:47,150 --> 00:56:50,800 Biz siniflər bir sıra ola bilər bu dəyər deyilən nömrələri daxil. 1028 00:56:50,800 --> 00:56:55,590 100 və 70, və ola bilər 40, s və s. 1029 00:56:55,590 --> 00:56:59,110 Bu filter yoxdur xəbərdarlıq edir bu ki, sintaktik şəkər ki, 1030 00:56:59,110 --> 00:57:01,310 anonim funksiyası üçün. 1031 00:57:01,310 --> 00:57:05,980 Bu deyərək anonim funksiyası Mən qəbul edirəm parametri 1032 00:57:05,980 --> 00:57:09,690 bu halda, olacaq 70-dən çox 1033 00:57:09,690 --> 00:57:15,837 onda bu o deməkdir ki, doğru qayıdacaq ki, maddə Bu filtre saxlanılır. 1034 00:57:15,837 --> 00:57:17,920 Belə ki, bir az olsun Bu barədə daha konkret. 1035 00:57:17,920 --> 00:57:25,760 Mən ədəd bu array varsa və 100, 70, və 40 ibarətdir 1036 00:57:25,760 --> 00:57:29,730 Mən bu filter çıxış o hər biri əməliyyat. 1037 00:57:29,730 --> 00:57:33,270 Belə ki, ilk bir 100 bu dəyəri. 1038 00:57:33,270 --> 00:57:36,770 100-dən çox və ya bərabər daha 70, doğru olan 1039 00:57:36,770 --> 00:57:41,950 100 saxlanılır o deməkdir ki, bu serialın bu yeni surəti. 1040 00:57:41,950 --> 00:57:44,290 70 də keçir. 1041 00:57:44,290 --> 00:57:46,020 Amma 40 deyil. 1042 00:57:46,020 --> 00:57:54,290 Belə ki, passingCount nə geri elementləri 100 və array var 70-- 1043 00:57:54,290 --> 00:57:57,410 100, vergül, 70. 1044 00:57:57,410 --> 00:57:59,870 Həmin yalnız iki idi saxlanılırdı maddələr. 1045 00:57:59,870 --> 00:58:03,740 Və belə səbəbi mən tez yolu ilə getdi yüksək sifariş bu cür bir çox 1046 00:58:03,740 --> 00:58:08,680 Bu ki, ümumi, çünki şeylər Siz Swift olduqca görəcəksiniz şey 1047 00:58:08,680 --> 00:58:16,810 tez-tez, bəzi əməliyyat reallaşdırır bu anonim funksiyası sintaksis istifadə. 1048 00:58:16,810 --> 00:58:18,450 >> Bəzi cool stuff var. 1049 00:58:18,450 --> 00:58:24,730 Açarları, Swift həqiqətən güclü Mən yalnız crazy, crazy güclü kimi deməkdir. 1050 00:58:24,730 --> 00:58:28,250 Siz keçid istifadə edə bilərsiniz Siz, həqiqətən, onlara müraciət edə bilər 1051 00:58:28,250 --> 00:58:33,160 cür crazy silsilələri, üçün, və kimi xülya heyəti yoxdur. 1052 00:58:33,160 --> 00:58:37,540 >> Amma son bir neçə dəqiqə, Mən uzaq irəli keçmək istəyirəm 1053 00:58:37,540 --> 00:58:46,940 və necə müəyyən bir nümunə göstərmək biz Swift istifadə iOS app yarada bilərsiniz. 1054 00:58:46,940 --> 00:58:49,040 Belə ki, siz yapýyorsun Bu, siz almaq lazımdır 1055 00:58:49,040 --> 00:58:51,990 Apple-nin at-- baxmaq sənədləşdirmə, onlar 1056 00:58:51,990 --> 00:58:56,084 həqiqətən yaxşı Dərsliklər bir çox ilk proqram yaratmaq üçün. 1057 00:58:56,084 --> 00:58:58,250 Mən bunu təşviq ki, onlar sizi, çünki 1058 00:58:58,250 --> 00:59:04,110 nə bütün addımlar məhz vasitəsilə bir iOS proqram yaratmaq üçün basın. 1059 00:59:04,110 --> 00:59:07,290 >> Lakin burada biz bu iOS app var. 1060 00:59:07,290 --> 00:59:10,960 Və bu olduqca sadə app həqiqətən var. 1061 00:59:10,960 --> 00:59:13,840 Mən bu run əgər, mənə göstərmək bildirin Siz bu kimi görünür nə. 1062 00:59:13,840 --> 00:59:19,480 Mahiyyətcə nə bütün var İnternet JSON fayl çıxarmaz 1063 00:59:19,480 --> 00:59:22,300 Mən bir server saxlanılır. 1064 00:59:22,300 --> 00:59:26,310 Və JSON fayl imkan images müəyyən 1065 00:59:26,310 --> 00:59:31,680 Məni vasitəsilə sonra dövrü üçün mənim app, mənim web server images. 1066 00:59:31,680 --> 00:59:32,880 >> Mən burada getNextImage var. 1067 00:59:32,880 --> 00:59:37,100 Bu internet bir resim yükləyir və sonra ekranda göstərilir. 1068 00:59:37,100 --> 00:59:38,200 >> Belə ki, olduqca sadə. 1069 00:59:38,200 --> 00:59:41,550 Amma burada məqsəd göstərmək üçün biz hər şeyi birləşdirmək bilər necə 1070 00:59:41,550 --> 00:59:47,820 CS50 sonuncu neçə həftə faktiki iOS proqram. 1071 00:59:47,820 --> 00:59:53,140 Başqa sözlə, bəlkə bir Siz nə etmək istəyirəm ki, hər şeyi 1072 00:59:53,140 --> 00:59:56,340 iOS proqram var ki, İnternet-dən data çəkmək olar 1073 00:59:56,340 --> 00:59:59,070 və istifadəçi bəzi məlumatları göstərir. 1074 00:59:59,070 --> 01:00:03,130 Ki, tamamilə nöqtəsidir Burada bu mənbə kodu. 1075 01:00:03,130 --> 01:00:07,890 >> Belə ki, haqqında belə bir çox var necə faktiki iOS inkişaf etmək. 1076 01:00:07,890 --> 01:00:12,860 Crazy sintaksis bir çox var biz olduqca hələ görməmişik ki, 1077 01:00:12,860 --> 01:00:15,580 bir sinif kimi, bir sinif həqiqətən edir. 1078 01:00:15,580 --> 01:00:19,470 Biz əsasən iqnor edə bilər dəfə gedir. 1079 01:00:19,470 --> 01:00:23,250 >> Amma biz olan var ki, qeyd Bu şeyi bir sıra ərzində 1080 01:00:23,250 --> 01:00:27,720 biz artıq kimi gördüm ki, xüsusi adları var funksiyaları. 1081 01:00:27,720 --> 01:00:32,650 Və biz o vermək düzgün adları funksiyaları 1082 01:00:32,650 --> 01:00:36,530 ki, iOS gözləyir bu bir az sehrli hiss edir. 1083 01:00:36,530 --> 01:00:40,300 Amma bir yaratmaq zaman iOS proqram var 1084 01:00:40,300 --> 01:00:47,590 xüsusi funksiyası adları var ki, telefon özü tərəfindən deyilir 1085 01:00:47,590 --> 01:00:52,440 proqram cəhd loading kimi əslində proses yaratmaq 1086 01:00:52,440 --> 01:00:54,787 ərizə çalışır. 1087 01:00:54,787 --> 01:00:58,120 Belə ki, yenə, çox şey var ki, mən bizim üçün burada ötürməyə var 1088 01:00:58,120 --> 01:01:00,570 bu barədə xüsusi danışmağa. 1089 01:01:00,570 --> 01:01:06,050 Amma bəlkə baxmaq üçün təşviq digər iOS seminar, həm də bəzi 1090 01:01:06,050 --> 01:01:09,290 Bunu Dərsliklər online izah çox daha yaxşı iş 1091 01:01:09,290 --> 01:01:11,030 xüsusi məlumat. 1092 01:01:11,030 --> 01:01:15,760 >> Amma biz hər şeyi bir neçə görmək olar ki, burada kod maraqlıdır. 1093 01:01:15,760 --> 01:01:17,950 Biz şərhlərdə əgər ki, görürsünüz. 1094 01:01:17,950 --> 01:01:20,400 Yeri gəlmişkən, bir mühüm şərhlərdə əgər haqqında şey 1095 01:01:20,400 --> 01:01:24,860 ki, ətrafında parantez Boolean ifadə isteğe bağlıdır. 1096 01:01:24,860 --> 01:01:30,800 Amma qıvrım aşırma, isteğe deyil nə qədər az və ya kodu bir çox xətləri 1097 01:01:30,800 --> 01:01:32,360 Bir əgər hesabatda var. 1098 01:01:32,360 --> 01:01:38,670 Siz hesabatları əgər ola bilməz Swift da qıvrım aşırma olmadan. 1099 01:01:38,670 --> 01:01:41,000 >> Bu, yaxşı, silly növ edir. 1100 01:01:41,000 --> 01:01:43,910 Amma ki, tarixi səbəbləri var. 1101 01:01:43,910 --> 01:01:46,180 Bu özünüz xilas ehtimal. 1102 01:01:46,180 --> 01:01:49,899 Məsələn bu kimi, siz bilməzsiniz ki, ətrafında qıvrım aşırma aradan qaldırılması 1103 01:01:49,899 --> 01:01:50,440 şərh əgər. 1104 01:01:50,440 --> 01:01:52,730 Həmin əslində tələb olunur. 1105 01:01:52,730 --> 01:01:54,480 Beləliklə, mən təşviq bu bir göz atın. 1106 01:01:54,480 --> 01:01:56,230 Amma bir daha çox var Mən istəyirəm ki, tikintisi 1107 01:01:56,230 --> 01:02:02,640 Swift haqqında göstərir ki, müqayisədə Swift 2.0 yeni 1108 01:02:02,640 --> 01:02:08,460 Swift eski versiyasını, olan budur. 1109 01:02:08,460 --> 01:02:11,620 Mən burada qoymaq idi harada görmək edək? 1110 01:02:11,620 --> 01:02:16,630 >> Belə ki, bu funksiya adlanır fetchJSON, bu funksiya 1111 01:02:16,630 --> 01:02:23,450 ki JSON çəkərək üçün məsuliyyət daşıyır yalnız belə olur URL olan fayl 1112 01:02:23,450 --> 01:02:26,310 Mənim CS50 IDE çalışan olunacaq. 1113 01:02:26,310 --> 01:02:28,580 Mən yalnız Apache başladı orada mənim JSON fayl qoymaq, 1114 01:02:28,580 --> 01:02:32,110 Mən sonra çəkmək üçün edə edirəm istifadə edərək internet data 1115 01:02:32,110 --> 01:02:36,430 bu funksiya və bu URL, olan telefon tərəfindən təmin edilir. 1116 01:02:36,430 --> 01:02:40,490 Bu tərəfindən təmin edir kitabxana zaman istifadə 1117 01:02:40,490 --> 01:02:43,140 Bəzi iOS app inkişaf edirik. 1118 01:02:43,140 --> 01:02:49,690 >> Bu qeyri-adi var ki, burada edək sintaktik tikinti gözətçi çağırıb. 1119 01:02:49,690 --> 01:02:53,530 Və həqiqətən bütün bu deyil Swift təsdiq bir yoldur 1120 01:02:53,530 --> 01:02:56,870 bəzi şeylər var ki, səndən əvvəl görüşüb 1121 01:02:56,870 --> 01:03:00,000 funksiyası qalan ilə davam etdirilir. 1122 01:03:00,000 --> 01:03:04,260 Belə ki, istifadə edərək, ola bilər Bu isteğe növü, 1123 01:03:04,260 --> 01:03:10,530 Mən URL aşkar ola bilər Bu NSURL funksiyası çalışan 1124 01:03:10,530 --> 01:03:16,640 və URL daxil saxlanılması daimi və sonra yoxlanılması 1125 01:03:16,640 --> 01:03:20,820 URL nil idi, görmək çünki isteğe növü qayıtmaq niyyətində idi. 1126 01:03:20,820 --> 01:03:25,660 Bu sıfır idi, onda mən bir səhv çap və sonra qayıtmaq. 1127 01:03:25,660 --> 01:03:29,970 >> Lakin əvəzinə, nə guard imkan verir bizə çox şey etmək 1128 01:03:29,970 --> 01:03:34,550 lakin bu olmasını təmin əslində belə ki, url 1129 01:03:34,550 --> 01:03:38,020 Düzgün NSURL tərəfindən müəyyən edilmişdir. 1130 01:03:38,020 --> 01:03:41,810 Və sonra, əgər bu artıq skips və bu 1131 01:03:41,810 --> 01:03:46,110 Siz davam imkan verir ki, url düzgün müəyyən edilmiş. 1132 01:03:46,110 --> 01:03:48,830 Amma bu halda ki, url düzgün müəyyən deyil, 1133 01:03:48,830 --> 01:03:52,550 bu funksiya bir səhv qaytarır əgər və ya digər gözlənilməz şey 1134 01:03:52,550 --> 01:03:58,030 əslində, bu qarovul tikintinin baş verir sonra çıxış ki, səhv etmək üçün imkan verir 1135 01:03:58,030 --> 01:04:00,390 və dərhal qayıtmaq. 1136 01:04:00,390 --> 01:04:00,890 Bəli? 1137 01:04:00,890 --> 01:04:04,839 >> Auditoriya: Belə ki cür bir sonra başqa əgər kimi? 1138 01:04:04,839 --> 01:04:07,130 DAN Armendariz: Bu cür var bir bəli, sonra başqa əgər kimi 1139 01:04:07,130 --> 01:04:14,200 bu url sonra ki, başqa Bu aşağıdakı hər şey üçün müəyyən. 1140 01:04:14,200 --> 01:04:20,420 Bu sonra, bu qarovul keçir həqiqətən məlumatları ilə dolacaq 1141 01:04:20,420 --> 01:04:29,500 və qalan istifadə Sizin funksiyası mənbə kodu. 1142 01:04:29,500 --> 01:04:33,790 Mən olacaq ki, şübhəli həmçinin bu gözətçi görmək üçün başlamaq. 1143 01:04:33,790 --> 01:04:36,670 Və nəzərə. 1144 01:04:36,670 --> 01:04:46,270 >> Belə ki, yalnız digər bir neçə baxaraq şeylər, burada bu doğru, 1145 01:04:46,270 --> 01:04:53,377 Sizcə, yalnız nə əsasında biz əvvəl söhbət? 1146 01:04:53,377 --> 01:04:56,650 >> Auditoriya: Bu siyahıda run lazımdır düşünürsünüz? 1147 01:04:56,650 --> 01:04:59,100 >> DAN Armendariz: Belə ki, yaxın. 1148 01:04:59,100 --> 01:05:02,360 Bu müəyyən bir funksiyası var. 1149 01:05:02,360 --> 01:05:07,240 Və biz funksiyası giren olunur burada bu funksiya bir arqument kimi. 1150 01:05:07,240 --> 01:05:09,120 >> Auditoriya: nil [işitilemez] əgər. 1151 01:05:09,120 --> 01:05:11,470 Belə ki, sağ, siyahıda var? 1152 01:05:11,470 --> 01:05:15,450 >> DAN Armendariz: səhv nil deyilsə, belə ki, mən hərəkət etmək belə is--. 1153 01:05:15,450 --> 01:05:18,060 Bəli, mən, həqiqətən, görmək bilməz bildirin burada sağa diyirləyin. 1154 01:05:18,060 --> 01:05:23,161 səhv olunur bir dəlildir bu anonim funksiyası keçdi. 1155 01:05:23,161 --> 01:05:24,410 Bu anonim funksiyası var. 1156 01:05:24,410 --> 01:05:25,480 Bu, heç bir adı var. 1157 01:05:25,480 --> 01:05:29,850 Amma biz bu üç qəbul olunur arqumentlər, data, cavab və səhv. 1158 01:05:29,850 --> 01:05:33,590 Və belə ki, etibarsız qayıtmaq üçün gedir bir şey qayıtmaq niyyətində deyil. 1159 01:05:33,590 --> 01:05:37,910 Bu məzmunu edir ki, funksiyası. 1160 01:05:37,910 --> 01:05:41,961 Və sonra biz daxili imkanı var bu dəlilləri hər funksiyası. 1161 01:05:41,961 --> 01:05:45,650 1162 01:05:45,650 --> 01:05:48,679 >> Belə ki, bir qasırğa var dil tur. 1163 01:05:48,679 --> 01:05:50,470 Amma bu ümid, inşallah almaq kimi 1164 01:05:50,470 --> 01:05:54,490 Dərsliklər bəzi nəzər Swift ilə iOS inkişafına xüsusi, 1165 01:05:54,490 --> 01:05:57,481 Siz getmək, xüsusilə də əgər Apple geliştirici web səhifə 1166 01:05:57,481 --> 01:05:59,980 Onlar, həqiqətən, yaxşı bir çox Dərsliklər siz başlamaq üçün. 1167 01:05:59,980 --> 01:06:05,010 Amma söhbət inşallah bu saat sintaksis haqqında özü verib 1168 01:06:05,010 --> 01:06:08,760 Əgər kifayət qədər ki, başlamaq üçün. 1169 01:06:08,760 --> 01:06:12,950 >> Biz bu mənbə bütün göndərmək olacaq seminar saytında kodu 1170 01:06:12,950 --> 01:06:17,800 mümkün, həmçinin slaydlar kimi belə ki, bütün insanlar üçün istinad var. 1171 01:06:17,800 --> 01:06:20,530 Layihələr lakin uğurlar. 1172 01:06:20,530 --> 01:06:23,640 Və gələn üçün çox təşəkkür edirəm. 1173 01:06:23,640 --> 01:06:26,990 >> [Alqış] 1174 01:06:26,990 --> 01:06:28,026