1 00:00:00,000 --> 00:00:03,332 >> [მუსიკის დაკვრა] 2 00:00:03,332 --> 00:00:06,200 3 00:00:06,200 --> 00:00:09,590 >> DAN AMRMENDARIZ ყველას, მივესალმები CS50 სემინარი, 4 00:00:09,590 --> 00:00:11,690 iOS App განვითარების Swift. 5 00:00:11,690 --> 00:00:15,690 მე Dan Armendariz, და მე preceptor კომპიუტერულ მეცნიერებათა აქ ჰარვარდის. 6 00:00:15,690 --> 00:00:21,510 >> და მომდევნო საათი იქნება Whirlwind ტური იმდენი პერსონალი 7 00:00:21,510 --> 00:00:25,160 ამ თემაზე, როგორც ჩვენ ეტევა. 8 00:00:25,160 --> 00:00:29,170 მე პოსტი ყველა კოდის რომ ნახავთ დღეს ონლაინ რეჟიმში. 9 00:00:29,170 --> 00:00:31,990 ჩვენ შეიძლება ვერ შეძლებს რეალურად წავიდეთ მეტი ყველაფერი 10 00:00:31,990 --> 00:00:34,810 რომ მე ვარ, რომ მე ვარ გვიჩვენებს, თუ ამ საათში. 11 00:00:34,810 --> 00:00:37,580 მაგრამ მაინც იმედია მეშვეობით კომენტარი კოდის, 12 00:00:37,580 --> 00:00:40,830 თქვენ გექნებათ ცდილობენ გაერკვნენ, თუ რა ზუსტად ხდება იმ რამ, 13 00:00:40,830 --> 00:00:42,950 რომ ჩვენ არ საკმაოდ მისაღებად. 14 00:00:42,950 --> 00:00:46,970 >> საერთო ჯამში, სტრუქტურა დღევანდელი განხილვა იქნება შემდეგი. 15 00:00:46,970 --> 00:00:52,820 ჩვენ დავიწყებთ აკეთებს ზოგიერთი ძირითადი სინტაქსი ერთად Swift ენის, 16 00:00:52,820 --> 00:00:56,290 შესვლის ზოგიერთი მოწინავე სინტაქსი Swift ენაზე. 17 00:00:56,290 --> 00:00:59,560 იმის გამო, რომ ენის მართლაც, თანამედროვე და ეს 18 00:00:59,560 --> 00:01:02,110 აქვს უამრავი მაღალი დონის თვისებები, რამ, რომ ჩვენ არ გვაქვს 19 00:01:02,110 --> 00:01:06,600 ჩანს C მთელი CS50, ან კიდევ რამდენიმე სხვა ენებზე 20 00:01:06,600 --> 00:01:09,310 რომ დავიწყეთ გამოყენებით ამ CS50, როგორიცაა PHP, 21 00:01:09,310 --> 00:01:12,670 ასე რომ, მე ვაპირებ, რომ უნდა ვეცადოთ, რომ დანერგვა, ასევე რამდენიმე თემა, რომელიც 22 00:01:12,670 --> 00:01:18,580 რომლებიც ეხება უმაღლესი დონის ენებზე რომ თქვენ შეიძლება ვერ ვხედავ სიღრმის CS50, 23 00:01:18,580 --> 00:01:21,380 მაგრამ ნახავთ მოგვიანებით კომპიუტერულ მეცნიერებათა კლასების. 24 00:01:21,380 --> 00:01:25,290 ასე რომ, ეს იქნება მჭიდროდ შეფუთული საათი. 25 00:01:25,290 --> 00:01:28,897 და გთხოვთ მოგერიდებათ მიადევნე თვალი თუ თქვენ გაქვთ რაიმე შეკითხვები. 26 00:01:28,897 --> 00:01:30,730 ასე რომ, თუ თქვენ დაინტერესებული ამით განვითარების 27 00:01:30,730 --> 00:01:34,442 ერთად Swift, ან მართლაც ნებისმიერი iOS app განვითარების, 28 00:01:34,442 --> 00:01:35,900 არსებობს რამდენიმე მოთხოვნები. 29 00:01:35,900 --> 00:01:39,940 პირველ რიგში, თქვენ უნდა იყოს გამოყენებით Mac, გაშვებული მაგალითები 30 00:01:39,940 --> 00:01:43,880 რომ ჩვენ ვაპირებთ იყოს გამოყენებით დღეს, შედარებით ახალი ვერსია OS 31 00:01:43,880 --> 00:01:46,580 X. ამ შემთხვევაში, მე გაშვებული X 10.5. 32 00:01:46,580 --> 00:01:48,600 თქვენ შეიძლება იყოს გაშვებული 10.11 თუ გინდათ. 33 00:01:48,600 --> 00:01:52,430 მაგრამ ყველაფერი, რაც თქვენ ვაპირებთ ხედავთ არის ჩართვის Xcode 7 და მოგვიანებით, 34 00:01:52,430 --> 00:01:56,271 რომელსაც აქვს უახლესი ვერსია საქართველოს Swift, რომელიც Swift 2.0. 35 00:01:56,271 --> 00:01:58,270 ეს არის რეალურად საკმაოდ მნიშვნელოვანი განსხვავება. 36 00:01:58,270 --> 00:02:01,510 ბევრი სინტაქსი აქვს შეიცვალა საკმაოდ მნიშვნელოვნად 37 00:02:01,510 --> 00:02:05,890 რიგ შემთხვევებში საწყისი Swift 1.0, რომელიც გამოიცა გასულ წელს, 38 00:02:05,890 --> 00:02:08,514 to Swift 2.0, რომელიც უბრალოდ გამოვიდა ამ შემოდგომაზე. 39 00:02:08,514 --> 00:02:09,889 ასე რომ, ჩვენ ვაპირებთ, Swift 2.0. 40 00:02:09,889 --> 00:02:13,020 ბევრი რამ, რომ თქვენ მოძებნოთ ონლაინ 41 00:02:13,020 --> 00:02:18,040 როდესაც თქვენ ცდილობთ მიიღოთ დამატებითი ინფორმაცია სხვადასხვა ნივთები, 42 00:02:18,040 --> 00:02:20,710 თქვენ მოისურვეთ მკაფიოდ ძიება Swift 2 43 00:02:20,710 --> 00:02:24,950 ვიდრე მხოლოდ ბარის ძველ Swift რათა დარწმუნებული ვარ, რომ თქვენ სინტაქსი სწორი. 44 00:02:24,950 --> 00:02:26,920 >> ფაქტობრივად, ეს არის ზოგადად ასეა. 45 00:02:26,920 --> 00:02:31,210 აქ არის სწრაფი რაოდენობის განვითარების ხდება Swift ენის 46 00:02:31,210 --> 00:02:35,110 მას შემდეგ, რაც Apple გამოუშვა, მე ვფიქრობ, რა, ეს იყო ცოტა მეტი წლის 47 00:02:35,110 --> 00:02:36,370 ახლა. 48 00:02:36,370 --> 00:02:39,080 და რამ შეიცვალა მკვეთრად იმ დროს. 49 00:02:39,080 --> 00:02:42,160 ასე რომ არ იყოს იმედგაცრუებული იმ შემთხვევაში, თუ, როდესაც თქვენ ეძებს გარშემო 50 00:02:42,160 --> 00:02:48,310 თემები on Swift და როგორ განახორციელოს რაღაც იყენებთ მაგალითად კოდი 51 00:02:48,310 --> 00:02:51,210 ან რამე, რომ არ რეალურად მუშაობა Swift 2.0. 52 00:02:51,210 --> 00:02:53,790 დარწმუნდით, რომ თქვენ ეძებს სპეციალურად, რომ ვერსია 53 00:02:53,790 --> 00:02:58,690 ცდილობენ მინიმუმამდე ეფექტი სხვადასხვა ვერსიები და იმ სახის ნივთები. 54 00:02:58,690 --> 00:03:02,470 >> ვეცდები აღვნიშნო, უბრალოდ ზოგი რამ რომლებიც სხვადასხვა ძველი ვერსიები. 55 00:03:02,470 --> 00:03:03,970 მაგრამ ეს არის ის, რომ ფრთხილად. 56 00:03:03,970 --> 00:03:06,770 ეს, ალბათ, იქნება ერთ-ერთი ყველაზე დიდი ტკივილი 57 00:03:06,770 --> 00:03:11,010 რომ თქვენ გაქვთ Swift პოულობს მაგალითად კოდი, რომელიც არის ძველი, თუნდაც მხოლოდ 58 00:03:11,010 --> 00:03:14,050 რამდენიმე თვის განმავლობაში, ცდილობს გამოიყენოს ეს თქვენი უფრო თანამედროვე პროექტი. 59 00:03:14,050 --> 00:03:15,430 და ეს უბრალოდ არ მუშაობს. 60 00:03:15,430 --> 00:03:18,530 თქვენ მიღების შემდგენელი შეცდომები, სინტაქსი შეცდომები, ყველა სახის გიჟები პერსონალი. 61 00:03:18,530 --> 00:03:21,580 ასე რომ მხოლოდ მოთმინება რომ, და თქვენ იმედია 62 00:03:21,580 --> 00:03:24,200 აქვს საკმაოდ კარგი გამოცდილება ერთად Swift საერთო. 63 00:03:24,200 --> 00:03:28,430 >> ახლა თქვენ შეგიძლიათ რეალურად join-- და იმედი მაქვს, ჩვენ, ფაქტობრივად, ჯერ კიდევ აქვს ამ ამ წლამდე 64 00:03:28,430 --> 00:03:30,910 CS 50 Apple app განვითარების გუნდი, რომელიც 65 00:03:30,910 --> 00:03:34,680 რომელიც საშუალებას გაძლევთ დააყენოთ ნებისმიერი apps რომელიც თქვენ შექმნათ თქვენი iOS მოწყობილობების. 66 00:03:34,680 --> 00:03:39,190 ასე რომ შევხედოთ ამ URL, თუ თქვენ ხართ დაინტერესებული აკეთებს, რომ. 67 00:03:39,190 --> 00:03:41,450 >> ასე რომ, მხოლოდ რამდენიმე რამ Swift თავად. 68 00:03:41,450 --> 00:03:43,580 ეს არის შედგენილი ენაზე. 69 00:03:43,580 --> 00:03:45,870 მაგრამ თქვენ ნახავთ, რომ ზოგიერთი თავისებურება, რომ ჩვენ ვიყენებთ 70 00:03:45,870 --> 00:03:50,650 საშუალებას იძლევა იგი გამოყენებულ იქნას ასევე ცოტა როგორც გაგებული, გზა, ისევე. 71 00:03:50,650 --> 00:03:56,350 >> ბევრი სინტაქსი არის ნასესხები საწყისი C. ის საფუძველზე და დაწერილი C. 72 00:03:56,350 --> 00:04:00,400 ასე რომ, ჩვენ ვხედავთ, რომ არსებობს ბევრი takeaways 73 00:04:00,400 --> 00:04:04,450 თქვენი არსებული ცოდნა საწყისი C, რომ ჩვენ შეგვიძლია პორტი Swift. 74 00:04:04,450 --> 00:04:07,290 >> მაგრამ არსებობს რამ, რომ რათა ის ძალიან განსხვავდება C. 75 00:04:07,290 --> 00:04:08,860 ეს არის ძალიან მკაცრად აკრეფილი. 76 00:04:08,860 --> 00:04:10,380 არსებობს ავტომატური მეხსიერების მართვა. 77 00:04:10,380 --> 00:04:13,170 თქვენ არ აპირებს უნდა გამოიყენოთ malloc და თავისუფალი სადმე. 78 00:04:13,170 --> 00:04:15,110 ის განკუთვნილია ზოგადი. 79 00:04:15,110 --> 00:04:19,480 სხვა სიტყვებით, შეგიძლიათ გამოიყენოთ იგი ყველა სახის კონტექსტში, Apple- ის Watch 80 00:04:19,480 --> 00:04:26,290 to iPhone ყველა გზა მდე OS X, და კიდევ რამდენიმე სერვერები, ზოგიერთი სკრიპტირების. 81 00:04:26,290 --> 00:04:28,400 მაგრამ ჩვენ ვხედავთ, რომ მხარდაჭერა სკრიფტინგის 82 00:04:28,400 --> 00:04:31,360 არ არის იქ კიდევ, როგორც ეს არის სხვა ენებზე. 83 00:04:31,360 --> 00:04:34,930 ასე რომ, სავარაუდოდ, თქვენ უნდა გამოყენებით ეს მხოლოდ განვითარების 84 00:04:34,930 --> 00:04:37,060 თქვენი Mac ან თქვენი iPhone. 85 00:04:37,060 --> 00:04:40,150 >> და მას აქვს ბევრი თანამედროვე მახასიათებლები. 86 00:04:40,150 --> 00:04:43,380 და ბევრი რამ არის პერსონალი, რომ ჩვენ ვაპირებთ, რომ ცდილობენ მიმართოს დღეს, 87 00:04:43,380 --> 00:04:47,590 არამედ ჩვენი თემა, რომ გულწრფელად, ჩვენ შეგვიძლია დაუთმოს მთელი კურსები. 88 00:04:47,590 --> 00:04:50,140 ფაქტობრივად, CS 51, რომელიც არის შესთავაზა მომდევნო სემესტრში, 89 00:04:50,140 --> 00:04:53,990 ყურადღებას ბევრი ამ თემებზე რომ აღწერილია ქვემოთ. 90 00:04:53,990 --> 00:04:56,781 ასე რომ, თქვენ შეგიძლიათ გაატაროთ მთელი სემესტრის გაგება ამ საკითხზე. 91 00:04:56,781 --> 00:04:58,530 მაგრამ ჩვენ ვაპირებთ, რომ ცდილობენ მათი მეშვეობით 92 00:04:58,530 --> 00:05:00,800 მინიმუმ საკმარისი, რომ თქვენ მესმის, რა არის 93 00:05:00,800 --> 00:05:03,700 მიმდინარეობს, როდესაც თქვენ შეხედეთ ერთი Swift პროგრამა 94 00:05:03,700 --> 00:05:07,310 და შეძლებს hack თქვენი გზა მეშვეობით საბოლოო პროექტი. 95 00:05:07,310 --> 00:05:10,780 >> ახლა ერთი საუკეთესო გზა, რომ თქვენ დამატებითი ინფორმაციის მისაღებად ამ 96 00:05:10,780 --> 00:05:14,700 გულწრფელად მხოლოდ მეშვეობით Apple- ის გათვალისწინებული დოკუმენტაცია Swift. 97 00:05:14,700 --> 00:05:16,930 არსებობს ბევრი APIs რომ არის შესაძლებელი. 98 00:05:16,930 --> 00:05:21,170 და ეს არის კარგი ბაზის თქვენთვის უნდა ვეძებოთ, კონკრეტული რამ, რომ თქვენ 99 00:05:21,170 --> 00:05:23,020 მინდა ამის გაკეთება რომელზეც API ჩართვის iOS. 100 00:05:23,020 --> 00:05:26,350 თუ გსურთ გამოიყენოთ კამერა მაგალითად, შეგიძლიათ დაიწყოს ეძებს აქ, 101 00:05:26,350 --> 00:05:32,540 და ასევე გამოიყენოთ Google და დასტის Overflow როგორც თქვენ ჩვეულებრივ. 102 00:05:32,540 --> 00:05:36,670 >> ნებისმიერი კითხვები ამ სანამ ჩვენ გადასვლა უფლება? 103 00:05:36,670 --> 00:05:37,880 კარგი. 104 00:05:37,880 --> 00:05:38,700 მოდით გადაადგილება. 105 00:05:38,700 --> 00:05:42,620 >> ასე რომ, პირველი, მე მაქვს ნომერი მაგალითად ფაილი. 106 00:05:42,620 --> 00:05:46,040 და მე ვაპირებ შევეცდებოდით მათი მეშვეობით შედარებით სწრაფად. 107 00:05:46,040 --> 00:05:49,190 ეს არის Hello World ფაილი Swift. 108 00:05:49,190 --> 00:05:51,050 ეს ძალიან მარტივია. 109 00:05:51,050 --> 00:05:54,360 იქ უფრო მეტი კომენტარები ვიდრე არსებობს ფაქტობრივი კოდი. 110 00:05:54,360 --> 00:05:57,100 ყურადღება მიაქციეთ, ფაქტობრივი კოდი არის ძალიან ბოლოში on line 14. 111 00:05:57,100 --> 00:05:57,980 იგი აცხადებს, რომ ბეჭდვითი. 112 00:05:57,980 --> 00:05:59,820 და შემდეგ ეს ფუნქცია ზარი. 113 00:05:59,820 --> 00:06:03,010 ჩვენ გავლით შევიდა ეს სიმებიანი მოუწოდა გაუმარჯოს CS50. 114 00:06:03,010 --> 00:06:04,750 ყურადღება მიაქციეთ, რომ არ არსებობს semicolons. 115 00:06:04,750 --> 00:06:07,010 ყურადღება მიაქციეთ, რომ არ არსებობს int ძირითადი. 116 00:06:07,010 --> 00:06:10,392 არსებობს არც ერთი cruft, რომ ჩვენ გვქონდა C. 117 00:06:10,392 --> 00:06:15,020 როდესაც ჩვენ ვიყენებთ Swift ამ გზით, რომელიც მხოლოდ წერილობითი ტექსტური ფაილი 118 00:06:15,020 --> 00:06:18,340 და ინახება ჩემი კომპიუტერი, მაშინ შემიძლია კომპილირება და გაუშვით. 119 00:06:18,340 --> 00:06:20,920 >> გაითვალისწინეთ, რომ აქ ვარ არ იყენებთ CS50 IDE. 120 00:06:20,920 --> 00:06:24,460 ეს გულისხმობს, რომ მე ვარ და რომ მე ვარ OS X, 121 00:06:24,460 --> 00:06:27,870 და, რომ მე არ Xcode უკვე დაყენებული ეს მანქანა, რათა ამ 122 00:06:27,870 --> 00:06:29,080 რეალურად ფუნქცია. 123 00:06:29,080 --> 00:06:33,349 მაგრამ ეს არ არის მხოლოდ ჩვეულებრივი ტექსტური ფაილი რომ ჩვენ შეგვიძლია მაშინ შედგენა და რედაქტირება. 124 00:06:33,349 --> 00:06:34,890 მოდით ვნახოთ, როგორ ეს რეალურად მუშაობს. 125 00:06:34,890 --> 00:06:37,430 რა მოხდება, თუ მინდა კომპილაციის ეს? 126 00:06:37,430 --> 00:06:40,450 swiftc 1.swift. 127 00:06:40,450 --> 00:06:42,960 შემდეგ მომენტში ან ორი, დაინახავთ, რომ ჩვენ ახლა გვაქვს 128 00:06:42,960 --> 00:06:45,360 შედგენილი ამ შევიდა ფაილი სახელად 1. 129 00:06:45,360 --> 00:06:51,090 და ახლა ჩვენ არ იბეჭდება ჩვენი CS50, ჩვენი Hello World პროგრამა საკმაოდ. 130 00:06:51,090 --> 00:06:54,690 >> გაითვალისწინეთ ერთი რამ, როგორც კარგად არის, რომ ჩვეულებრივ, 131 00:06:54,690 --> 00:07:00,090 ჩვენ არ უნდა შეყვანის ა / ო ბეჭდვა ახალი ხაზი. 132 00:07:00,090 --> 00:07:05,315 სტანდარტულად, ბეჭდვითი ფუნქცია Swift ბეჭდვა ახალი ხაზი თქვენთვის. 133 00:07:05,315 --> 00:07:09,284 თქვენ შეგიძლიათ გადასცეთ არასავალდებულო დამატებითი პარამეტრი გითხრათ, რომ ეს არ არის ამის გაკეთება. 134 00:07:09,284 --> 00:07:10,950 მაგრამ Google დამატებითი ინფორმაცია, რომ. 135 00:07:10,950 --> 00:07:13,450 ჩვეულებრივ, ის ყველაფერს გააკეთებს ბეჭდვის ხაზი. 136 00:07:13,450 --> 00:07:16,420 >> ყველა უფლება, მოდით გადაადგილება მაშინ სხვა რამ. 137 00:07:16,420 --> 00:07:18,620 მაშ, როგორ შეგვიძლია რეალურად განსაზღვრავს ცვლადები? 138 00:07:18,620 --> 00:07:21,960 ჩვენ შეგვიძლია გავაკეთოთ, რომ გამოყენებით ერთი ორი მეთოდები. 139 00:07:21,960 --> 00:07:26,122 და ერთი, რომ მე მინდა გითხრათ, შესახებ პირველი არის let განმარტება. 140 00:07:26,122 --> 00:07:27,830 და ეს არის მნიშვნელოვანი იმიტომ, რომ ეფექტურად 141 00:07:27,830 --> 00:07:30,240 ის, რასაც ჩვენ ვაკეთებთ განსაზღვრის მუდმივი. 142 00:07:30,240 --> 00:07:34,010 ჩვენ ვაპირებთ, რომ შევქმნათ ცვლადი, უფრო სწორად მუდმივი მოუწოდა სახელი, 143 00:07:34,010 --> 00:07:38,200 გთავაზობთ მას გარკვეული მონაცემები და ამ შემთხვევაში, სიმებიანი დან. 144 00:07:38,200 --> 00:07:40,630 მაგრამ გამოყენებით ამ let სიტყვით, ჩვენ ვამბობთ 145 00:07:40,630 --> 00:07:43,860 რომ ეს ცვლადი ან ერთხელ constant-- ე.წ. 146 00:07:43,860 --> 00:07:46,220 სახელი არასდროს შეიცვლება. 147 00:07:46,220 --> 00:07:50,120 ეს იქნება უცვლელი მთელი ხანგრძლივობა ამ პროგრამის 148 00:07:50,120 --> 00:07:53,100 ან მთელი ხანგრძლივობა კონტექსტში 149 00:07:53,100 --> 00:07:55,390 , რომ ცვლადი არის შესაძლებელი. 150 00:07:55,390 --> 00:08:00,096 >> ეს მართლაც მნიშვნელოვანია, რომ როდესაც თქვენ გაქვთ ზოგიერთი მონაცემებით, რომელიც არ არის 151 00:08:00,096 --> 00:08:02,970 შეიცვლება თქვენი პროგრამა, და დაინახავთ სხვადასხვა მაგალითები 152 00:08:02,970 --> 00:08:06,790 როდესაც ჩვენ გვინდა გამოვიყენოთ მიადევნე წინააღმდეგ სხვა სინტაქსი, 153 00:08:06,790 --> 00:08:11,040 მნიშვნელოვანია, რომ თქვენ იყენებთ მიადევნე სადაც შესაძლებელია, რადგან ეს აცნობებს 154 00:08:11,040 --> 00:08:13,740 ენა, რომ ეს არის არ შეიცვლება, 155 00:08:13,740 --> 00:08:16,590 და ეს შეიძლება რეალურად შეასრულოს ბევრი ოპტიმიზაციით 156 00:08:16,590 --> 00:08:19,560 გააუმჯობესოს სიჩქარე და უსაფრთხოების პროგრამა. 157 00:08:19,560 --> 00:08:24,480 და უსაფრთხოების, მე ვგულისხმობ არა მიადევნე ავარიის გიჟები შეცდომები 158 00:08:24,480 --> 00:08:27,910 რომ შეიძლება იყოს მიჩვეული ხედავს in C. 159 00:08:27,910 --> 00:08:32,460 >> მაშინ ჩვენ შეგვიძლია გამოვიყენოთ სიმებიანი ინტერპოლაცია რომ encapsulate ამ ფარგლებში სიმებიანი. 160 00:08:32,460 --> 00:08:35,200 ასე რომ, ჩვენ ვხედავთ ბეჭდვის ხაზი, ბეჭდვა hello, 161 00:08:35,200 --> 00:08:38,950 და შემდეგ გამოყენებით წარმატებული ღია parens, და შემდეგ სახელი ჩემი ცვლადი, 162 00:08:38,950 --> 00:08:41,809 ამ შემთხვევაში, მუდმივი, დახურვა ფრჩხილებში. 163 00:08:41,809 --> 00:08:46,400 მე არსებითად შემდეგ აყენებს შინაარსი ამ ცვლადში სახელი 164 00:08:46,400 --> 00:08:50,240 შიგნით სიმებიანი და შემდეგ დაბეჭდვის შედეგი იყო. 165 00:08:50,240 --> 00:08:54,070 >> არსებობს ერთი ცვლილება ამ ფაილის რაც არის, რომ მე მაქვს, ძალიან ზევით, 166 00:08:54,070 --> 00:08:57,340 მა shebang ხაზი, რომელიც ძირითადად მხოლოდ განსაზღვრავს 167 00:08:57,340 --> 00:09:00,180 რომ მინდა გამოიყენოთ Swift თარჯიმანი, რაც 168 00:09:00,180 --> 00:09:04,190 იმას ნიშნავს, რომ მე აღარ უნდა შეადგინონ ამ კონკრეტულ პროგრამას. 169 00:09:04,190 --> 00:09:06,567 მე შემიძლია უბრალოდ გაუშვით როგორც საკუთარი დამწერლობა აქვს. 170 00:09:06,567 --> 00:09:09,400 მაგრამ ეს არ არის, ამ შემთხვევაში, უკან სცენები იქმნება და შემდეგ 171 00:09:09,400 --> 00:09:10,030 მიმდინარეობს აწარმოებს. 172 00:09:10,030 --> 00:09:13,540 ეს მხოლოდ უხილავი ჩვენთვის. 173 00:09:13,540 --> 00:09:15,880 >> ყველა უფლება, მოდით გადაადგილება. 174 00:09:15,880 --> 00:09:19,650 ასე რომ, ცოტა მოსატყუებლად რომ მოხდა ადრე. 175 00:09:19,650 --> 00:09:23,230 მე აჩვენა, რომ მე შეიძლება განისაზღვროს მუდმივი. 176 00:09:23,230 --> 00:09:25,490 და მე ვერ გთავაზობთ ზოგიერთი მონაცემების ამის გაკეთება. 177 00:09:25,490 --> 00:09:29,240 მაგრამ ამ შემთხვევაში, შეამჩნია, რომ მე არ რეალურად დააკონკრეტა ტიპის მონაცემები 178 00:09:29,240 --> 00:09:29,820 ეს არის. 179 00:09:29,820 --> 00:09:32,780 და ეს იმიტომ, რომ შემდგენელი, Swift შეუძლია 180 00:09:32,780 --> 00:09:36,910 დასკვნის ტიპის მონაცემები უბრალოდ საფუძველზე წლის მონაცემები, რომ მე ეს. 181 00:09:36,910 --> 00:09:41,760 იმის გამო, რომ იცის, რომ შეფასებისას ეს ცვლადი სწორედ აქ, ამ მონაცემების უფლება 182 00:09:41,760 --> 00:09:43,370 აქ, იცის, რომ ეს არის ტექსტი. 183 00:09:43,370 --> 00:09:48,690 ასე რომ, ეს მუდმივი სახელი ამიტომ იქნება სიმებიანი ისევე. 184 00:09:48,690 --> 00:09:52,730 >> მაგრამ ჩვენ ასევე შეიძლება გამოკვეთილ ტიპის შესახებ, რომ 185 00:09:52,730 --> 00:09:55,790 ჩვენ ვაპირებთ, რომ გამოიყენოთ მუდმივები და ცვლადები 186 00:09:55,790 --> 00:10:01,590 გამოყენებით ამ სინტაქსი instead-- მიადევნე სახელი ნაწლავის სიმებიანი ტოლია 187 00:10:01,590 --> 00:10:05,530 Dan, რომელიც ამ შემთხვევაში ნიშნავს იმას, რომ ჩვენ აპირებს განსაზღვროს მუდმივი მოუწოდა სახელი. 188 00:10:05,530 --> 00:10:07,150 ეს იქნება ტიპის სიმებიანი. 189 00:10:07,150 --> 00:10:10,550 და ღირებულება იქნება დან. 190 00:10:10,550 --> 00:10:12,550 ახლა სხვა გზა, რომ ჩვენ შეგვიძლია შევქმნათ ცვლადები 191 00:10:12,550 --> 00:10:15,549 და ეს არის mutable ცვლადები, რომელიც იმას ნიშნავს, რომ ჩვენ, ფაქტობრივად, აპირებს 192 00:10:15,549 --> 00:10:19,670 შეცვალოს მათი შინაარსი შუალედში ხანგრძლივობა კონტექსტში 193 00:10:19,670 --> 00:10:23,890 , რომ ცვლადი defined-- ჩვენ გამოიყენოთ var სიტყვით ნაცვლად მისცეს. 194 00:10:23,890 --> 00:10:27,400 მაგრამ ერთხელ, ჩვეულებრივ, თუ თქვენ არ იცით რომ თქვენ უნდა მანიპულირება, რომ მონაცემები, 195 00:10:27,400 --> 00:10:30,510 ცდილობენ გამოიყენონ მიადევნე for შესრულების გაუმჯობესება. 196 00:10:30,510 --> 00:10:33,740 >> ამ შემთხვევაში, მე შეიძლება მაშინ დააკონკრეტა ტიპის მონაცემები 197 00:10:33,740 --> 00:10:37,650 ჩვენ ველით, რომ იყოს შიგნით ახალი ცვლადში იარლიყი. 198 00:10:37,650 --> 00:10:38,800 ეს იქნება სიმებიანი. 199 00:10:38,800 --> 00:10:43,030 და ჩვენ ვაპირებთ, რომ მაშინ concatenate ორი strings ერთად, სიმებიანი hello, 200 00:10:43,030 --> 00:10:48,070 და სიმებიანი მიერ წარმოდგენილი ცვლადი, უფრო სწორად, მუდმივი სახელი. 201 00:10:48,070 --> 00:10:50,660 >> ასე რომ, ეს არის კარგი, რადგან ამ გარკვეულწილად PHP, როგორც, რომ ჩვენ 202 00:10:50,660 --> 00:10:52,250 აქვს ძალიან მარტივი სიმებიანი გაერთიანების. 203 00:10:52,250 --> 00:10:56,350 ჩვენ არ უნდა ავტომატურად გამოიყენოთ ნებისმიერი სახის მეხსიერების მართვა 204 00:10:56,350 --> 00:11:00,580 ზომის გაზრდა და ამის ნებისმიერი სახის სასაცილო რამ არსებობს. 205 00:11:00,580 --> 00:11:05,040 ეს მუშაობს, როგორც ჩვენ გვინდა რეალურად ველოდოთ. 206 00:11:05,040 --> 00:11:09,370 >> ყველა უფლება, ნებისმიერი კითხვები ამ? 207 00:11:09,370 --> 00:11:12,520 >> ახლა სხვა მიზეზის გამო, რომ ჩვენ უნდა თქვენ გაქვთ შესაძლებლობა 208 00:11:12,520 --> 00:11:15,490 შეძლებს განსაზღვროს, თუ რა ტიპის მონაცემები ცვლადები 209 00:11:15,490 --> 00:11:18,170 იმიტომ რომ ზოგჯერ ჩვენ არ მინდა ინიციალიზაცია ცვლადები 210 00:11:18,170 --> 00:11:21,080 ზოგიერთი მონაცემები წერტილი განმარტება. 211 00:11:21,080 --> 00:11:23,500 ასე რომ, ამ შემთხვევაში, ვთქვათ, რომ მინდა, რომ დაიწყოს შესაყვანი 212 00:11:23,500 --> 00:11:25,040 ზოგიერთი შეფასება შევიდა კლასის წიგნში. 213 00:11:25,040 --> 00:11:27,530 კარგად ვიცი, რომ ერთ-ერთი ცვლადები, რომ მინდა იყოს 214 00:11:27,530 --> 00:11:30,280 აპირებს იყოს mutable კლასის. 215 00:11:30,280 --> 00:11:33,010 ჩვენ ასევე ვიცით, რომ ჩვენ მინდა, რომ ეს იყოს მთელი რიცხვი. 216 00:11:33,010 --> 00:11:36,030 მაგრამ იქნებ ჯერ არ ვიცით, აქვს, რომ კლასის შესაძლებელი. 217 00:11:36,030 --> 00:11:39,570 >> In Swift, თქვენ უნდა განსაზღვრავს ტიპის მონაცემები 218 00:11:39,570 --> 00:11:44,000 რომ არის დაკავშირებული ცვლადი ან მიადევნე მუდმივი 219 00:11:44,000 --> 00:11:47,840 სანამ რეალურად გამოყენება, რომ ცვლადი. 220 00:11:47,840 --> 00:11:51,170 იმის გამო, რომ იგი კატეგორიულად აკრეფილი, თქვენ უნდა გაერთიანდნენ ტიპი 221 00:11:51,170 --> 00:11:52,890 ამ ცვლადებს. 222 00:11:52,890 --> 00:11:56,120 >> ასე რომ, ამ შემთხვევაში, თუ მე არ არის სათანადოდ ინიციალიზაცია პირველი გარკვეული მნიშვნელობა, 223 00:11:56,120 --> 00:12:00,520 მაშინ მე უნდა გითხრათ Swift რა ვიმედოვნებ, რომ მონაცემები ტიპის უნდა იყოს. 224 00:12:00,520 --> 00:12:02,650 და ის აპირებს დარჩეს რომ იგივე მონაცემების ტიპის 225 00:12:02,650 --> 00:12:05,780 მთელი ისტორიის ეს პროგრამა. 226 00:12:05,780 --> 00:12:10,050 >> ახლა თქვენ შეიძლება ცდუნება, როგორც კი მე შევქმენი ეს grade ცვლადი 227 00:12:10,050 --> 00:12:13,530 და იმ პირობით, მას რიცხვი 100, ახლა თუ მე 228 00:12:13,530 --> 00:12:18,540 შევეცდები, რომ concatenate სიმებიანი რომ რიცხვი, 229 00:12:18,540 --> 00:12:21,610 შეიძლება ცდუნება მაინც გამოიყენოს რომ სიმებიანი გაერთიანების ოპერატორი 230 00:12:21,610 --> 00:12:24,500 როგორც ჩვენ გავაკეთეთ მხოლოდ რამდენიმე ხაზი ადრე. 231 00:12:24,500 --> 00:12:26,460 მაგრამ სამწუხაროდ, ეს, ფაქტობრივად, არ 232 00:12:26,460 --> 00:12:29,270 მუშაობა, იმიტომ, რომ თქვენ არსებითად ასრულებენ 233 00:12:29,270 --> 00:12:32,380 ოპერაცია ორი სხვადასხვა ტიპის. 234 00:12:32,380 --> 00:12:36,856 >> ეს არის ძალიან განსხვავდება სხვა ენებს, როგორიცაა PHP, რომელიც ნამდვილად 235 00:12:36,856 --> 00:12:38,480 loosey goosey მათი ერთგვარი ტიპის. 236 00:12:38,480 --> 00:12:40,030 ისინი უბრალოდ მინდა, ჰო, რაც არ უნდა, მე არ მაინტერესებს. 237 00:12:40,030 --> 00:12:42,710 უბრალოდ მომეცი ერთი ტიპის, და იქნებ მე გავაკეთოთ სწორი. 238 00:12:42,710 --> 00:12:46,060 >> ამ შემთხვევაში, Swift არის ძალიან მკაცრი სახის 239 00:12:46,060 --> 00:12:47,350 რომ თქვენ საქმე. 240 00:12:47,350 --> 00:12:50,700 ეს summation ოპერატორი ან გაერთიანების ოპერატორი 241 00:12:50,700 --> 00:12:54,400 ძირითადად რამდენიმე სხვადასხვა შესაძლო ვარიანტი. 242 00:12:54,400 --> 00:12:56,970 თქვენ შეგიძლიათ ამის summation მთელი რიცხვები, ან თქვენ 243 00:12:56,970 --> 00:13:00,870 შეგიძლიათ გააკეთოთ სიმებიანი გაერთიანების და ალბათ ზოგიერთი სხვა რამ, ისევე. 244 00:13:00,870 --> 00:13:05,550 მაგრამ, თუ ოპერატორი არ აღიარებს რა არის ორივე მხარეს, 245 00:13:05,550 --> 00:13:10,452 უფრო სწორად მოიცავს იმ ორი სახის, არ არის ის ელოდება, 246 00:13:10,452 --> 00:13:11,910 შემდეგ ის აპირებს გამოიწვიოს მარცხი. 247 00:13:11,910 --> 00:13:16,690 >> ასე რომ, ამ შემთხვევაში, რას ნიშნავს ეს აქვს სიმებიანი პლუს რიცხვი? 248 00:13:16,690 --> 00:13:18,880 ისე კონტექსტში ეს, ჩვენ, ალბათ, სურს 249 00:13:18,880 --> 00:13:21,990 გავაკეთოთ სიმებიანი გაერთიანების ოპერაცია. 250 00:13:21,990 --> 00:13:26,420 მაგრამ რა თქმა უნდა კომპიუტერი არ აქვს, რომ ერთგვარი კონტექსტში. 251 00:13:26,420 --> 00:13:29,950 ასე რომ, ჩვენ უნდა უზრუნველყოს რომ დამატებითი ინფორმაცია 252 00:13:29,950 --> 00:13:32,390 ასეც ვიცი, თუ რა ის არის, რომ ჩვენ გვინდა გავაკეთოთ. 253 00:13:32,390 --> 00:13:36,860 >> სხვა სიტყვებით, ის ფაქტი, რომ Swift მკაცრად აკრეფილი 254 00:13:36,860 --> 00:13:39,520 იმას ნიშნავს, თქვენ უნდა გავაკეთოთ ცოტა დამატებითი სამუშაო 255 00:13:39,520 --> 00:13:42,100 უნდა მიიღოს იგი მუშაობას გზა, რომ თქვენ გსურთ. 256 00:13:42,100 --> 00:13:43,710 მაგრამ შედეგად, ეს არის უსაფრთხო. 257 00:13:43,710 --> 00:13:46,290 და კიდევ თქვენ გაქვთ მიიღოს მხედველობაში იმ ტიპის, 258 00:13:46,290 --> 00:13:49,300 რამ უბრალოდ გულწრფელად დაიწყოს მუშაობა კარგად. 259 00:13:49,300 --> 00:13:52,520 >> ასე რომ, ამ შემთხვევაში, ჩვენ მაშინ ასრულებს სიმებიანი გაერთიანების 260 00:13:52,520 --> 00:13:56,040 მიერ მკაფიოდ აძლევენ მთელი სიმებიანი 261 00:13:56,040 --> 00:13:58,490 შესაფუთი მას ამ კაპიტალის S სიმებიანი ფუნქცია, 262 00:13:58,490 --> 00:14:03,510 და შემდეგ გამოყენებით სიმებიანი გაერთიანების ოპერატორი ცვლილებები ჩვენი ეტიკეტების ცვლადი, 263 00:14:03,510 --> 00:14:06,280 და შემდეგ ამობეჭდოთ. 264 00:14:06,280 --> 00:14:08,420 >> ჯერჯერობით, იმდენად კარგი? 265 00:14:08,420 --> 00:14:12,020 ყველა უფლება, მოდით გადაადგილება. 266 00:14:12,020 --> 00:14:16,300 >> ახლა არსებობს სხვადასხვა მონაცემები ტიპის, რომ ჩვენ შეგვიძლია გამოვიყენოთ Swift. 267 00:14:16,300 --> 00:14:21,620 როგორც თქვენ არ შეეჩვია, ჩვენ შეგვიძლია შევქმნათ mutable მასივი. 268 00:14:21,620 --> 00:14:26,140 და რომ მასივი მხოლოდ შეიცავს ერთი ტიპის. 269 00:14:26,140 --> 00:14:30,360 >> ასე რომ, ამ შემთხვევაში, ჩვენ ვაპირებთ, რომ შევქმნათ mutable მასივები რიცხვებით, რომლებიც 270 00:14:30,360 --> 00:14:34,800 ჩვენ მოვუწოდებთ შეფასება და ჩვენ შევძლებთ შესანახად, რომ ამ კვადრატული ფრჩხილი 271 00:14:34,800 --> 00:14:38,650 ფორმატი, როგორც თქვენ გაიზარდა მიჩვეული რომ სხვადასხვა სხვა ენებზე. 272 00:14:38,650 --> 00:14:41,150 მაგრამ შეამჩნია, რომ აქ ჩვენ განსაზღვრის რამდენიმე რამ. 273 00:14:41,150 --> 00:14:45,350 შეფასება არის mutable ცვლადი ჩვენ არ გამოიყენოთ let სიტყვით. 274 00:14:45,350 --> 00:14:49,620 ასე რომ, ეს ნიშნავს, რომ ჩვენ შეგვიძლია შემდეგ ცვლილებები შინაარსი ამ მასივი. 275 00:14:49,620 --> 00:14:53,420 ეს არის ტიპის Array Int, და ჩვენ შეგვიძლია ვთქვათ, რომ 276 00:14:53,420 --> 00:14:56,260 საფუძველზე ამ კვადრატულ ფრჩხილებში აქ. 277 00:14:56,260 --> 00:14:58,930 >> ახლა ერთი კარგი რამ არის ის, რომ ჩვენ 278 00:14:58,930 --> 00:15:02,310 გვაქვს წვდომა ბევრი დამატებითი ინფორმაცია 279 00:15:02,310 --> 00:15:07,110 შესახებ მასივი უბრალოდ გამოყენებით რამდენიმე მარტივი dot ნოტაცია. 280 00:15:07,110 --> 00:15:10,500 ასე მაგალითად, grades.count უზრუნველყოფს ჩვენთან 281 00:15:10,500 --> 00:15:14,820 რაოდენობის საკითხი, რომელიც არსებობს, რომ მასივი, რომელიც ჩვენ შეგვიძლია შემდეგ შედიხართ საკმაოდ 282 00:15:14,820 --> 00:15:19,090 ადვილად უბრალოდ გამოყენებით, რომ dot ნოტაცია. 283 00:15:19,090 --> 00:15:21,830 >> თუ გსურთ დამატებითი ელემენტი ამ მასივი, 284 00:15:21,830 --> 00:15:27,220 თქვენ ვერ PHP სტილი სადაც თქვენ უბრალოდ მკაფიოდ განსაზღვრა, 285 00:15:27,220 --> 00:15:30,910 მოცემულ ინდექსი, გარკვეული მნიშვნელობა რომ გსურთ ჩადეთ. 286 00:15:30,910 --> 00:15:37,210 იმის ნაცვლად, რომ, გამოიყენოთ დამატება მეთოდი მასივი ტიპი 287 00:15:37,210 --> 00:15:40,920 დამატება, რომ საქონელი, 95, ამ სიაში. 288 00:15:40,920 --> 00:15:45,990 >> ასე რომ, ახლა ამ მასივი აქვს შემდეგი contents-- 100, 0, 90, 85. 289 00:15:45,990 --> 00:15:49,270 და ახლა ჩვენ ჩაჯდება 95 რომ ისევე. 290 00:15:49,270 --> 00:15:51,830 >> არსებობს სხვა გზები ჩვენ შეგვიძლია დავამატოთ რამ. 291 00:15:51,830 --> 00:15:55,030 თქვენ შეგიძლიათ რეალურად გამოვიყენოთ summation ოპერატორი, 292 00:15:55,030 --> 00:15:59,200 რომელიც უნდა განიმარტოს, როგორც მასივი დამატება ოპერაცია. 293 00:15:59,200 --> 00:16:04,680 და შეგიძლიათ შემდეგ დამატება სხვა მასივი, რომლის შინაარსი 70 და 80, 294 00:16:04,680 --> 00:16:05,560 რომ მასივი. 295 00:16:05,560 --> 00:16:08,250 ასე რომ, ახლა ჩვენ გვაქვს შინაარსი ამ ცვლადის 296 00:16:08,250 --> 00:16:17,220 grades-- 100, 0, 90, 85, 95, 70 და 80. 297 00:16:17,220 --> 00:16:21,850 ეს არის უბრალოდ ლამაზი პატარა სინტაქსური შაქრის Swift უზრუნველყოფს ჩვენთვის. 298 00:16:21,850 --> 00:16:23,850 >> ასე რომ, თუ ჩვენ გვინდა, რომ მთლიანობაში შეფასება, ჩვენ, ალბათ, 299 00:16:23,850 --> 00:16:27,340 აპირებს გვინდა iterate ყოველ ერთეულზე ამ loop. 300 00:16:27,340 --> 00:16:32,150 და ჩვენ არ გვაქვს, Swift, ცნება ამისთვის loop როგორც თქვენ მოელოდა. 301 00:16:32,150 --> 00:16:35,350 მაგრამ ისე, რომ ჩვენ მიუთითოს სპექტრი ოდნავ განსხვავებული. 302 00:16:35,350 --> 00:16:37,790 ასე რომ, ამ შემთხვევაში, მთლიანობაში ყველაფერი, ჩვენ გამოგიგზავნით 303 00:16:37,790 --> 00:16:40,650 აპირებს შექმნას დროებითი ცვლადში თანხა, რათა ჩვენთვის 304 00:16:40,650 --> 00:16:42,580 რომ შევინარჩუნოთ ეს რაოდენობა. 305 00:16:42,580 --> 00:16:44,430 >> და შენიშნავს, ჩვენი for loop სამშენებლო აქ. 306 00:16:44,430 --> 00:16:46,820 ინდექსის 0 .. 00:16:51,480 308 00:16:51,480 --> 00:16:57,390 ასე რომ, ეს მშენებლობა, 0 .. 00:17:01,860 ამბობდა, რომ ჩვენ ვაპირებთ, რომ შევქმნათ რიგი რიცხვებით 0 მდე 310 00:17:01,860 --> 00:17:05,750 მაგრამ გარდა grades.count. 311 00:17:05,750 --> 00:17:09,577 ასე რომ, ეს იქნება 0, 1, 2, 3, 4, 5 წლამდე თუმცა ბევრი ერთი 312 00:17:09,577 --> 00:17:10,410 ადრე grades.count. 313 00:17:10,410 --> 00:17:14,160 >> ასე რომ, ეს არის განსხვავებული, თუ როგორ როგორც წესი, გამოიყენება მარყუჟების 314 00:17:14,160 --> 00:17:18,569 სადაც თქვენ უნდა გარკვეული ინდექსი ცვლადი, ვაყენებთ მას ტოლი 0, პირველ რიგში, 315 00:17:18,569 --> 00:17:25,480 და შემდეგ ინტეგრირება, რომ სანამ რაღაც მნიშვნელობა ნაკლებია გრაფი ნივთები 316 00:17:25,480 --> 00:17:27,140 რომ მასივი. 317 00:17:27,140 --> 00:17:29,820 >> ასე რომ, არ არის მოდიფიკაცია ამ, ფაქტობრივად, 318 00:17:29,820 --> 00:17:35,010 რაც საშუალებას გვაძლევს ძალიან მარტივად შექმნას სხვადასხვა სახის მერყეობს. 319 00:17:35,010 --> 00:17:40,570 თუ თქვენ შეცვალოს ეს სპექტრი სამი წერტილი, 0 ... grade.count, 320 00:17:40,570 --> 00:17:45,120 ეს წარმოადგენს სპექტრი 0 რომ grades.count ჩათვლით, 321 00:17:45,120 --> 00:17:49,260 რაც იმას ნიშნავს, რომ, რომ ნომერი, ასევე შემდეგ შედის, რომ დიაპაზონი. 322 00:17:49,260 --> 00:17:52,110 >> მაგრამ ეს არის ძალიან მოსახერხებელი ამ ზუსტი რამ, 323 00:17:52,110 --> 00:17:54,590 როდესაც ჩვენ უნდა შეასრულოს გამეორების მეტი loop 324 00:17:54,590 --> 00:17:59,630 იმიტომ, რომ ეს ინდექსები ნულოვანი ინდექსირებული, როგორც ვნახეთ სხვა ენებზე 325 00:17:59,630 --> 00:18:02,360 როგორც. 326 00:18:02,360 --> 00:18:05,210 ნებისმიერი კითხვები ამ for loop? 327 00:18:05,210 --> 00:18:10,660 >> ასე რომ, არსებობს ფარული განმარტება ამ ინდექსის ცვლადი, 328 00:18:10,660 --> 00:18:14,350 რომლის ღირებულება იწყება 0, და გრძელდება ყოველ loop იტერაციული 329 00:18:14,350 --> 00:18:17,950 გაიზრდება 1 წლამდე წერტილი რომ უდრის grades.count, 330 00:18:17,950 --> 00:18:20,380 სადაც წერტილი, მარყუჟის ხერხდება. 331 00:18:20,380 --> 00:18:23,730 >> გაითვალისწინეთ, რომ ჩვენი სიმებიანი ინტერპოლაცია აქ, 332 00:18:23,730 --> 00:18:26,910 ჩვენ შეგვიძლია რეალურად შეასრულოს რამდენიმე მარტივი მანიპულაცია იმ ღირებულებებს. 333 00:18:26,910 --> 00:18:31,230 ასე რომ, ინდექსი + 1, ფაქტობრივად, შეასრულოს summation რომ მნიშვნელობა 334 00:18:31,230 --> 00:18:34,780 რადგან ინდექსი არის, ამ შემთხვევაში, რიცხვი. 335 00:18:34,780 --> 00:18:37,810 და იმ ეტაპზე, ის მაშინ გარდაიქმნება string 336 00:18:37,810 --> 00:18:42,230 და ჩაამატეს ამ სიმებიანი აქ, და იბეჭდება როგორც ჩვენ მოელოდა. . 337 00:18:42,230 --> 00:18:44,520 >> და ლამაზი რამ შესახებ კოლექტორები აქ არის 338 00:18:44,520 --> 00:18:50,730 ჩვენ ასევე შეუძლია ჰქონდეს მიღება ფასეულობები და შექმნის ღირებულებები 339 00:18:50,730 --> 00:18:54,080 გამოყენებით კვადრატული ფრჩხილი ნოტაცია ჩვენ ვნახეთ სხვა ენებზეც. 340 00:18:54,080 --> 00:18:57,130 341 00:18:57,130 --> 00:19:01,030 >> ყველა უფლება, ასე რომ, ჩვენ ახლა გამოთვლაც ჩვენი თანხა ყველა ჩვენი შეფასება. 342 00:19:01,030 --> 00:19:02,780 ახლა ერთგვარი შემდეგი ლოგიკური იქნებოდა, 343 00:19:02,780 --> 00:19:07,580 გავაკეთოთ სამმართველოს ოპერაციის მოძიების out საშუალო იმ შეფასება. 344 00:19:07,580 --> 00:19:10,150 მაგრამ რაღაც მნიშვნელოვანი აქ ხდება, რომელიც 345 00:19:10,150 --> 00:19:15,020 ის არის, რომ ეს თანხა ალბათ რიცხვი. 346 00:19:15,020 --> 00:19:18,020 მაგრამ ჩვენ უნდა შეასრულოს გარკვეული ერთგვარი ორმაგი გაყოფა. 347 00:19:18,020 --> 00:19:20,600 და ეს იქნება ძალიან მნიშვნელოვანია, როდესაც 348 00:19:20,600 --> 00:19:24,140 ჩვენ გვინდა, რომ ამ ოპერაციის, იმიტომ, რომ რასაც ჩვენ ვამბობთ, 349 00:19:24,140 --> 00:19:28,430 ის არის, რომ ჩვენ უნდა რეალურად ასრულებს სამმართველოს ორი ორადგილიანი. 350 00:19:28,430 --> 00:19:31,370 ისევ და ისევ, იმიტომ, რომ Swift ძალიან მკაცრად აკრეფილი, 351 00:19:31,370 --> 00:19:36,760 ჩვენ მკაფიოდ უნდა მითითებული ყველა ნივთები ორადგილიანი სანამ ჩვენ რეალურად 352 00:19:36,760 --> 00:19:38,300 ასრულებს, რომ ოპერაცია. 353 00:19:38,300 --> 00:19:40,550 >> ასე რომ, იმისათვის, რომ შეასრულოს ორმაგი განყოფილება, 354 00:19:40,550 --> 00:19:43,730 ეს არ არის საკმარისი მხოლოდ ერთი იმ ელემენტი უნდა იყოს ორმაგი. 355 00:19:43,730 --> 00:19:46,400 ორივე მათგანი უნდა იყოს ორმაგი რათა სწრაფი 356 00:19:46,400 --> 00:19:50,860 დარწმუნებული უნდა იყოს, რომ ეს არის ის, რაც ჩვენ გვინდა გავაკეთოთ. 357 00:19:50,860 --> 00:19:54,360 ასე რომ, ჩვენ მაშინ მკაფიოდ typecast თანხა, რომელიც ჩვენ გამოითვლება ზემოთ 358 00:19:54,360 --> 00:19:58,970 და დათვლის კლასის ორადგილიანი და მაშინ ასრულებს, რომ ოპერაცია და მაღაზია 359 00:19:58,970 --> 00:20:02,390 რომ ამ ახალი ცვლადი, უფრო სწორად, ახალი მუდმივი მოუწოდა საშუალოდ 360 00:20:02,390 --> 00:20:06,810 რომელსაც ექნება რა ტიპის, წარმოგიდგენიათ? 361 00:20:06,810 --> 00:20:07,587 ორმაგი, yeah. 362 00:20:07,587 --> 00:20:09,420 ასე რომ, ამ შემთხვევაში, ჩვენ არ უნდა მიუთითოთ ის 363 00:20:09,420 --> 00:20:13,450 იმიტომ, რომ ეს შეიძლება გაკეთდეს დასკვნა, ოპერაცია რა ტიპის მონაცემები საშუალოდ 364 00:20:13,450 --> 00:20:14,730 იქნება. 365 00:20:14,730 --> 00:20:19,025 და Swift ზოგადად საკმაოდ კარგი შესახებ, რათა დავასკვნათ ტიპის. 366 00:20:19,025 --> 00:20:22,116 367 00:20:22,116 --> 00:20:24,200 >> გსურთ, რომ ეს აწარმოებს, ან შემიძლია გადაადგილება? 368 00:20:24,200 --> 00:20:25,640 მე მინდა, რომ აპირებს. 369 00:20:25,640 --> 00:20:28,130 ნებისმიერი კითხვები ნებისმიერ ამ? 370 00:20:28,130 --> 00:20:28,630 შესანიშნავი. 371 00:20:28,630 --> 00:20:31,160 372 00:20:31,160 --> 00:20:35,010 >> ახლა ჩვენ ვაპირებთ, რომ დაიწყოს, რათა კარგი stuff-- განმსაზღვრელი ფუნქციები, 373 00:20:35,010 --> 00:20:39,090 და რამდენიმე სხვა ტიპები რომ არიან უნიკალური Swift რომ თქვენ არა გაქვთ 374 00:20:39,090 --> 00:20:41,620 ჩანს სხვა ენებზე სანამ ამ ეტაპზე, 375 00:20:41,620 --> 00:20:46,290 მაგრამ ისინი იმყოფებიან სხვა ენებზე, რომ თქვენ შეიძლება მოგვიანებით. 376 00:20:46,290 --> 00:20:48,210 ასე რომ, პირველი, თუ გსურთ განსაზღვროს ფუნქცია, 377 00:20:48,210 --> 00:20:52,170 თქვენ განსაზღვრავს, ხმაურიანი სიტყვა ფუნქცია, და შემდეგ ფუნქციის სახელი, 378 00:20:52,170 --> 00:20:56,710 ხოლო შემდეგ ფრჩხილებში, არგუმენტები რომ გსურთ რომ ფუნქცია მიიღოს. 379 00:20:56,710 --> 00:21:00,280 არგუმენტები ასევე უნდა specify-- ზოგადად 380 00:21:00,280 --> 00:21:05,010 ასევე უნდა განსაზღვროს ტიპის მონაცემები, რომ ისინი, თუ ისინი არ შეიძლება დასკვნა გაკეთდეს. 381 00:21:05,010 --> 00:21:07,500 ჩვენ დავინახავთ, რომ პატარა გაფრთხილება მხოლოდ ცოტა. 382 00:21:07,500 --> 00:21:09,920 >> ასე რომ, ამ შემთხვევაში ჩვენ გვაქვს ფუნქცია მოუწოდა printGradeCount. 383 00:21:09,920 --> 00:21:12,840 ჩვენ ვაპირებთ, რომ მიიღოს ცვლადი უფრო სწორად, ამ შემთხვევაში, 384 00:21:12,840 --> 00:21:14,450 constant-- მოუწოდა gradebook. 385 00:21:14,450 --> 00:21:18,517 და ეს იქნება საქართველოს ტიპი მასივი რიცხვებით. 386 00:21:18,517 --> 00:21:20,600 ახლა არის რაღაც რომ მართლაც მნიშვნელოვანია აქ 387 00:21:20,600 --> 00:21:21,849 რომ მე მინდა გვესმოდეს. 388 00:21:21,849 --> 00:21:27,560 ეს არის ის, რომ იყოს, ეს არგუმენტები რომ საშუალებებით ამ ფუნქციის 389 00:21:27,560 --> 00:21:34,380 განისაზღვრება ფარული let სიტყვით, რაც იმას ნიშნავს, რომ მე არ შემიძლია შეცვალოთ 390 00:21:34,380 --> 00:21:39,850 gradebook ცვლადი აქ. 391 00:21:39,850 --> 00:21:43,360 და რომ ერთგვარი აზრი, იმიტომ, რომ თქვენ გავლის მონაცემები. 392 00:21:43,360 --> 00:21:45,860 და თქვენ, ალბათ, არ მინდა, უნდა შეიცვალოს ქვეშ თქვენ. 393 00:21:45,860 --> 00:21:50,800 არ არის გამორიცხული, მკაფიოდ აღვნიშნო, რომ ეს არის ცვლადი აყენებს 394 00:21:50,800 --> 00:21:52,070 var სიტყვით აქ. 395 00:21:52,070 --> 00:21:56,832 მაგრამ ეს არის gotcha, რომ ჩვენ შენიშნა ადამიანი არ კეთდება წარსულში 396 00:21:56,832 --> 00:21:59,790 ის არის, რომ ისინი ფიქრობდნენ, რომ ის აპირებს იყოს ცვლადი, როდესაც, ფაქტობრივად, ეს 397 00:21:59,790 --> 00:22:02,640 არის მუდმივი. 398 00:22:02,640 --> 00:22:07,340 >> ყველა უფლება, მაშინ აქ, ამ შემთხვევაში, ჩვენ არ მითითებით დაბრუნების ტიპის. 399 00:22:07,340 --> 00:22:09,460 ჩვენ გაჩვენებთ, თუ როგორ უნდა გავაკეთოთ რომ რაღაც მომენტში. 400 00:22:09,460 --> 00:22:12,340 მაგრამ შეამჩნია, რომ აქ ჩვენ გვაქვს უბრალოდ მარტივი თუ მდგომარეობა. 401 00:22:12,340 --> 00:22:14,560 იმ შემთხვევაში, თუ gradebook არის ცარიელი, რომელიც ამ შემთხვევაში 402 00:22:14,560 --> 00:22:19,310 მხოლოდ ქონების ეს რიცხვი მასივი, მაშინ ჩვენ ამობეჭდოთ რაღაც. 403 00:22:19,310 --> 00:22:23,100 წინააღმდეგ შემთხვევაში, ჩვენ გავაკეთოთ რაღაც. 404 00:22:23,100 --> 00:22:25,000 >> საკმაოდ მარტივია იმდენად, რამდენადაც ვფიქრობ. 405 00:22:25,000 --> 00:22:27,960 მაგრამ შეჩერება ჩემთან თუ თქვენ გაქვთ რაიმე შეკითხვები. 406 00:22:27,960 --> 00:22:33,350 >> ახლა ეს ფუნქცია, საშუალო, ასევე იღებს გარკვეული არგუმენტები, უფრო სწორად ერთი არგუმენტი, 407 00:22:33,350 --> 00:22:37,507 რომელიც არის gradebook, და ამ დროს დაბრუნებას აპირებს ორმაგი ტიპის. 408 00:22:37,507 --> 00:22:39,340 იმიტომ, რომ ეს არის კომპიუტერული საშუალო და ეს 409 00:22:39,340 --> 00:22:45,010 აპირებს რეალურად დაბრუნებას, რომ კომპიუტერული საშუალოდ ნომრებზე ონლაინ. 410 00:22:45,010 --> 00:22:50,070 >> ამ შემთხვევაში, ჩვენ დააკონკრეტა დაბრუნდეს მას შემდეგ, ისარი. 411 00:22:50,070 --> 00:22:53,260 და ეს, შესაძლოა, გრძნობენ სახის უცნაური პირველი. 412 00:22:53,260 --> 00:22:55,610 თქვენ გაიზარდა მიჩვეული შექმნის სანაცვლოდ 413 00:22:55,610 --> 00:22:57,720 ტიპი ადრე სახელით ფუნქცია. 414 00:22:57,720 --> 00:23:00,310 მაგრამ თუ თქვენ ფიქრობთ ამ თვალსაზრისით მათემატიკა, 415 00:23:00,310 --> 00:23:03,320 ასე, როდესაც თქვენ გაქვთ მათემატიკის რომ განსაზღვრავს ფუნქცია, 416 00:23:03,320 --> 00:23:06,807 თქვენ გაქვთ ფუნქცია რამდენიმე საშუალებებით, და აწარმოებს გამოშვება. 417 00:23:06,807 --> 00:23:08,890 და სწორედ ის, რაც ეს უნდა mimic. 418 00:23:08,890 --> 00:23:12,460 და იქ რამდენიმე სხვა ენებზე რომ მსგავსი სინტაქსი, ისევე, 419 00:23:12,460 --> 00:23:15,674 მაგრამ ალბათ არა, რომ ვნახე CS50. 420 00:23:15,674 --> 00:23:17,090 მაგრამ მაინც არ იყოს დაბნეული მიერ. 421 00:23:17,090 --> 00:23:21,650 Arrow ნიშნავს, რა ხდება უნდა დაუბრუნდეს ამ შემთხვევაში. 422 00:23:21,650 --> 00:23:23,650 OK, ასე რომ, თუ ჩვენ ვაპირებთ გამოთვლაც ამ საშუალოდ? 423 00:23:23,650 --> 00:23:25,649 ისე, თუ gradebook არის ცარიელი, ასევე მაშინ ჩვენ 424 00:23:25,649 --> 00:23:30,731 დაბრუნებას აპირებს 0, რომელიც, შესაძლოა, გონივრული გზა მკურნალობა. 425 00:23:30,731 --> 00:23:32,980 მე არ ვიცი, მოდით მოვიდა უკან რომ ცოტა. 426 00:23:32,980 --> 00:23:34,688 ეს არ რეალურად იყოს გონივრული გზა 427 00:23:34,688 --> 00:23:38,310 გამოთვლაც საშუალოდ თუ ჩვენ გვაქვს ცარიელი gradebook. 428 00:23:38,310 --> 00:23:41,260 >> მაშინ ჩვენ მხოლოდ ასრულებს ჩვენი summation. 429 00:23:41,260 --> 00:23:43,900 გაითვალისწინეთ, რომ აქ ჩვენ რეალურად გვაქვს ალტერნატიული ვერსია 430 00:23:43,900 --> 00:23:49,190 მარყუჟის, რომელიც საშუალებას გვაძლევს iterate მეტი თითოეული ელემენტის მასივი 431 00:23:49,190 --> 00:23:53,630 და თითოეული ელემენტი საკუთარი ცვლადი. 432 00:23:53,630 --> 00:23:56,200 განსაზღვრით კლასის gradebook, რასაც ჩვენ ვამბობთ, 433 00:23:56,200 --> 00:24:00,560 ის არის, რომ ჩვენ ვაპირებთ, რომ ირიბად შექმნა ახალი მუდმივი მოუწოდა 434 00:24:00,560 --> 00:24:05,180 კლასის, რომ აპირებს წარმოადგენს ყველა უნიკალური ნივთი gradebook 435 00:24:05,180 --> 00:24:06,769 ყოველ ჯერზე, რომ ამისთვის loop iterates. 436 00:24:06,769 --> 00:24:08,560 ასე რომ, პირველად რომ ის აწარმოებს, grade იქნება 437 00:24:08,560 --> 00:24:09,800 იყოს პირველი პუნქტის gradebook. 438 00:24:09,800 --> 00:24:12,300 მეორედ ეს იქნება მეორე პუნქტის, ასე შემდეგ და ასე შემდეგ 439 00:24:12,300 --> 00:24:15,970 სანამ gradebook აქვს თავი ამოწურა ელემენტები. 440 00:24:15,970 --> 00:24:20,390 მაშინ ჩვენ შევძლებთ, რომ თანხა, რომ grade ჩვენი summation ცვლადი 441 00:24:20,390 --> 00:24:22,570 და დავიბრუნოთ ჩვენი საშუალოდ როგორც ჩვენ ვნახეთ ადრე. 442 00:24:22,570 --> 00:24:25,670 443 00:24:25,670 --> 00:24:26,950 OK, ნებისმიერი კითხვები? 444 00:24:26,950 --> 00:24:27,699 დიახ? 445 00:24:27,699 --> 00:24:28,990 აუდიტორია: მე მაქვს ორი შეკითხვა. 446 00:24:28,990 --> 00:24:33,586 ნომერი ერთი, პირობითად, შეიძლება თქვენ აწარმოებს მთელი ამ ერთი? 447 00:24:33,586 --> 00:24:35,604 არ უნდა იყოს ორმაგი, არის ის, რომ სწორი? 448 00:24:35,604 --> 00:24:37,520 DAN AMRMENDARIZ: შეგიძლიათ ვიმეორებ, რომ ამ საკითხთან დაკავშირებით? 449 00:24:37,520 --> 00:24:39,587 აუდიტორია: შემიძლია რიცხვი, როგორც საშუალო? 450 00:24:39,587 --> 00:24:41,670 DAN AMRMENDARIZ: შეგიძლიათ ამის რიცხვი, როგორც საშუალო? 451 00:24:41,670 --> 00:24:45,015 ასე რომ დაბრუნდეს რიცხვი საშუალო ნაცვლად ორმაგი? 452 00:24:45,015 --> 00:24:48,204 >> აუდიტორია: დაბრუნდება თუ არა აქვს, რომ ახლა ქვემოთ. 453 00:24:48,204 --> 00:24:49,870 DAN AMRMENDARIZ: სწორედ აქ, დაბრუნდნენ 0.0? 454 00:24:49,870 --> 00:24:51,790 აუდიტორია: Yeah, დააბრუნებს 0. 455 00:24:51,790 --> 00:24:56,590 ასე რომ, ეს იქნება ან 80 ან 85, მაგრამ არა 85.2. 456 00:24:56,590 --> 00:24:59,465 >> DAN AMRMENDARIZ: ასე რომ, ამ შემთხვევაში, ასე რომ, რამდენიმე განსხვავებული გზები 457 00:24:59,465 --> 00:25:00,090 პასუხის გაცემა. 458 00:25:00,090 --> 00:25:02,760 ნება მომეცით პასუხი მათ მიზნით. 459 00:25:02,760 --> 00:25:06,740 ასე რომ, თუ უბრალოდ ეს დაბრუნების 0, 0 არის მთელი მნიშვნელობა. 460 00:25:06,740 --> 00:25:09,730 და ისე, რომ გამოიწვევს ტიპის შეცდომა ამ შემთხვევაში 461 00:25:09,730 --> 00:25:13,210 იმიტომ, რომ ის ელოდება ორმაგი მაგრამ შემდეგ დაბრუნების რიცხვი. 462 00:25:13,210 --> 00:25:16,770 თუ მინდა დაბრუნდეს რიცხვი, შემიძლია. 463 00:25:16,770 --> 00:25:20,450 შემიძლია მითითებული დაბრუნების ტიპის to int, დაბრუნდნენ 0 აქ, 464 00:25:20,450 --> 00:25:22,047 და არ შეასრულოს ორმაგი გაყოფა. 465 00:25:22,047 --> 00:25:23,880 მაგრამ მაშინ იქნება ამით მთელი განყოფილება. 466 00:25:23,880 --> 00:25:27,080 ასე რომ, ჩვენ მაშინ არ მიიღოს საშუალოდ, რომ ჩვენ შესაძლოა ველოდოთ. 467 00:25:27,080 --> 00:25:29,210 მაგრამ დიახ, ჩვენ შეგვიძლია ცვლილებები სახის, რომ გზა. 468 00:25:29,210 --> 00:25:32,598 >> აუდიტორია: მეორეც, თქვენ აქვს ერთი ორმაგი ზედა. 469 00:25:32,598 --> 00:25:35,502 მაგრამ ქვემოთ, როდესაც თქვენ გავაკეთოთ დაბრუნების Double Double, 470 00:25:35,502 --> 00:25:38,280 რომ უკვე ავტომატურად დაბრუნების ორმაგი ფორმატში. 471 00:25:38,280 --> 00:25:42,278 რატომ მაინც უნდა განსაზღვროს ის ერთად arrow თავზე ორმაგი? 472 00:25:42,278 --> 00:25:45,010 >> DAN AMRMENDARIZ: ასე რომ, იმ შემთხვევაში, თუ ეს არის ნაწილი 473 00:25:45,010 --> 00:25:50,580 საქართველოს the-- ასე გავიმეორო შეკითხვა, იმიტომ, რომ ეს ფარული ეხლა დაბრუნების 474 00:25:50,580 --> 00:25:56,030 სახის აქ, რა ტიპის ეს რეალურად არის, ჩვენ უნდა გამოკვეთილ ერთად Swift 475 00:25:56,030 --> 00:25:59,970 ის, რაც ჩვენ გვინდა დაბრუნდეს out ამ ფუნქციის 476 00:25:59,970 --> 00:26:02,690 ასე რომ, როდესაც იგი ასრულებს ტიპი შემოწმების, ეს შეიძლება დარწმუნდით 477 00:26:02,690 --> 00:26:05,850 რომ ის, რაც ჩვენ რეალურად დაწერილი ქვემოთ რეალურად შეესაბამება, რომ. 478 00:26:05,850 --> 00:26:10,225 ასე რომ, ეს ერთგვარი მოსწონს გამშვები თავს ერთგვარი სიტუაცია. 479 00:26:10,225 --> 00:26:11,050 მაგრამ არსებობს are-- 480 00:26:11,050 --> 00:26:12,560 >> აუდიტორია: [INAUDIBLE] arrow? 481 00:26:12,560 --> 00:26:19,490 >> DAN AMRMENDARIZ: არის შემთხვევები, როდესაც ჩვენ შეუძლია მიუთითოს, რომ ჩვენ შეგვიძლია ირიბად 482 00:26:19,490 --> 00:26:21,550 მითითებული დაბრუნების ტიპის. 483 00:26:21,550 --> 00:26:23,940 მაგრამ ამ შემთხვევაში, მე არ ვფიქრობ, რომ იმუშავებს. 484 00:26:23,940 --> 00:26:26,190 არსებობს რამდენიმე სხვა სინტაქსის რომ ვნახავთ, მოგვიანებით. 485 00:26:26,190 --> 00:26:30,320 486 00:26:30,320 --> 00:26:35,280 >> ყველა უფლება, ასე რომ ეს წყარო კოდი არის ცოტა განსხვავებული 487 00:26:35,280 --> 00:26:41,839 იმიტომ, რომ ეს parses არგუმენტები ფუნქცია, რომელიც ჩვენ მოუწოდებდა. 488 00:26:41,839 --> 00:26:44,130 ნება მომეცით, თუ როგორ მუშაობს სანამ ჩვენ რეალურად გადავიდეს 489 00:26:44,130 --> 00:26:48,050 ზოგიერთი საინტერესო რამ რომ ხდება Swift. 490 00:26:48,050 --> 00:26:51,870 >> ასე რომ, ამ შემთხვევაში, მე უბრალოდ გაუშვით ეს კოდი შეამჩნევთ, რომ რასაც ის აკეთებს 491 00:26:51,870 --> 00:26:54,900 is-- ხოლო, სახის მაძლევს უცნაური შეცდომა. 492 00:26:54,900 --> 00:26:59,730 მე უნდა გაიაროს ეს რამდენიმე რიცხვებით, როგორც ბრძანების არგუმენტი. 493 00:26:59,730 --> 00:27:06,220 ასე რომ, ვნახოთ, 150 და 80, და დააჭიროთ გაირკვეს, თუ რა ეს რეალურად აკეთებს. 494 00:27:06,220 --> 00:27:09,890 ის მიღების თითოეული ეს ფასეულობები რიცხვებით. 495 00:27:09,890 --> 00:27:12,040 ეს შესაყვანი მათ gradebook. 496 00:27:12,040 --> 00:27:14,470 და მაშინ ის ასრულებდა საშუალო გაანგარიშება 497 00:27:14,470 --> 00:27:16,650 და outputting, რომ როგორც ჩვენ მოელოდა. 498 00:27:16,650 --> 00:27:19,950 >> მაგრამ, ცხადია, იქ რაღაც ხდება შესახებ ამ უარის თქმის რაიმე 499 00:27:19,950 --> 00:27:23,300 რაღაც, როგორც მთელი რიცხვი. 500 00:27:23,300 --> 00:27:27,300 როგორც თქვენ ალბათ გახსოვთ, როდესაც ჩვენ საქმე ბრძანების არგუმენტები 501 00:27:27,300 --> 00:27:32,640 C და სხვა ენებზე, პირველი 0-ე პუნქტი, რომ ბრძანების არგუმენტი 502 00:27:32,640 --> 00:27:35,774 სიაში არის სახელი ბრძანება რომ ჩვენ რეალურად შესრულებული. 503 00:27:35,774 --> 00:27:38,690 ასე რომ, ამ შემთხვევაში, მე უბრალოდ looping მთელ ბრძანების არგუმენტები. 504 00:27:38,690 --> 00:27:41,650 მაგრამ მე არ აკეთებს რაიმე ლამაზი შეამოწმეთ, გაფართოებული გამო, რომ პირველი. 505 00:27:41,650 --> 00:27:45,920 მე უბრალოდ პირდაპირ ან მე ირიბად შემოწმების, რომელიც ამ ტიპის 506 00:27:45,920 --> 00:27:49,900 რიცხვებით ადრე მე რეალურად ასრულებს ამ გამოთვლები. 507 00:27:49,900 --> 00:27:52,420 >> და რომ არსებითად რა ხდება აქ. 508 00:27:52,420 --> 00:27:55,860 ყველა არგუმენტი პროცესი არგუმენტებს, 509 00:27:55,860 --> 00:27:59,210 მე ვაპირებ შეასრულოს გარკვეული ქვითარი. 510 00:27:59,210 --> 00:28:01,970 და ამ შემთხვევაში, მე ვაპირებ ცდილობენ პირველი კონვერტირება 511 00:28:01,970 --> 00:28:07,620 რომ არგუმენტი რიცხვი მიერ შესრულების გამოკვეთილ typecast, 512 00:28:07,620 --> 00:28:12,310 იმიტომ, რომ ეს არის, შეყვანის, სიმებიანი და, ფაქტობრივად, არ არის მთელი რიცხვი. 513 00:28:12,310 --> 00:28:18,140 >> მაგრამ ეს არის ერთგვარი უცნაური სინტაქსი, თუ მიადევნე grade შეადგენს Int (არგუმენტი). 514 00:28:18,140 --> 00:28:21,120 რა ხდება რეალურად აქ არის ძალიან 515 00:28:21,120 --> 00:28:24,390 მნიშვნელოვანია, რომ თქვენი გამოყენებით Swift. 516 00:28:24,390 --> 00:28:27,610 ეს არის გამოყენებით რა არის ე.წ. სურვილისამებრ ტიპის. 517 00:28:27,610 --> 00:28:34,790 >> ასე რომ, ეს ფუნქცია, Int (არგუმენტი), ბრუნდება არა მხოლოდ რიცხვი, მაგრამ ბრუნდება 518 00:28:34,790 --> 00:28:37,470 რასაც სურვილისამებრ რიცხვი. 519 00:28:37,470 --> 00:28:41,200 ასე რომ, ეს არის ერთგვარი ტიპის თავზე ტიპის. 520 00:28:41,200 --> 00:28:45,900 შეგიძლიათ სახის წარმოიდგინეთ ეს მოსწონს ეს დაბრუნების, როგორც პაკეტი. 521 00:28:45,900 --> 00:28:47,750 და როცა გახსნა, რომ პაკეტი, არც 522 00:28:47,750 --> 00:28:53,930 აქვს მთელი რიცხვი, რომელიც არის შედეგი, და მას აქვს აბსოლუტურად არაფერი საერთოდ. 523 00:28:53,930 --> 00:28:58,140 და ეს არის სასარგებლო, როგორც შეცდომა შემოწმება მექანიზმი, რადგან ამ შემთხვევაში 524 00:28:58,140 --> 00:29:02,080 ჩვენ შეგვიძლია გავარკვიოთ, იყო ეს ტიპის კონვერტაციის წარმატებული? 525 00:29:02,080 --> 00:29:05,810 თუ ეს იყო, მაშინ ეს არის, ფაქტობრივად, აპირებს აქვს მთელი შიგნით. 526 00:29:05,810 --> 00:29:08,750 წინააღმდეგ შემთხვევაში, ის აპირებს, რომ გარკვეული ღირებულება, რომელიც ჩვენ მოვუწოდებთ nil, რომელიც 527 00:29:08,750 --> 00:29:10,920 წარმომადგენელი არ რიცხვი ყველა. 528 00:29:10,920 --> 00:29:13,270 ეს მართლაც წარმომადგენელი არაფერი. 529 00:29:13,270 --> 00:29:18,130 >> ასე რომ, თუ მშენებლობა საშუალებას გვაძლევს unwrap რომ პაკეტი, 530 00:29:18,130 --> 00:29:19,850 რომ სურვილისამებრ სავალდებულო. 531 00:29:19,850 --> 00:29:25,560 და თუ ჩვენ შეგვიძლია unwrap, რომ პაკეტი და იპოვოს მთელი შიგნით, 532 00:29:25,560 --> 00:29:27,720 მაშინ, რასაც ჩვენ ვამბობთ აქ არის ის, რომ ჩვენ მაშინ 533 00:29:27,720 --> 00:29:33,090 საშუალებას იძლევა, რომ ღირებულება უნდა ამოქმედდა ეს მუდმივი მოუწოდა კლასის. 534 00:29:33,090 --> 00:29:36,590 და ეს ნაწილი, თუ განაცხადი, ზედა ნაწილი, თუ განაცხადი 535 00:29:36,590 --> 00:29:40,390 მიიღებს, იმიტომ, რომ Unwrap წარმატებული იყო. 536 00:29:40,390 --> 00:29:43,290 >> თუ ეს ასე მოხდება, რომ იქ იყო შეცდომა, ალბათ, 537 00:29:43,290 --> 00:29:47,040 ამ გამოკვეთილ ტიპის კონვერტაციის სიმებიანი რიცხვი, შესაძლოა, 538 00:29:47,040 --> 00:29:49,160 ის ღირებულება ABC მაგალითად. 539 00:29:49,160 --> 00:29:52,120 და ეს არის რეალურად არ აპირებს კონვერტირება რიცხვი. 540 00:29:52,120 --> 00:29:55,520 მაშინ იგი დაბრუნდება ნული, რომელიც არ არის მთელი რიცხვი. 541 00:29:55,520 --> 00:29:57,570 და ეს თუ განაცხადი კარგად მაშინ ვერ. 542 00:29:57,570 --> 00:30:01,930 grade არ არსებობს, რადგან მას არ აქვს მთელი შინაარსი. 543 00:30:01,930 --> 00:30:06,391 და მას მიიღებს ამ სხვა ბლოკი ნაცვლად. 544 00:30:06,391 --> 00:30:06,890 დიახ? 545 00:30:06,890 --> 00:30:09,652 >> აუდიტორია: Nil არის N-I-L? 546 00:30:09,652 --> 00:30:11,110 DAN AMRMENDARIZ: ნული არის N-I-L, დიახ. 547 00:30:11,110 --> 00:30:14,970 548 00:30:14,970 --> 00:30:20,310 >> ასე რომ, ეს, შესაძლოა, ერთ-ერთი უმძიმესი რამ Swift, 549 00:30:20,310 --> 00:30:23,690 განსაკუთრებით მაშინ, როდესაც თქვენ სარეველას შესახებ iOS app 550 00:30:23,690 --> 00:30:27,442 და თქვენ რეალურად ცდილობს უნდა გავაკეთოთ ზოგიერთი განვითარების არსებობს. 551 00:30:27,442 --> 00:30:29,400 ეს იქნება ყვირილი თქვენ შესახებ სურვილისამებრ. 552 00:30:29,400 --> 00:30:33,050 ეს იქნება გეკითხებით კითხვის ნიშნები და ძახილის რაოდენობა. 553 00:30:33,050 --> 00:30:37,100 მაგრამ ერთხელ თქვენ გაერკვნენ out-- თუ გამოიჩინოს გარკვეული დრო მჭიდროდაა 554 00:30:37,100 --> 00:30:41,990 რა ხდება პირობითი ტიპის, თქვენ გადარჩენა თავს ბევრი თავის ტკივილი 555 00:30:41,990 --> 00:30:46,040 როგორც თქვენ ცდილობთ დაწერა ოთახი Swift. 556 00:30:46,040 --> 00:30:47,660 >> ეს, ფაქტობრივად, ძალიან ძლიერი ფუნქცია. 557 00:30:47,660 --> 00:30:49,826 და თქვენ უბრალოდ უნდა ჩემს სიტყვას, რომ ახლა. 558 00:30:49,826 --> 00:30:52,620 მაგრამ ჩვენ ვხედავთ, ეს მშენებლობა და სხვები მომწონს 559 00:30:52,620 --> 00:30:56,740 ზოგიერთი სხვა კოდის რომ ჩვენ გავხდით, თუ მხოლოდ ცოტა. 560 00:30:56,740 --> 00:31:00,440 >> არსებობს რაიმე საწყის კითხვები აქ? 561 00:31:00,440 --> 00:31:03,790 562 00:31:03,790 --> 00:31:08,690 ამიტომ მნიშვნელოვანია takeaway არის, რომ სურვილისამებრ ტიპის არის ერთგვარი metatype. 563 00:31:08,690 --> 00:31:12,500 ეს არც აქვს მნიშვნელობა, და თუ ეს ასეა, მაშინ ეს 564 00:31:12,500 --> 00:31:18,110 ალბათ აქვს, რომ ასოცირებული მნიშვნელობა მას, ან მას არ აქვს მნიშვნელობა განაწილებაზე, 565 00:31:18,110 --> 00:31:19,620 და იგი წარმოადგენდა ნული. 566 00:31:19,620 --> 00:31:24,210 567 00:31:24,210 --> 00:31:28,870 დანარჩენი ეს არის ალბათ როგორც თქვენ მოელოდა. 568 00:31:28,870 --> 00:31:32,900 >> მოდით გაეზარდათ სირთულე კიდევ ერთხელ. 569 00:31:32,900 --> 00:31:37,070 და ამ დროს, მოდით შევხედოთ ზოგიერთი სხვა მონაცემთა ტიპები რომ რეალურად არსებობს. 570 00:31:37,070 --> 00:31:41,290 ერთ-ერთი მათგანი ლექსიკონები, რომელიც ძალიან ჰგავს Python ლექსიკონები. 571 00:31:41,290 --> 00:31:48,270 ეს გარკვეულწილად მსგავსი hash მაგიდა C. ეს არსებითად რუკების ღილაკები 572 00:31:48,270 --> 00:31:49,820 გასაღებები შეიძლება სტრიქონები. 573 00:31:49,820 --> 00:31:52,670 და როდესაც თქვენ ეძებოთ იმ გასაღებები, იმ გასაღებები ექნება მნიშვნელობა. 574 00:31:52,670 --> 00:31:56,020 ასე რომ, ეს არ არის საკმაოდ მასივი, მაგრამ ნაცვლად, უფრო მჭიდროდ უკავშირდება 575 00:31:56,020 --> 00:31:58,810 რომ hash რუკა ან hash მაგიდა. 576 00:31:58,810 --> 00:32:02,420 >> ვნახოთ, როგორ ეს უნდა მუშაობა, სანამ ჩვენ რეალურად 577 00:32:02,420 --> 00:32:05,210 წასვლას კოდის თავად. 578 00:32:05,210 --> 00:32:07,680 თუ უბრალოდ აწარმოებს, არაფერი არ ხდება. 579 00:32:07,680 --> 00:32:12,430 ის მეუბნებოდა, რომ მე ველოდებით ზოგიერთი პარამეტრების შემდეგ ტიპის. 580 00:32:12,430 --> 00:32:16,050 ამიტომ, მე ვაპირებ, რათა უზრუნველყოს მას რამდენიმე პრობლემა კომპლექტი სახელები, 581 00:32:16,050 --> 00:32:18,490 ასე pset0, იქნებ მე მივიღე 100. 582 00:32:18,490 --> 00:32:20,790 და pset1, მე მივიღე 5. 583 00:32:20,790 --> 00:32:24,630 და მერე გამოცდა, მე გააკეთა ნამდვილად კარგად და მიიღო 30. 584 00:32:24,630 --> 00:32:27,180 და oops, მე მოხვდა სივრცეში აქ. 585 00:32:27,180 --> 00:32:30,940 >> როდესაც მე დააჭიროთ, ხედავთ იგი ასრულებს გამოთვლები. 586 00:32:30,940 --> 00:32:33,740 იგი აცხადებს, რომ gradebook სამი შეფასება, pset1, pset0, გამოცდა. 587 00:32:33,740 --> 00:32:36,120 და gradebook აქვს ამ კონკრეტულ საშუალოდ. 588 00:32:36,120 --> 00:32:38,370 ასე რომ კიდევ ერთხელ, ჩვენ ვმუშაობთ ამ gradebook იდეა, 589 00:32:38,370 --> 00:32:44,650 მაგრამ ჩვენ ვაპირებთ გავაგრძელოთ iterating სირთულის ჩვენი ფუნქცია. 590 00:32:44,650 --> 00:32:47,650 >> ასე რომ, დაწყების, ჩვენ უბრალოდ შექმნას აპირებს ფუნქცია, რომელიც 591 00:32:47,650 --> 00:32:49,390 პასუხისმგებელია დაბეჭდვის გამოყენება. 592 00:32:49,390 --> 00:32:51,920 და არსებობს ამ გასასვლელი ფუნქცია რომელიც მხოლოდ 593 00:32:51,920 --> 00:32:53,710 იძულებით დატოვა განაცხადს. 594 00:32:53,710 --> 00:32:56,530 ეს არ არის ის, რაც თქვენ გამოიყენოთ iOS app. 595 00:32:56,530 --> 00:32:59,750 ეს არის მხოლოდ, რომ ამ შემთხვევაში, ბრძანების არგუმენტი. 596 00:32:59,750 --> 00:33:01,990 შემდეგი დავიწყებთ სვლას Xcode. 597 00:33:01,990 --> 00:33:07,760 მაგრამ ეს არის კონკრეტული ბრძანება ხაზის სტილი პროგრამის Swift. 598 00:33:07,760 --> 00:33:11,490 >> მოდით შევხედოთ ზოგიერთი საინტერესო რამ აქ. 599 00:33:11,490 --> 00:33:15,150 ვნახოთ, მხოლოდ რამდენიმე საინტერესო რამ, რომ აღარაფერი ვთქვათ, ალბათ, 600 00:33:15,150 --> 00:33:19,930 არის, რომ ჩემი ფუნქცია ბეჭდვის რაოდენობის შეფასება, 601 00:33:19,930 --> 00:33:26,090 ალბათ გახსოვთ, რომ მე მქონდა, რომ სიაში საქართველოს items-- pset1, pset0 და გამოცდა. 602 00:33:26,090 --> 00:33:29,130 თქვენ შეგიძლიათ რეალურად სწრაფად და მარტივად ამისათვის 603 00:33:29,130 --> 00:33:34,490 აღების gradebook, რომელიც არის ლექსიკონი, რომელიც გასაღებები და ღირებულებები. 604 00:33:34,490 --> 00:33:38,730 ს ყველა გასაღები მეშვეობით the dot გასაღებები მეთოდი აქ, 605 00:33:38,730 --> 00:33:43,180 და შემდეგ გამოიყენოს ეს joinWithSeparator, რომელიც მაშინ ყველა გასაღებები 606 00:33:43,180 --> 00:33:48,590 , რომ ჩვენ აკრეფილი, pset1-- ან უკაცრავად, pset0, pset1 და exam-- 607 00:33:48,590 --> 00:33:53,030 და concatenate მათ ერთად გამოყენებით მძიმით და სივრცეში 608 00:33:53,030 --> 00:33:55,400 რომ შევქმნათ ერთი ხანგრძლივი string. 609 00:33:55,400 --> 00:34:00,190 ეს ოპერაციას მხოლოდ ფენომენალურად სასარგებლო სხვადასხვა კონტექსტში. 610 00:34:00,190 --> 00:34:03,450 ასე რომ, ეს არის ამ joinWithSeparator. 611 00:34:03,450 --> 00:34:06,939 >> და ეს არის ერთი რამ, რომ შეიცვალა Swift 1 Swift 2. 612 00:34:06,939 --> 00:34:08,730 არ უნდა იყოს Python style-- თუ თქვენ 613 00:34:08,730 --> 00:34:13,219 იცნობს Python-- პითონის სტილი შეუერთდეს მეთოდი სიმები. 614 00:34:13,219 --> 00:34:15,699 მაგრამ რომ აღარ არის იმ შემთხვევაში, Swift 2. 615 00:34:15,699 --> 00:34:19,400 გსურთ გამოიყენოთ თუ გსურთ to concatenate მასივი პერსონალი 616 00:34:19,400 --> 00:34:23,380 ერთად სიმებიანი. 617 00:34:23,380 --> 00:34:27,889 >> ასე რომ, ალბათ მაშინ ჩვენი განხილვა საშუალოდ ადრე, 618 00:34:27,889 --> 00:34:32,659 ის, რაც ცოტა მეტი აზრი ჩვენთვის მითითებული საშუალო ფუნქცია 619 00:34:32,659 --> 00:34:36,610 უნდა იყოს სურვილისამებრ ორმაგი საკმაოდ ვიდრე უბრალოდ გამოკვეთილ ორმაგი. 620 00:34:36,610 --> 00:34:39,239 იმის გამო, რომ ჩვენ გვქონდა, რომ უჩვეულო მდგომარეობა, სადაც, 621 00:34:39,239 --> 00:34:41,550 რა მოხდება, თუ gradebook რეალურად არ გააჩნია ღირებულებები მასში? 622 00:34:41,550 --> 00:34:44,280 რა უნდა საშუალო სანაცვლოდ? 623 00:34:44,280 --> 00:34:46,350 >> ისე იქნებ C თქვენ რომ არ კეთდება რამე 624 00:34:46,350 --> 00:34:50,040 როგორიცაა გათვალისწინებული Sentinel ღირებულება, როგორც 0.0, ან იქნებ უარყოფითი ნომერი, 625 00:34:50,040 --> 00:34:53,690 ან რაღაც წარმოადგენს ის ფაქტი, რომ გარკვეული შეცდომა მდგომარეობა 626 00:34:53,690 --> 00:34:57,910 და თქვენ ალბათ არ რეალურად უნარი გამოთვლაც, რომ საშუალო. 627 00:34:57,910 --> 00:35:05,590 კარგად სილამაზის განსაზღვროს სურვილისამებრ ტიპის იქნება ამის გაკეთება. 628 00:35:05,590 --> 00:35:09,540 და მე ახლა ვამბობ, რომ ყველა ეს სიტყვა, მაგრამ ეს, ფაქტობრივად, არ გამოიყენოთ optionals. 629 00:35:09,540 --> 00:35:12,970 მაგრამ ჩვენ ვხედავთ, რომ მხოლოდ -ე, სადაც ჩვენ შეგვიძლია მითითებული საშუალოდ 630 00:35:12,970 --> 00:35:17,230 უნდა იყოს სურვილისამებრ მონაცემები ტიპის ისე, რომ იმ შემთხვევაში, თუ ის რეალურად ბრუნდება გარკვეული მონაცემები, მაშინ 631 00:35:17,230 --> 00:35:18,470 დავიბრუნებთ, რომ მონაცემები. 632 00:35:18,470 --> 00:35:20,570 წინააღმდეგ შემთხვევაში დავიბრუნებთ nil და განაცხადა, რომ ამ 633 00:35:20,570 --> 00:35:22,200 არ მნიშვნელოვანი გამოთვლები. 634 00:35:22,200 --> 00:35:25,650 635 00:35:25,650 --> 00:35:28,570 >> მოდით გადაადგილება რაღაც. 636 00:35:28,570 --> 00:35:35,910 ასე რომ, აქ, ჩვენ უკვე ეძებს ყველა ეს მაგალითები ბრძანების. 637 00:35:35,910 --> 00:35:39,470 მაგრამ რეალურად, თუ რას აპირებს იყოს საქმე არის Xcode. 638 00:35:39,470 --> 00:35:43,720 ერთ-ერთი ყველაზე ლამაზი რამ Xcode, და კონკრეტულად Swift, 639 00:35:43,720 --> 00:35:47,450 ის არის, რომ ჩვენ გვაქვს ეს რამ მოუწოდა მოედანი. 640 00:35:47,450 --> 00:35:51,470 და Playground არის საერთოდ iOS app. 641 00:35:51,470 --> 00:35:54,751 მაგრამ ეს გაძლევთ საშუალებას ექსპერიმენტი ერთად Swift ძალიან მარტივი გზა. 642 00:35:54,751 --> 00:35:56,000 შეგიძლიათ აკრიფოთ ყველა თქვენი კოდი. 643 00:35:56,000 --> 00:35:58,140 ეს ლამაზად სინტაქსის მონიშნულია აქ. 644 00:35:58,140 --> 00:36:01,600 როდესაც თქვენ შექმნათ ახალი ფაილი, ეს იქნება ითხოვენ თუ თქვენ გსურთ შექმნათ მოედანი. 645 00:36:01,600 --> 00:36:08,720 მაგრამ ლამაზი რამ შესახებ Playground ის არის, რომ მარჯვენა ფანჯარა, 646 00:36:08,720 --> 00:36:12,020 ის რეალურად გაჩვენებთ გამომავალი თქვენი კოდი. 647 00:36:12,020 --> 00:36:16,110 ასე რომ, თუ მე გადახვევა ქვემოთ, ჩვენ ვხედავთ, თუ რა გამომავალი სხვადასხვა ხაზების კოდი 648 00:36:16,110 --> 00:36:17,200 რეალურად ხდება, რომ იყოს. 649 00:36:17,200 --> 00:36:19,850 650 00:36:19,850 --> 00:36:26,790 >> ასე რომ, ამ შემთხვევაში, ჩვენ ვაპირებთ შეცვლის მიმართულებით ცოტა 651 00:36:26,790 --> 00:36:30,960 და ვისაუბროთ რაღაც რომ მართლაც მნიშვნელოვანია, რომ ამ მაღალი დონის გზა 652 00:36:30,960 --> 00:36:34,020 რომ Swift მუშაობს, და ეს ამ იდეას დახურვა. 653 00:36:34,020 --> 00:36:36,960 და თქვენ ალბათ გინახავთ ეს ცოტა JavaScript. 654 00:36:36,960 --> 00:36:40,770 იმ თქვენ, რომ არის CS50, დახურვა 655 00:36:40,770 --> 00:36:47,240 ძალიან პოპულარულია, ძალიან კარგი გზა აკეთებს მაღალი დონის რამ თანამედროვე ენებზე. 656 00:36:47,240 --> 00:36:50,270 მაგრამ ეს ასევე სახის რთული გადაიტანოთ თქვენი უფროსი გარშემო პირველად. 657 00:36:50,270 --> 00:36:52,269 ასე რომ, თუ შევხედავთ ამ პირველად, რომ კარგადაა. 658 00:36:52,269 --> 00:36:56,740 უბრალოდ შევხედოთ წყარო კოდი და ვნახოთ თუ შეგიძლიათ გაერკვნენ ის სახლში. 659 00:36:56,740 --> 00:37:01,050 >> ასე რომ, ამ შემთხვევაში, ვთქვათ, რომ ჩვენ გსურთ შექმნათ უამრავი ექსპონატი 660 00:37:01,050 --> 00:37:04,134 გარკვეული ფიქსირებული ღირებულება. 661 00:37:04,134 --> 00:37:05,800 ასე რომ, ამ შემთხვევაში, მე შეიძლება შეიქმნას ფუნქცია. 662 00:37:05,800 --> 00:37:09,270 მე ვაპირებ მოვუწოდო მას ძალა 2, რომლის ერთადერთი მიზანი ცხოვრებაში 663 00:37:09,270 --> 00:37:15,770 არის გარკვეული შეყვანის და ორმაგი მას, და დაბრუნდება რომ ღირებულება. 664 00:37:15,770 --> 00:37:21,210 ყურადღება მიაქციეთ, რომ აქ ვარ მიღების ერთ-ერთი ტიპის მონაცემები. 665 00:37:21,210 --> 00:37:23,137 ეს იქნება ცვლადში x. 666 00:37:23,137 --> 00:37:23,970 ეს არის ტიპის ორმაგი. 667 00:37:23,970 --> 00:37:26,190 და მე ვაპირებ დაბრუნებას ორმაგი აქ. 668 00:37:26,190 --> 00:37:29,100 და მე უბრალოდ აპირებს ძალიან, სიმართლე გითხრათ, საკმაოდ 669 00:37:29,100 --> 00:37:32,650 გულუბრყვილო გზა გაორმაგდა მნიშვნელობა. 670 00:37:32,650 --> 00:37:35,600 და მე გაჩვენებთ, თუ რატომ ეს სასარგებლო მხოლოდ მეორე. 671 00:37:35,600 --> 00:37:40,418 >> გაითვალისწინეთ, რომ აქ ჩვენ გვაქვს ეს სპექტრი ერთხელ. რაღაც 1, dot 672 00:37:40,418 --> 00:37:44,130 dot dot, 2, რაც ნიშნავს, რომ ამ მარყუჟის ორჯერ. 673 00:37:44,130 --> 00:37:46,480 მაგრამ ეს წარმოადგენს რაღაც ცვლადი. 674 00:37:46,480 --> 00:37:49,650 ეს იმას ნიშნავს, რომ მე ნამდვილად არ აპირებს გამოყენებით, რომელიც ცვლადი სადმე 675 00:37:49,650 --> 00:37:51,070 შიგნით ამ loop. 676 00:37:51,070 --> 00:37:55,380 მე უბრალოდ მინდა ეს ხაზი კოდი აწარმოებს ორჯერ, 677 00:37:55,380 --> 00:37:58,980 გარეშე სჭირდება იცოდეს ღირებულება რომ დიაპაზონი. 678 00:37:58,980 --> 00:38:02,570 >> ასე რომ, ამ შემთხვევაში, მე გაშვებული შედეგი ჯერ x ორჯერ, რომელიც არსებითად 679 00:38:02,570 --> 00:38:06,560 იმას ნიშნავს, რომ მე squaring მნიშვნელობა. 680 00:38:06,560 --> 00:38:10,230 და ეს მოხდება, მუშაობა, როგორც ჩვენ მოველით. 681 00:38:10,230 --> 00:38:16,410 სიმძლავრე 2 გავლით ღირებულება 2.0 გვაძლევს გამოშვება 4. 682 00:38:16,410 --> 00:38:18,810 3.2 სამუშაოების 10,24. 683 00:38:18,810 --> 00:38:22,660 >> ახლა ჩვენ შეგვიძლია გავაკეთოთ მსგავსი რამ ძალა 3. 684 00:38:22,660 --> 00:38:25,330 მაგრამ ახლა შეცვლის მხოლოდ სპექტრი. 685 00:38:25,330 --> 00:38:28,840 იყიდება რაღაც ცვლადი 1 მეშვეობით 3, გამრავლების 3-ჯერ, 686 00:38:28,840 --> 00:38:29,830 და იგივე რამ. 687 00:38:29,830 --> 00:38:32,240 >> ასე რომ, ეს შეიძლება გრძნობენ ცოტა contrived. 688 00:38:32,240 --> 00:38:34,270 მაგრამ არ არის მნიშვნელოვანი რამ აქ, რომელიც 689 00:38:34,270 --> 00:38:37,770 ის არის, რომ ჩვენ შევხედავთ ეს ორი ფუნქცია, არსებობს 690 00:38:37,770 --> 00:38:43,600 მხოლოდ ერთი რამ, რომ სხვადასხვა, რომელიც ამ ღირებულების სპექტრი. 691 00:38:43,600 --> 00:38:46,910 ყველაფერი დანარჩენი ამ ორი ფუნქციები, ძალა 3 და ძალა 2, 692 00:38:46,910 --> 00:38:50,440 რომლებიც, ფაქტობრივად, ერთნაირი, რადგან ისინი მუშაობენ იგივე გზით. 693 00:38:50,440 --> 00:38:53,460 >> ასე რომ, ამ ეტაპზე, ცოტა განგაშის ზარი უნდა აპირებს off. 694 00:38:53,460 --> 00:38:56,200 იმედია, თუ რას ამბობდა, თქვენ იცით, რომ ეს გრძნობს ცოტა 695 00:38:56,200 --> 00:38:59,250 ისევე როგორც დუბლირებას ძალისხმევა. 696 00:38:59,250 --> 00:39:02,950 ალბათ არსებობს გზა, რომ მე შეძლებს encapsulate ყველა ამ 697 00:39:02,950 --> 00:39:06,630 და ფუნქცია ან შექმნათ ფუნქცია, რომელიც 698 00:39:06,630 --> 00:39:11,550 ჯერ ზუსტად რა მინდა გარეშე სჭირდება აკრიფოთ ის მკაფიოდ. 699 00:39:11,550 --> 00:39:15,732 და ეს არის ის, რაც ძალა ერთი დახურვის საშუალებას გვაძლევს გავაკეთოთ. 700 00:39:15,732 --> 00:39:16,940 მოდით შევხედოთ ეს. 701 00:39:16,940 --> 00:39:18,700 და მე გაატარონ რამდენიმე წუთი, რადგან ეს 702 00:39:18,700 --> 00:39:20,310 საკმაოდ მნიშვნელოვანია Swift. 703 00:39:20,310 --> 00:39:22,900 ჩვენ ვხედავთ, ეს ყველა დროის. 704 00:39:22,900 --> 00:39:24,550 ჩვენ ვაპირებთ, რომ განსაზღვრავს ფუნქცია. 705 00:39:24,550 --> 00:39:26,380 ის აპირებს ეწოდოს powerOf. 706 00:39:26,380 --> 00:39:29,470 იგი აპირებს მიიღოს პარამეტრი ეწოდება y ტიპის Int. 707 00:39:29,470 --> 00:39:32,220 მაგრამ შევხედოთ დაბრუნების ტიპის. 708 00:39:32,220 --> 00:39:38,730 დაბრუნების ტიპის არის, ფრჩხილებში, ორმაგი ისარი ორმაგი. 709 00:39:38,730 --> 00:39:43,370 რაც იმას ნიშნავს, რომ ამ ფუნქციას, ამ ფუნქციის powerOf, 710 00:39:43,370 --> 00:39:46,550 დაბრუნების ფუნქცია. 711 00:39:46,550 --> 00:39:50,845 ეს იღებს ორმაგი და დაბრუნების ორმაგი. 712 00:39:50,845 --> 00:39:53,720 ასე რომ, შეიძლება გასწავლოთ სახის გიჟები, მაგრამ მოდით გადახვევა ქვემოთ ცოტა 713 00:39:53,720 --> 00:39:55,060 და დაინახოს, რა მოხდება. 714 00:39:55,060 --> 00:39:57,910 ჩვენ შიგნით ამ ფუნქციის powerOf. 715 00:39:57,910 --> 00:40:00,760 ჩვენ ქმნის ახალი ფუნქცია მოუწოდა exponentiator, 716 00:40:00,760 --> 00:40:02,900 მაგრამ ეს არ აქვს მნიშვნელობა, რა არის. 717 00:40:02,900 --> 00:40:06,410 >> გაითვალისწინეთ, რომ ეს შეყვანის ღირებულების x. 718 00:40:06,410 --> 00:40:09,910 და ეს არის აღების ორმაგი და დაბრუნების ორმაგი. 719 00:40:09,910 --> 00:40:16,320 და ეს არის ერთი და იგივე კოდი რომ ჩვენ დაინახა ზემოთ, გარდა იმისა, რომ ღირებულება 2 720 00:40:16,320 --> 00:40:20,060 ან ღირებულება 3, რომელიც ზედა ზღვარი ამ სპექტრი, 721 00:40:20,060 --> 00:40:23,210 უკვე შეცვალა ეს ღირებულება y, რომელიც 722 00:40:23,210 --> 00:40:27,230 იყო თავდაპირველი პარამეტრი ჩვენი powerOf ფუნქცია. 723 00:40:27,230 --> 00:40:31,700 და ამ ეტაპზე, ჩვენ დაბრუნდეს exponentiator. 724 00:40:31,700 --> 00:40:33,345 ჩვენ დაბრუნების ფუნქცია. 725 00:40:33,345 --> 00:40:36,300 726 00:40:36,300 --> 00:40:39,550 >> ეს არის ერთგვარი მოსწონს პატარა გონება აფეთქებით. 727 00:40:39,550 --> 00:40:44,360 მაგრამ წარმოიდგინეთ, რა მოხდება როდესაც მე მოვუწოდებ ამ ფუნქციის powerOf 728 00:40:44,360 --> 00:40:47,610 და გაივლის მას გარკვეული მნიშვნელობა, როგორიცაა 2. 729 00:40:47,610 --> 00:40:50,020 რას ნიშნავს ეს, რომ ახლა აქვს მნიშვნელობა 730 00:40:50,020 --> 00:40:55,130 2 y, რაც იმას ნიშნავს, რომ ეს მნიშვნელობა y ამ exponentiator ფუნქცია 731 00:40:55,130 --> 00:40:56,410 იქნება, რომ ღირებულების 2. 732 00:40:56,410 --> 00:41:01,290 მაგრამ მე დაბრუნების exponentiator ფუნქცია. 733 00:41:01,290 --> 00:41:05,900 >> ასე რომ შეამჩნია რა Swift ამბობს, რომ მე შევქმენით ამ შემთხვევაში. 734 00:41:05,900 --> 00:41:10,550 მიადევნე მოედანზე განმარტება, რომ ეს ფუნქცია, რომელიც იღებს ორმაგი 735 00:41:10,550 --> 00:41:12,610 და დააბრუნებს ორმაგი. 736 00:41:12,610 --> 00:41:16,590 მე შევქმენი ფუნქცია რომ მოედნები რაღაც 737 00:41:16,590 --> 00:41:19,782 ამ მექანიზმის გამოყენებით უფლება აქ. 738 00:41:19,782 --> 00:41:22,490 და მართლაც, რა ხდება, ის, რომ დაბრუნების ფუნქცია 739 00:41:22,490 --> 00:41:26,390 exponentiator, მაგრამ ეს მნიშვნელობა y გახვეული შიგნით მას. 740 00:41:26,390 --> 00:41:31,080 ასე რომ, ახლა ყოველ ჯერზე გამოვიყენო ეს ცვლადი და მუდმივი მოუწოდა 741 00:41:31,080 --> 00:41:35,180 მოედანზე, ეს ის აპირებს უნდა მოიქცეს როგორც ფუნქცია. 742 00:41:35,180 --> 00:41:39,960 ასე რომ, მე მაშინ მოვუწოდებთ, რომ ცვლადი როგორც მე მინდა მოვუწოდო ფუნქცია, 743 00:41:39,960 --> 00:41:43,830 და გაივლის შევიდა რიგი, როგორც ამ შემთხვევაში 3. 744 00:41:43,830 --> 00:41:45,910 და მე მაშინ კვადრატში მნიშვნელობა. 745 00:41:45,910 --> 00:41:53,340 ასე რომ 3 კვადრატი შემდეგ გახდა 9, როგორც ვხედავთ, აქ. 746 00:41:53,340 --> 00:41:56,530 >> მართლაც გიჟები, მაგრამ ეს ახლა საშუალებას იძლევა საშუალებას, 747 00:41:56,530 --> 00:41:59,040 შექმნათ სხვა powerOf ფუნქციები. 748 00:41:59,040 --> 00:42:03,680 ისევე, როგორც მე შემიძლია ვთქვა, OK, ასევე ახლა მინდა რათა შეიქმნას ახალი ფუნქცია, powerOf (3), 749 00:42:03,680 --> 00:42:06,290 და შესანახად, რომელიც შევიდა მუდმივი მოუწოდა კუბი. 750 00:42:06,290 --> 00:42:10,220 ახლა კუბი იქნება ცალკე ფუნქცია, რომელიც შემდეგ 751 00:42:10,220 --> 00:42:14,800 გარკვეული მნიშვნელობა როგორც შეყვანის და კუბი რომ მნიშვნელობა როგორც ვხედავთ, ქვედა ხაზი 752 00:42:14,800 --> 00:42:16,420 აქ. 753 00:42:16,420 --> 00:42:18,590 კუბი 2 აპირებს გამოიწვიოს 8. 754 00:42:18,590 --> 00:42:21,330 755 00:42:21,330 --> 00:42:22,680 >> იმედია საკმაოდ სუფთა პერსონალი. 756 00:42:22,680 --> 00:42:25,920 თქვენ არასოდეს მინახავს ეს ადრე. 757 00:42:25,920 --> 00:42:29,990 მე გარწმუნებთ, რომ შეესწავლათ დახურვა და გამოიძიოს ამ ცოტა მეტი. 758 00:42:29,990 --> 00:42:33,570 ეს მართლაც ძლიერი პერსონალი ჩვენ ვხედავთ ბევრი JavaScript და სხვა ენებზე. 759 00:42:33,570 --> 00:42:37,160 ეს მართლაც მნიშვნელოვანია, რომ გაგება APIs ასევე 760 00:42:37,160 --> 00:42:38,620 რომ ჩვენ კიდევ მხოლოდ მეორე. 761 00:42:38,620 --> 00:42:39,456 დიახ? 762 00:42:39,456 --> 00:42:43,740 >> აუდიტორია: როდესაც თქვენ powerOf (2), ფრჩხილებში, და შემდეგ 763 00:42:43,740 --> 00:42:48,764 სხვა ფრჩხილებში, კიდევ შეყვანის თქვენ ძირითადად შეცვლის მოედანზე. 764 00:42:48,764 --> 00:42:50,930 DAN AMRMENDARIZ: ასე გამოიყურება ძალიან ბოლო ხაზი აქ. 765 00:42:50,930 --> 00:42:55,930 სინამდვილეში ეს არის სრულიად შესაძლებელია გავაკეთოთ, რომ მიჯაჭვის როგორც თქვენ შესთავაზა. 766 00:42:55,930 --> 00:43:00,990 ასე რომ, powerOf (5) ნიშნავს, რომ ჩვენ ვაპირებთ აქვს exponentiator 5 აქ. 767 00:43:00,990 --> 00:43:04,160 ასე რომ, ეს არსებითად იქნება იგივე 4 მეხუთე ძალა, 768 00:43:04,160 --> 00:43:07,200 იმიტომ, რომ ჩვენ შევქმენით exponentiating ფუნქციონირებს მეხუთე ძალა, 769 00:43:07,200 --> 00:43:09,920 და ჩვენ გავლით შევიდა რომ ფუნქციონირებას ღირებულება 4. 770 00:43:09,920 --> 00:43:12,619 და მივიღებთ, რომ ღირებულება რომ ჩვენ ველით, 1024. 771 00:43:12,619 --> 00:43:14,785 აუდიტორია: ეს არ არის ასახელებს, ასე რომ ხდის ადვილია 772 00:43:14,785 --> 00:43:16,570 წავიკითხე, მოედანზე რასაც. 773 00:43:16,570 --> 00:43:17,903 >> DAN AMRMENDARIZ: მარჯვენა, ზუსტად. 774 00:43:17,903 --> 00:43:21,120 ასე რომ, სანამ უბრალოდ განათავსოთ შევიდა მუდმივი აქ ასე 775 00:43:21,120 --> 00:43:23,808 რომ გახადა მარტივი, რომ სახელი. 776 00:43:23,808 --> 00:43:24,308 დიახ? 777 00:43:24,308 --> 00:43:26,942 >> აუდიტორია: ამ კონტექსტში powerOf, ეს ნაწილი 778 00:43:26,942 --> 00:43:30,774 პროგრამირების ენა როგორც ეწინააღმდეგებოდა გზა 779 00:43:30,774 --> 00:43:33,952 ვფიქრობ, powerOf [INAUDIBLE]? 780 00:43:33,952 --> 00:43:35,660 DAN AMRMENDARIZ: ასე რომ, ამ შემთხვევაში, powerOf 781 00:43:35,660 --> 00:43:39,280 უბრალოდ სახელი ფუნქცია, რომ მე განსაზღვრული აქ. 782 00:43:39,280 --> 00:43:41,801 ასე რომ, ეს არ არის დამახასიათებელი ენაზე თავისთავად, 783 00:43:41,801 --> 00:43:43,550 არამედ, ეს, უბრალოდ, ფუნქცია, რომელიც აქვს 784 00:43:43,550 --> 00:43:45,628 ეს სახელი იმიტომ, რომ მე მისთვის, რომ სახელი. 785 00:43:45,628 --> 00:43:48,770 786 00:43:48,770 --> 00:43:51,920 ნებისმიერი სხვა კითხვები? 787 00:43:51,920 --> 00:43:52,800 კარგი. 788 00:43:52,800 --> 00:43:54,750 >> ახლა ეს არის დიდი. 789 00:43:54,750 --> 00:43:58,170 მაგრამ თქვენ არ აპირებს ვხედავ ბევრი დახურვის ფუნქციები, რომელიც 790 00:43:58,170 --> 00:44:03,440 არის მსგავსი, სადაც თქვენ განსაზღვრავს, ქვეყნის შიგნით ერთ-ერთი ფუნქცია, სხვა ფუნქცია. 791 00:44:03,440 --> 00:44:04,320 და თქვენ შეგიძლიათ ამის გაკეთება. 792 00:44:04,320 --> 00:44:06,430 მაგრამ ეს ერთგვარი არა მართლაც აუცილებელია, არა? 793 00:44:06,430 --> 00:44:09,189 მსგავსად რატომ განსაზღვრავს ფუნქცია მოუწოდა exponentiator 794 00:44:09,189 --> 00:44:10,480 და შემდეგ დაუყოვნებლივ დაბრუნება. 795 00:44:10,480 --> 00:44:15,220 რატომ არ შეიძლება უბრალოდ დაუყოვნებლივ დაბრუნდეს ამ ფუნქციას? 796 00:44:15,220 --> 00:44:18,890 >> და სინამდვილეში, ეს არის ზუსტად იდეა უკან კონცეფციის მოუწოდა 797 00:44:18,890 --> 00:44:22,410 ანონიმური ფუნქციები, სადაც ანონიმური ფუნქციები არ რეალურად 798 00:44:22,410 --> 00:44:25,270 აქვს სახელი, რადგან ისინი არ უნდა ერთი. 799 00:44:25,270 --> 00:44:28,700 ასე რომ, ამ შემთხვევაში, 7B, ჩვენ შეგვიძლია ვიპოვოთ ზუსტად რომ. 800 00:44:28,700 --> 00:44:31,470 ეს ყველაფერი იგივე კოდი, ზუსტად იგივე, 801 00:44:31,470 --> 00:44:35,570 მაგრამ ახლა ჩვენ შეიცვალა მას ოდნავ ასე რომ ეს powerOf ფუნქცია დაუყოვნებლივ 802 00:44:35,570 --> 00:44:37,750 ბრუნდება ფუნქცია. 803 00:44:37,750 --> 00:44:44,150 გაითვალისწინეთ, რომ დაბრუნების შემდეგ, არსებობს ღია curly კონსოლი. 804 00:44:44,150 --> 00:44:46,410 ველოდებით ამ შეყვანის ორმაგი. 805 00:44:46,410 --> 00:44:48,560 ველოდებით, რომ გამომავალი ორმაგი. 806 00:44:48,560 --> 00:44:52,175 და შემდეგ სიტყვით ჰყოფს კოდი თავად. 807 00:44:52,175 --> 00:44:53,550 ასე რომ, ეს ანონიმური ფუნქცია. 808 00:44:53,550 --> 00:44:57,030 ეს ფაქტობრივად არ აქვს სახელი, ხოლო ადრე მას ეწოდა exponentiator. 809 00:44:57,030 --> 00:45:00,229 მაგრამ, როგორც დავინახეთ, უბრალოდ მართლა არ ეხება exponentiator 810 00:45:00,229 --> 00:45:01,270 გარეთ რომ ფუნქცია. 811 00:45:01,270 --> 00:45:02,470 ასე რომ, ეს არ აქვს მნიშვნელობა. 812 00:45:02,470 --> 00:45:06,300 ასე რომ, ეს ანონიმური ფუნქცია ე.წ. იმიტომ, რომ ის უსახელო, 813 00:45:06,300 --> 00:45:09,107 მაგრამ ეს ჯერ კიდევ გამოიყენება კონტექსტში ეს კოდი. 814 00:45:09,107 --> 00:45:13,690 815 00:45:13,690 --> 00:45:16,079 >> მომდევნო რამდენიმე პირობა, რომ მე ვარ აპირებს გააგრძელოს იმედია 816 00:45:16,079 --> 00:45:17,370 აფეთქება თქვენი გონება ცოტა. 817 00:45:17,370 --> 00:45:20,410 ჩვენ შეგვიძლია გავამარტივოთ ეს კიდევ უფრო მეტი. 818 00:45:20,410 --> 00:45:24,490 იმის გამო, რომ, როგორც იყო astutely აღვნიშნეთ, 819 00:45:24,490 --> 00:45:29,100 ალბათ, ჩვენ რეალურად ვიცი, inferring ამ კოდი, რაც 820 00:45:29,100 --> 00:45:31,750 გამოშვება ეს კოდი იქნება. 821 00:45:31,750 --> 00:45:38,180 და სინამდვილეში, ამ ანონიმური ფუნქცია, ჩვენ შეიძლება რეალურად კიდე სახის მონაცემები. 822 00:45:38,180 --> 00:45:41,650 >> ასე რომ, ეს ერთი, ჩვენ აღარ უნდა მკაფიოდ განსაზღვრავს 823 00:45:41,650 --> 00:45:44,850 ტიპის მონაცემები, რომ მიმდინარეობს შემავალი და გამომავალი ამ ფუნქციის 824 00:45:44,850 --> 00:45:45,890 რამდენიმე მიზეზის გამო. 825 00:45:45,890 --> 00:45:51,390 ერთი ის, რომ ჩვენ განსაზღვრული, ზე პროტოტიპი შემცველი ფუნქცია, 826 00:45:51,390 --> 00:45:55,770 რა ტიპის მონაცემები ანონიმური ფუნქცია უნდა შემავალი და გამომავალი. 827 00:45:55,770 --> 00:45:57,900 და მეორე, ჩვენ შეიძლება ითქვას, საწყისი კოდი 828 00:45:57,900 --> 00:46:01,930 ქვემოთ აქ, რომ ჩვენ ვიღებთ შეტანის რომ ტიპის ორმაგი 829 00:46:01,930 --> 00:46:03,670 და დაბრუნების ორმაგი. 830 00:46:03,670 --> 00:46:07,890 >> გაითვალისწინეთ, რომ აქ ჩვენ არ გვაქვს მკაფიოდ განისაზღვრება სახელები არგუმენტები 831 00:46:07,890 --> 00:46:11,220 ეს ფუნქცია იღებს. 832 00:46:11,220 --> 00:46:16,180 ასე რომ, ჩვენ ვხედავთ, რომ ჩვენ შეუძლია მიმართოს იმ პარამეტრების გამოყენებით $ 0 $ 1, 833 00:46:16,180 --> 00:46:20,140 ასე შემდეგ და ასე შემდეგ, რაც დამოკიდებულია რაოდენობის, რომ პარამეტრი გამოიყენება 834 00:46:20,140 --> 00:46:20,850 ამ ფუნქციას. 835 00:46:20,850 --> 00:46:23,370 836 00:46:23,370 --> 00:46:29,740 >> ეს არის ის, რომ თქვენ აპირებთ იმისათვის, რომ ნახოთ ბევრი ეს არის ღია curly კონსოლი 837 00:46:29,740 --> 00:46:32,797 განმარტება მოჰყვა $ 0, და შემდეგ რამდენიმე ოპერაცია, 838 00:46:32,797 --> 00:46:34,130 და შემდეგ დახურულ curly კონსოლი. 839 00:46:34,130 --> 00:46:38,630 ეს არის ანონიმური ფუნქცია რომელიც ახორციელებს ამ ოპერაციაში. 840 00:46:38,630 --> 00:46:42,940 მას აქვს ეს პარამეტრი, სადაც ის ტიპის სავარაუდო. 841 00:46:42,940 --> 00:46:44,860 ეს პირველი პარამეტრი არის $ 0. 842 00:46:44,860 --> 00:46:49,010 და ზოგიერთი ოპერაცია ხდება, რომ $ 0. 843 00:46:49,010 --> 00:46:52,100 >> აუდიტორია: ასე დოლარის ნიშანი ნიშნავს პარამეტრი, ძირითადად, 844 00:46:52,100 --> 00:46:53,429 და 0 ნიშნავს პირველი? 845 00:46:53,429 --> 00:46:54,720 DAN Armendáriz: ეს არის სწორი. 846 00:46:54,720 --> 00:46:59,100 ასე რომ, დოლარის ნიშანი ნიშნავს იმას, პარამეტრი და 0 ნიშნავს პირველი. 847 00:46:59,100 --> 00:47:02,760 მაგრამ ეს მუშაობს კონკრეტულად ამ შემთხვევაში, სადაც მე არ დაასახელა 848 00:47:02,760 --> 00:47:07,940 არგუმენტები ჩემი ანონიმური ფუნქცია. 849 00:47:07,940 --> 00:47:11,119 >> აუდიტორია: არა Perl ან რამე აქვს ამ დოლარის ნიშანი დოლარის 0 იქ? 850 00:47:11,119 --> 00:47:12,702 DAN Armendáriz: არა, რომელიც, მე ბოდიში? 851 00:47:12,702 --> 00:47:15,360 აუდიტორია: Perl აქვს ამ დოლარის 0 დოლარის 1-- 852 00:47:15,360 --> 00:47:17,318 DAN Armendáriz: მე არ ვარ ძალიან კარგად იცნობს Perl, 853 00:47:17,318 --> 00:47:21,340 მაგრამ PHP, რაც განსაზღვრავს ცვლადები საფუძველზე დოლარის ნიშნები. 854 00:47:21,340 --> 00:47:26,120 და არ შეიძლება იყოს ზოგიერთ ენაზე რომ აქვს ფუნქციები, როგორიცაა ამ. 855 00:47:26,120 --> 00:47:28,240 ფაქტობრივად, Swift სესხულობს ბევრი თვისებები მოსწონს ეს 856 00:47:28,240 --> 00:47:29,489 ბევრი სხვა ენებზე. 857 00:47:29,489 --> 00:47:32,380 ჩვენ ვხედავთ, მინიშნებები Python იგი. 858 00:47:32,380 --> 00:47:35,800 ეს განსაზღვრება ტიპი როგორც ჩანს, მოდის OCaml. 859 00:47:35,800 --> 00:47:38,932 და ჩვენ გვაქვს მხოლოდ მთელი bunch of პერსონალის უამრავი სხვადასხვა ენებზე. 860 00:47:38,932 --> 00:47:40,640 ეს არის ერთ-ერთი ყველაზე ლამაზი რამ Swift 861 00:47:40,640 --> 00:47:43,390 არის ის, რომ იღებს ბევრი საუკეთესო იდეები რამოდენიმე ენაზე 862 00:47:43,390 --> 00:47:47,229 და shoehorns მათ ყველა ერთად ერთ სუპერ ენაზე. 863 00:47:47,229 --> 00:47:49,520 სინამდვილეში, თუ თქვენ ნება მიბოძეთ გაგრძელდება აფეთქება თქვენი გონება, 864 00:47:49,520 --> 00:47:51,000 ასე რომ, ჩვენ უკვე აკეთებს ყველა ამ. 865 00:47:51,000 --> 00:47:56,690 ჩვენ შეგვიძლია ალბათ გაამარტივებს ამ პატარა ცოტა ხვდებიან, რომ, რა თქმა უნდა, 866 00:47:56,690 --> 00:48:02,120 Swift აქვს exponentiating ფუნქცია აგებული. 867 00:48:02,120 --> 00:48:04,660 თუ მე იმპორტი Darwin, რომელიც მხოლოდ ბიბლიოთეკა, 868 00:48:04,660 --> 00:48:09,680 აქვს ეს ფუნქცია მოუწოდა pow, ახლა მე შეიძლება გამარტივდეს ჩემი ძალა ფუნქცია 869 00:48:09,680 --> 00:48:11,830 უნდა იყოს შემდეგ. 870 00:48:11,830 --> 00:48:15,860 იგი აპირებს დაბრუნების ეს ანონიმური ფუნქცია. 871 00:48:15,860 --> 00:48:17,950 >> მაგრამ შეხედეთ როგორ მარტივი ეს არის. 872 00:48:17,950 --> 00:48:22,780 ეს არის ანონიმური ფუნქცია, რომელიც იღებს რაიმე სახის მონაცემები, 873 00:48:22,780 --> 00:48:26,600 და ეს იქნება ერთ-ერთი არგუმენტი, კერძოდ, 874 00:48:26,600 --> 00:48:29,320 დამოწმებული at $ 0 რომ არის ტიპის ორმაგი. 875 00:48:29,320 --> 00:48:32,680 ეს დაბრუნებას აპირებს ტიპის ორმაგი. 876 00:48:32,680 --> 00:48:35,760 მაგრამ დაბრუნების განაცხადი არის დაფარული. 877 00:48:35,760 --> 00:48:39,990 >> და ეს არის ზუსტად ეს სტილი, რომელიც ძალიან, ძალიან გავრცელებული Swift, 878 00:48:39,990 --> 00:48:40,790 მთელი ადგილი. 879 00:48:40,790 --> 00:48:43,190 ჩვენ ვაპირებთ, რომ ეს ყველა დროის Swift. 880 00:48:43,190 --> 00:48:46,150 ასე რომ, მე აჩვენებს ყველა ამ თქვენ, რადგან ეს სინტაქსი. 881 00:48:46,150 --> 00:48:49,070 ეს არის ძალიან გავრცელებული იმისათვის, რომ ნახოთ, რაც იმას ნიშნავს, 882 00:48:49,070 --> 00:48:51,420 ანონიმური ფუნქცია რომ არის საშემსრულებლო 883 00:48:51,420 --> 00:48:54,640 ზოგიერთი ოპერაცია არგუმენტები. 884 00:48:54,640 --> 00:48:56,940 და არ არსებობს ფარული დაბრუნებას. 885 00:48:56,940 --> 00:49:01,850 ასე რომ, ეს არის აბსოლუტურად იგივე ჩვენთვის რომ ვთქვათ, ეს, სწორედ აქ. 886 00:49:01,850 --> 00:49:05,730 887 00:49:05,730 --> 00:49:08,150 >> იმიტომ, რომ ეს curly bracket არის ფუნქცია, 888 00:49:08,150 --> 00:49:10,480 ჩვენ ამ ოპერაციის პირველი არგუმენტი. 889 00:49:10,480 --> 00:49:12,170 ჩვენ ვაპირებთ დაბრუნებას, რომ. 890 00:49:12,170 --> 00:49:14,815 მაგრამ ამ გარე დაბრუნების დაბრუნების რომ მთელი ფუნქცია, 891 00:49:14,815 --> 00:49:19,855 რომ მთელი ანონიმური ფუნქცია რომ ჩვენ მხოლოდ ის. 892 00:49:19,855 --> 00:49:21,689 ნებისმიერი სხვა კითხვები? 893 00:49:21,689 --> 00:49:23,980 ყველა უფლება, მე არ ვიცი, თუ თქვენ ბიჭები არიან მზად, 894 00:49:23,980 --> 00:49:27,455 მაგრამ ჩვენ შეგვიძლია წასვლა კი crazier ერთად Swift. 895 00:49:27,455 --> 00:49:28,560 თქვენ მზად? 896 00:49:28,560 --> 00:49:29,930 OK, ეს არის დიდი. 897 00:49:29,930 --> 00:49:35,310 >> ახლა ჩვენ რეალურად აქვს უნარი რომ, Swift, რადგან, თუ როგორ მოდულარული 898 00:49:35,310 --> 00:49:39,650 და როგორ ოქმის საფუძველზე, ის არის, განსაზღვროს საკუთარი freaking ოპერატორები. 899 00:49:39,650 --> 00:49:44,060 ისევე, როგორც ამ შემთხვევაში, ჩვენ არ გვქონდა ოპერატორი exponentiation-- კარგად, 900 00:49:44,060 --> 00:49:47,990 შესრულების უფლებამოსილების რაღაც. 901 00:49:47,990 --> 00:49:53,632 მაგრამ მე არ შემიძლია, ამ Swift, განსაზღვროს ახალი ოპერატორი, რომელიც აკეთებს ზუსტად რომ. 902 00:49:53,632 --> 00:49:55,590 ასე რომ, ამ შემთხვევაში არ არის რამოდენიმე სინტაქსი აქ. 903 00:49:55,590 --> 00:49:59,980 და მე გაძლევთ საშუალებას შევხედოთ მას სახლში, როდესაც თქვენ შეხედეთ ეს. 904 00:49:59,980 --> 00:50:06,890 მაგრამ ჩვენ განსაზღვრის ამ infix ოპერატორი, **, რომელიც შემდეგ საშუალებას მოგვცემს, 905 00:50:06,890 --> 00:50:09,840 განსაზღვრავს რა, რომ ფუნქცია ** რეალურად 906 00:50:09,840 --> 00:50:15,010 ამჯამად, მიიღოს მარცხენა ხელის მხარეს და მარჯვენა მხარეს, 907 00:50:15,010 --> 00:50:21,190 და შემდეგ დაუბრუნდეს მაჩვენებლებით, რომ მარცხენა მხარეს მარჯვენა მხარეს. 908 00:50:21,190 --> 00:50:24,850 >> ასე რომ, ახლა უეცრად მე შევქმენით ახალი მრიცხველი. 909 00:50:24,850 --> 00:50:29,490 ასე რომ 2 ** 3 იმას ნიშნავს, 2 მესამე ძალა. 910 00:50:29,490 --> 00:50:34,420 [გონება ხმის] ეს მიერ თავად უნდა გააკეთოს თქვენ იყოს, 911 00:50:34,420 --> 00:50:37,960 OK, ხრახნიანი C. მე ვაპირებ Swift ყველა გზა. 912 00:50:37,960 --> 00:50:38,740 დიდებულია. 913 00:50:38,740 --> 00:50:40,140 ეს არის საკმაოდ ფანტასტიური. 914 00:50:40,140 --> 00:50:42,240 >> მიუხედავად იმისა, რომ ეს არის დიდი მაგალითია. 915 00:50:42,240 --> 00:50:45,570 მაგრამ მე არასოდეს ერთხელ გარეთ ამ მაგალითად რეალურად 916 00:50:45,570 --> 00:50:46,800 განსაზღვრული ჩემს ოპერატორს. 917 00:50:46,800 --> 00:50:49,710 მაგრამ მაინც, ეს გვიჩვენებს, ბევრი ძალა Swift 918 00:50:49,710 --> 00:50:54,050 და ამიტომ ეს არის რეალურად მართლაც ძალიან მაგარი. 919 00:50:54,050 --> 00:50:55,832 OK, არა? 920 00:50:55,832 --> 00:50:57,790 აუდიტორია: თუ თქვენ განსაზღვრის საკუთარი ოპერატორი, 921 00:50:57,790 --> 00:51:02,940 როგორ იცით თქვენ არ შემთხვევით ცდილობენ და შექმნას ოპერატორი, რომელიც არის 922 00:51:02,940 --> 00:51:06,040 სადღაც C, როგორიცაა იმალება სადღაც Swift, 923 00:51:06,040 --> 00:51:12,210 როგორც ბუნდოვანი ერთი, რომ თქვენ შეიძლება არ მინახავს ადრე. 924 00:51:12,210 --> 00:51:15,050 >> DAN Armendáriz: ასე რომ, თუ თქვენ ცდილობთ განსაზღვროს საკუთარი ოპერატორები, 925 00:51:15,050 --> 00:51:20,970 არსებობს რისკი განსაზღვრის ერთი ზე არსებული ოპერატორი. 926 00:51:20,970 --> 00:51:24,870 რომ გადადის დონეზე დეტალურად რომ მე არ ვფიქრობ, რომ ჩვენ გვაქვს დრო წასვლა. 927 00:51:24,870 --> 00:51:27,620 მაგრამ ეს არის რისკი. 928 00:51:27,620 --> 00:51:31,320 და ეს არის, ფაქტობრივად, მიზეზი, რის გამოც მე არ გამოიყენოთ caret სიმბოლო, რომელიც 929 00:51:31,320 --> 00:51:36,210 როდესაც ჩვენ აკრეფით გარეთ ძალა, ჩვენ, როგორც წესი, გამოყენება 4 პატარა caret 5 ან რამე 930 00:51:36,210 --> 00:51:40,560 როგორც, რომ, უბრალოდ, როდესაც ჩვენ Gchatting მეგობრებთან ან რასაც. 931 00:51:40,560 --> 00:51:43,660 მაგრამ იმ შემთხვევაში, რომ რეალურად გამოიწვევდა შეჯახება. 932 00:51:43,660 --> 00:51:46,450 ასე რომ, მე თავიდან აცილება მხოლოდ იმიტომ, მე მოხდა ვიცი, ამ შემთხვევაში 933 00:51:46,450 --> 00:51:50,430 , რომ ეს გამოიწვევს, რომ შეჯახება. 934 00:51:50,430 --> 00:51:52,270 >> კარგი. 935 00:51:52,270 --> 00:51:55,080 ახლა სამწუხაროდ, ბოლო შვიდი წუთი, 936 00:51:55,080 --> 00:51:57,410 უნდა შევინარჩუნოთ აფეთქებით თქვენი გონება ცოტა. 937 00:51:57,410 --> 00:52:00,230 ასე რომ, ნება მიბოძეთ გაჩვენებთ ზოგიერთი სხვა რამ, ისევე. 938 00:52:00,230 --> 00:52:03,710 >> ჩვენ გაჩვენეთ ეს იდეა რომელსაც ეს ანონიმური ფუნქციები, 939 00:52:03,710 --> 00:52:07,040 ამ დახურვა, რომელიც საშუალებას გაძლევთ სახის გაივლის ფუნქციები გარშემო. 940 00:52:07,040 --> 00:52:08,100 თქვენ შეგიძლიათ დავუბრუნოთ. 941 00:52:08,100 --> 00:52:09,490 თქვენ შეგიძლიათ მანიპულირება მათ. 942 00:52:09,490 --> 00:52:11,790 ამის გაკეთება შეგიძლიათ ყველა სახის გიჟები პერსონალი. 943 00:52:11,790 --> 00:52:14,850 >> მაგრამ ერთი რამ, რომ ხდება, რომ სასარგებლო 944 00:52:14,850 --> 00:52:19,740 ეს არის უნარი, როგორც ეწინააღმდეგებოდა დაბრუნების იმ ფუნქციებს, 945 00:52:19,740 --> 00:52:25,146 ფუნქცია, უნდა გაიაროს ფუნქცია როგორც პარამეტრი სხვა ფუნქცია. 946 00:52:25,146 --> 00:52:30,430 ალბათ ფიქრობდა, ასევე რატომ დედამიწაზე მინდა რამე მაგდაგვარს? 947 00:52:30,430 --> 00:52:33,660 >> ისე, ვთქვათ, რომ მინდა იმისათვის, რომ ეს ოპერატორი, რომელიც მე 948 00:52:33,660 --> 00:52:40,260 მუშაობდა იმისთვის, რომ შექმნათ და ვრცელდება მას bunch სხვადასხვა ნომრები 949 00:52:40,260 --> 00:52:41,770 მასივი. 950 00:52:41,770 --> 00:52:46,700 ასე რომ, ამ შემთხვევაში მაქვს მასივი integers-- 1, 4, 7, 2, 5, 10, 56. 951 00:52:46,700 --> 00:52:48,080 და მე მინდა, რომ ორმაგი მათ ყველა. 952 00:52:48,080 --> 00:52:50,430 ისე, რომ ჩვენ, როგორც წესი, ამის გაკეთება არის უბრალოდ დაწერა 953 00:52:50,430 --> 00:52:53,440 მარტივი მარყუჟი, რომ iterates მეტი ყველა მათგანი 954 00:52:53,440 --> 00:52:57,140 და შეასრულოს გარკვეული კვადრატული ოპერაცია მათზე, 955 00:52:57,140 --> 00:53:02,700 შესაყვანი იმ ახალი ღირებულებების new ცვლადი, უფრო სწორად, ახალი მასივი აქ. 956 00:53:02,700 --> 00:53:07,370 და ღირებულება გამოშვება შედეგი ის არის, მაშინ ყველა იმ მასივები, 957 00:53:07,370 --> 00:53:10,200 უფრო სწორად ყველა იმ ელემენტები, კვადრატი. 958 00:53:10,200 --> 00:53:12,680 >> და ჩვენ შეგვიძლია გავაკეთოთ იგივე რამ cubing ის, 959 00:53:12,680 --> 00:53:15,360 მაგრამ ცოტა განგაშის ზარი უნდა წახვიდე 960 00:53:15,360 --> 00:53:17,360 განაცხადა, რომ, შესაძლოა, იქ რამდენიმე გზა, რომ ჩვენ გვინდა 961 00:53:17,360 --> 00:53:19,860 შეძლებს გაამარტივებს ამ ცოტა. 962 00:53:19,860 --> 00:53:21,130 და ფაქტობრივად არ არსებობს. 963 00:53:21,130 --> 00:53:25,320 რა მოხდება, თუ ჩვენ შეგვიძლია შევქმნათ ფუნქცია, რომელიც საშუალებას გვაძლევს 964 00:53:25,320 --> 00:53:28,350 მიიღოს, როგორც მტაცებელი, ფუნქცია? 965 00:53:28,350 --> 00:53:30,350 ასე რომ, ამ შემთხვევაში, მიიღოს შევხედოთ ამ არგუმენტები. 966 00:53:30,350 --> 00:53:33,220 ჩვენ ვაპირებთ, რომ მიიღოს სიაში ორჯერ. 967 00:53:33,220 --> 00:53:35,030 და მაშინ ჩვენ ვაპირებთ მიიღოს ფუნქცია 968 00:53:35,030 --> 00:53:40,990 ცვლადში ვ, რომ აპირებს მიიღოს ორმაგი და დააბრუნოს ორმაგი. 969 00:53:40,990 --> 00:53:43,320 და მთელი გამომავალი მთელი ამ ფუნქციის 970 00:53:43,320 --> 00:53:47,310 მოუწოდა mapper აპირებს დაბრუნდება მასივი ეწოდება ორმაგი. 971 00:53:47,310 --> 00:53:52,380 >> რა ეს მაშინ ნება მიბოძეთ არ არის, რომ გადაურბინოთ რომ სიაში 972 00:53:52,380 --> 00:53:56,350 და გავაკეთოთ იგივე, მაგრამ ახლა მიმართოს, რომ ფუნქცია თითოეულ 973 00:53:56,350 --> 00:53:58,970 ინდივიდუალური ღირებულებების, რომ სიაში. 974 00:53:58,970 --> 00:54:00,750 ასე რომ, მე ნამდვილად არ ვიცი, რა f არის. 975 00:54:00,750 --> 00:54:02,010 არ აქვს მნიშვნელობა, ჩემთვის. 976 00:54:02,010 --> 00:54:06,530 მაგრამ სანამ ის იღებს ორმაგი, ასრულებს ზოგიერთი ოპერაციის შესახებ, 977 00:54:06,530 --> 00:54:08,640 და შემდეგ დააბრუნებს ორმაგი, მე მაშინ იქნება 978 00:54:08,640 --> 00:54:13,415 შეუძლია რუკაზე რომ ფუნქცია მასშტაბით თითოეული ელემენტის სიაში. 979 00:54:13,415 --> 00:54:16,270 980 00:54:16,270 --> 00:54:20,930 >> და ამ ტიპის პროგრამირების მოუწოდა რათა უმაღლესი ფუნქციები, 981 00:54:20,930 --> 00:54:24,440 სადაც ჩვენ ავლით ფუნქციები დაახლოებით ისე, როგორც პარამეტრების 982 00:54:24,440 --> 00:54:26,430 და აკეთებს რამ ფუნქციები. 983 00:54:26,430 --> 00:54:29,640 ეს არის ერთგვარი მოსწონს აღების ყველა ამ იდეები, რომ ჩვენ ვისწავლეთ CS50 984 00:54:29,640 --> 00:54:31,390 და გადაჰყავდა სახის საქართველოს მომდევნო დონეზე. 985 00:54:31,390 --> 00:54:34,140 და ეს არის ყველა CS51 სტილი პერსონალი. 986 00:54:34,140 --> 00:54:37,080 ასე რომ, ჩვენ წავიდეთ სიღრმისეული მეტი კატეგორიები, როგორიცაა, რომ. 987 00:54:37,080 --> 00:54:38,930 >> მაგრამ ეს ასევე აქ მნიშვნელოვანია იმიტომ, რომ ჩვენ 988 00:54:38,930 --> 00:54:42,010 ვხედავ ბევრი ფუნქციები რომელიც გამოიყენება Swift 989 00:54:42,010 --> 00:54:45,590 რომელიც არსებითად აკეთებს ამ, სადაც ჩვენ გვაქვს 990 00:54:45,590 --> 00:54:48,300 ზოგიერთი ნომრები, ზოგიერთი მასივი ნომრები. 991 00:54:48,300 --> 00:54:50,850 ჩვენ ვაპირებთ, რომ გაივლის მასივი ჩვენი mapper. 992 00:54:50,850 --> 00:54:55,770 ჩვენ ასევე ვაპირებთ გაივლის რამდენიმე ფუნქცია, რომელიც 993 00:54:55,770 --> 00:54:57,950 ჩვენ უკვე განსაზღვრული აქ. 994 00:54:57,950 --> 00:54:59,690 ეს იქნება მოედანზე. 995 00:54:59,690 --> 00:55:02,220 და ჩვენ ვაპირებთ, რომ მაშინ მოედანზე ყველა იმ ნომრები 996 00:55:02,220 --> 00:55:04,710 და შენახვის, რომ ამ შედეგს აქ. 997 00:55:04,710 --> 00:55:07,280 998 00:55:07,280 --> 00:55:11,000 >> ასე რომ, ამ შემთხვევაში ჩვენ განსაზღვრული ჩვენი საკუთარი ფუნქცია მოუწოდა mapper. 999 00:55:11,000 --> 00:55:15,370 მაგრამ ეს ზუსტად ის არის, ფაქტობრივად, ჩაშენებული Swift. 1000 00:55:15,370 --> 00:55:18,960 არსებობს სხვადასხვა ფუნქციები მოუწოდა რუკაზე. 1001 00:55:18,960 --> 00:55:21,520 არსებობს რუკა ფუნქცია, არსებობს შემცირება ფუნქცია, 1002 00:55:21,520 --> 00:55:25,630 და იქ ფილტრის ფუნქცია, რომელიც არსებითად ვრცელდება ფუნქციები 1003 00:55:25,630 --> 00:55:30,782 თითოეული ელემენტის სიაში ცვლილებები მათ რამდენიმე გზა. 1004 00:55:30,782 --> 00:55:34,510 >> აუდიტორია: ასე რომ მას შემდეგ, რაც თქვენ გარდაქმნის მონაცემები სხვა ფორმატში 1005 00:55:34,510 --> 00:55:36,134 მეშვეობით ფუნქცია 1006 00:55:36,134 --> 00:55:37,050 DAN Armendáriz: მარჯვენა. 1007 00:55:37,050 --> 00:55:39,420 ჰო, ასე ფუნქცია რომ ჩვენ მიღების 1008 00:55:39,420 --> 00:55:41,790 გარდაქმნის მონაცემებს რამდენიმე გზა. 1009 00:55:41,790 --> 00:55:44,700 ამ შემთხვევაში, ჩვენ არც squaring ის, ან ჩვენ cubing ის, 1010 00:55:44,700 --> 00:55:50,060 ან მართლაც, ჩვენ ვერ ასრულებს არსებობს ოპერაცია საერთოდ. 1011 00:55:50,060 --> 00:55:54,150 >> მაგრამ ნება მომეცით მაშინ, თუ როგორ ეს აპირებს გამოიყურებოდეს პრაქტიკაში. 1012 00:55:54,150 --> 00:55:56,681 ისევ და ისევ, მე გაშვებული ცოტა დრო. ასე რომ, მე არ ვარ 1013 00:55:56,681 --> 00:55:59,430 აპირებს შეძლებს წავიდეთ ყველა კოდის აქ დეტალურად. 1014 00:55:59,430 --> 00:56:00,721 მაგრამ მე მოგიწოდებთ თქვენ, რომ. 1015 00:56:00,721 --> 00:56:03,850 ჩვენ პოსტი, როგორც კი შესაძლებელია შემდეგ ეს განხილვა. 1016 00:56:03,850 --> 00:56:07,610 >> მაგრამ თუ თქვენ შევხედოთ ამ, ვივარაუდოთ, რომ ჩვენ გვაქვს სიაში ნომრები, 1017 00:56:07,610 --> 00:56:10,260 მასივი ნომრები ამ ცვლადში ნომრები. 1018 00:56:10,260 --> 00:56:16,670 ამის შემდეგ ჩვენ გვინდა, რომ შეასრულოს ეს ფილტრი ოპერაცია იმ ნომრები. 1019 00:56:16,670 --> 00:56:19,730 ასე რომ, ფილტრი უმაღლესი იმისათვის, ფუნქცია, რომელიც 1020 00:56:19,730 --> 00:56:24,660 ადასტურებს მასივი და ფუნქცია. 1021 00:56:24,660 --> 00:56:28,760 და ყოველ ელემენტს, რომ მასივი, იგი ასრულებს, რომ ფუნქცია. 1022 00:56:28,760 --> 00:56:31,990 >> იმ შემთხვევაში, თუ ფუნქცია დააბრუნებს მართალია, ის ინარჩუნებს, რომ ნივთი. 1023 00:56:31,990 --> 00:56:36,100 იმ შემთხვევაში, თუ ფუნქცია დააბრუნებს false, ის ისვრის შორს რომ ნივთი. 1024 00:56:36,100 --> 00:56:40,480 და მაშინ ის დააბრუნებს სია შემდეგ, რომელიც შედგება ყველა 1025 00:56:40,480 --> 00:56:44,360 იმ საქონელს, რომ უკვე გაფილტრული. 1026 00:56:44,360 --> 00:56:47,150 >> ასე რომ, სხვა სიტყვებით, ეს არის იგივე იდეა, gradebook. 1027 00:56:47,150 --> 00:56:50,800 ჩვენ შეიძლება სხვადასხვა შეფასება ამ მნიშვნელობა მოუწოდა ნომრები. 1028 00:56:50,800 --> 00:56:55,590 შეიძლება იყოს 100 და 70, და 40, და ასე შემდეგ. 1029 00:56:55,590 --> 00:56:59,110 რა ეს ფილტრი არ არის ცნობა რომ ეს არის, რომ სინტაქსური შაქარი 1030 00:56:59,110 --> 00:57:01,310 ანონიმური ფუნქცია. 1031 00:57:01,310 --> 00:57:05,980 ეს არის ანონიმური ფუნქცია განაცხადა, რომ პარამეტრი, რომელიც მე მიღება 1032 00:57:05,980 --> 00:57:09,690 იქნება, თუ იგი უფრო მეტი, ვიდრე 70, 1033 00:57:09,690 --> 00:57:15,837 მაშინ ეს დაბრუნდება ნამდვილი, რაც იმას ნიშნავს, რომ რომ ნივთი იქნება დაცული ამ ფილტრი. 1034 00:57:15,837 --> 00:57:17,920 მოდით ცოტა უფრო კონკრეტული შესახებ. 1035 00:57:17,920 --> 00:57:25,760 თუ მე მაქვს ამ მასივი ნომრები და იგი შედგება 100, 70 და 40, 1036 00:57:25,760 --> 00:57:29,730 მე ასრულებს ამ ფილტრი ოპერაციის თითოეული ერთი იმ. 1037 00:57:29,730 --> 00:57:33,270 ასე რომ, პირველი ის არის, რომ ეს ღირებულება 100. 1038 00:57:33,270 --> 00:57:36,770 100 მეტია ან ტოლია 70 არის ნამდვილი, რომელიც 1039 00:57:36,770 --> 00:57:41,950 იმას ნიშნავს, რომ 100 ინახება ახალი ასლი მასივი. 1040 00:57:41,950 --> 00:57:44,290 70 ასევე გადის. 1041 00:57:44,290 --> 00:57:46,020 მაგრამ 40 არ არის. 1042 00:57:46,020 --> 00:57:54,290 ასე რომ, რა ბრუნდება passingCount არის რიგი ელემენტები 100 და 70-- 1043 00:57:54,290 --> 00:57:57,410 100, მძიმე, 70. 1044 00:57:57,410 --> 00:57:59,870 ეს იყო მხოლოდ ორი ნივთები, რომლებიც ინახებოდა. 1045 00:57:59,870 --> 00:58:03,740 ასე რომ, იმ მიზეზით, მე სწრაფად გაიარა ბევრი ასეთი მაღალი მიზნით 1046 00:58:03,740 --> 00:58:08,680 რამ, რადგან ეს არის ის, რომ საერთო ის, რომ თქვენ ნახავთ Swift საკმაოდ 1047 00:58:08,680 --> 00:58:16,810 ხშირად ასრულებს რაიმე ოპერაცია გამოყენებით ამ ანონიმური ფუნქცია სინტაქსი. 1048 00:58:16,810 --> 00:58:18,450 >> არსებობს გარკვეული მაგარი რამეები. 1049 00:58:18,450 --> 00:58:24,730 კომუტატორები მართლაც ძლიერი Swift, ვგულისხმობ, ისევე, როგორც გიჟები, გიჟები ძლიერი. 1050 00:58:24,730 --> 00:58:28,250 თქვენ შეგიძლიათ გამოიყენოთ შეცვლა და თქვენ შეგიძლიათ რეალურად ვრცელდება მათ 1051 00:58:28,250 --> 00:58:33,160 მერყეობს, რომელიც სახის გიჟები, და ნუ ლამაზი ნივთები, როგორიცაა, რომ. 1052 00:58:33,160 --> 00:58:37,540 >> მაგრამ ბოლო რამდენიმე წუთში, მინდა გამოტოვოთ წინ საკმაოდ შორს 1053 00:58:37,540 --> 00:58:46,940 და აჩვენებს, თუ კონკრეტული მაგალითია, თუ როგორ ჩვენ შეგვიძლია შევქმნათ iOS app გამოყენებით Swift. 1054 00:58:46,940 --> 00:58:49,040 ასე რომ, როდესაც თქვენ აკეთებთ ამ, თქვენ უნდა მიიღოს 1055 00:58:49,040 --> 00:58:51,990 გადავხედავთ Apple- ის დოკუმენტაცია, მათ 1056 00:58:51,990 --> 00:58:56,084 აქვს ბევრი ძალიან კარგი გაკვეთილები შექმნა თქვენი პირველი განაცხადი. 1057 00:58:56,084 --> 00:58:58,250 და მე გარწმუნებთ, რომ რომ რადგან ისინი 1058 00:58:58,250 --> 00:59:04,110 ყველა ნაბიჯები, თუ რა ზუსტად დააწკაპუნეთ შექმნათ iOS განცხადება. 1059 00:59:04,110 --> 00:59:07,290 >> მაგრამ აქ ჩვენ გვაქვს ეს iOS app. 1060 00:59:07,290 --> 00:59:10,960 და ეს არის საკმაოდ მარტივი app ნამდვილად. 1061 00:59:10,960 --> 00:59:13,840 თუ მე აწარმოებს, ნება მომეცით გაჩვენოთ თქვენ რას ჰგავს. 1062 00:59:13,840 --> 00:59:19,480 ყველა ეს არსებითად არის ის, გაიყვანს ეხლა ინტერნეტში JSON ფაილი 1063 00:59:19,480 --> 00:59:22,300 რომ მე არ ინახება სერვერზე. 1064 00:59:22,300 --> 00:59:26,310 და რომ JSON ფაილი განსაზღვრავს სურათები, რომელიც საშუალებას 1065 00:59:26,310 --> 00:59:31,680 ჩემთვის მაშინ ციკლი, ჩემი app, სურათები ჩემი სერვერზე. 1066 00:59:31,680 --> 00:59:32,880 >> ასე რომ, მე აქ getNextImage. 1067 00:59:32,880 --> 00:59:37,100 ეს ტვირთავს გამოსახულება ინტერნეტში, და შემდეგ აჩვენებს ეკრანზე. 1068 00:59:37,100 --> 00:59:38,200 >> ასე რომ, ეს არის საკმაოდ მარტივია. 1069 00:59:38,200 --> 00:59:41,550 მაგრამ მიზანი არის ის, რომ, როგორც ჩანს თუ როგორ შეგვიძლია გაერთიანდება რამ 1070 00:59:41,550 --> 00:59:47,820 ამ უკანასკნელს რამდენიმე კვირის CS50 შევიდა ფაქტობრივი iOS განცხადება. 1071 00:59:47,820 --> 00:59:53,140 სხვა სიტყვებით, ალბათ ერთ ერთი რამ, რომ თქვენ გსურთ ამის გაკეთება 1072 00:59:53,140 --> 00:59:56,340 გვქონდეს iOS პროგრამა, რომელიც შეგიძლიათ დახევის მონაცემების ინტერნეტით 1073 00:59:56,340 --> 00:59:59,070 და დავანახოთ შესახებ გარკვეული ინფორმაცია. 1074 00:59:59,070 --> 01:00:03,130 ეს არის მთლიანად წერტილი, ამ კოდის აქ. 1075 01:00:03,130 --> 01:00:07,890 >> ასე რომ, არსებობს ბევრი უნდა ითქვას როგორ უნდა გავაკეთოთ ფაქტობრივი iOS განვითარება. 1076 01:00:07,890 --> 01:00:12,860 არსებობს ბევრი გიჟები სინტაქსი რომ ჩვენ არ მინახავს საკმაოდ არის 1077 01:00:12,860 --> 01:00:15,580 როგორც კლასი, რა დონის რეალურად არის. 1078 01:00:15,580 --> 01:00:19,470 ჩვენ შეგვიძლია მეტწილად რომ ამ დროისათვის. 1079 01:00:19,470 --> 01:00:23,250 >> მაგრამ შეამჩნია, რომ ჩვენ არ შეიცავდა ამ სხვადასხვა ნივთები 1080 01:00:23,250 --> 01:00:27,720 რომ ჩვენ უკვე დავინახეთ, როგორიცაა ფუნქციები, რომელიც კონკრეტული სახელები და გვარები. 1081 01:00:27,720 --> 01:00:32,650 და როდესაც ჩვენ მისცეს იმ ფუნქციონირებს სწორი სახელები 1082 01:00:32,650 --> 01:00:36,530 რომელიც სავარაუდოდ მიერ iOS, ფაქტობრივად ამ გრძნობს ცოტა ჯადოსნური. 1083 01:00:36,530 --> 01:00:40,300 მაგრამ როდესაც თქვენ შექმნით iOS განაცხადის, არ 1084 01:00:40,300 --> 01:00:47,590 კონკრეტული ფუნქცია სახელები, ეწოდება თავად ტელეფონი 1085 01:00:47,590 --> 01:00:52,440 განაცხადის ჩატვირთვის ცდილობენ შექმნათ პროცესი, რომელიც, ფაქტობრივად, 1086 01:00:52,440 --> 01:00:54,787 გადის თქვენი განაცხადი. 1087 01:00:54,787 --> 01:00:58,120 ასე რომ კიდევ ერთხელ, იქ არის ბევრი რამ, რომ მე უნდა დაივიწყონ აქ, რათა ჩვენთვის 1088 01:00:58,120 --> 01:01:00,570 ვისაუბროთ ამ კონკრეტულად. 1089 01:01:00,570 --> 01:01:06,050 მაგრამ მე გარწმუნებთ, რომ შევხედოთ, ალბათ, სხვა iOS სემინარი, არამედ გარკვეული 1090 01:01:06,050 --> 01:01:09,290 გაკვეთილები ხაზზე, რომელიც გააკეთებს ბევრად უკეთესი სამუშაო, სადაც აღწერილია 1091 01:01:09,290 --> 01:01:11,030 კონკრეტული ინფორმაცია. 1092 01:01:11,030 --> 01:01:15,760 >> მაგრამ ჩვენ ვხედავთ, რამდენიმე რამ, რომ საინტერესო საწყისი კოდი აქ. 1093 01:01:15,760 --> 01:01:17,950 გაითვალისწინეთ, რომ ჩვენ გვაქვს თუ განცხადებებს. 1094 01:01:17,950 --> 01:01:20,400 სხვათა შორის, ერთ-ერთი მნიშვნელოვანი რამ თუ განცხადებები 1095 01:01:20,400 --> 01:01:24,860 ის არის, რომ ფრჩხილებში გარშემო ლოგიკური გამოხატვის სურვილისამებრ. 1096 01:01:24,860 --> 01:01:30,800 მაგრამ curly აფრთხილებს არ არის პირობითი, არ აქვს მნიშვნელობა, თუ რამდენად ცოტა ან ბევრი ხაზები კოდი 1097 01:01:30,800 --> 01:01:32,360 გაქვთ თუ განაცხადი. 1098 01:01:32,360 --> 01:01:38,670 თქვენ არ გაქვთ, თუ განცხადებები გარეშე curly აფრთხილებს in Swift. 1099 01:01:38,670 --> 01:01:41,000 >> და ეს არის, ასევე, ერთგვარი სულელური. 1100 01:01:41,000 --> 01:01:43,910 მაგრამ არსებობს ისტორიული მიზეზების გამო, რომ. 1101 01:01:43,910 --> 01:01:46,180 ეს უნდა გადარჩენა თქვენ თავს. 1102 01:01:46,180 --> 01:01:49,899 ისევე, როგორც ეს მაგალითად, თქვენ არ შეგიძლიათ აღმოფხვრას curly აფრთხილებს გარშემო, რომ 1103 01:01:49,899 --> 01:01:50,440 თუ განცხადებაში. 1104 01:01:50,440 --> 01:01:52,730 ისინი, ფაქტობრივად საჭირო. 1105 01:01:52,730 --> 01:01:54,480 ასე რომ, მე გარწმუნებთ, რომ შევხედოთ ეს. 1106 01:01:54,480 --> 01:01:56,230 მაგრამ არსებობს კიდევ ერთი მშენებლობა, რაც მე მინდა 1107 01:01:56,230 --> 01:02:02,640 რომ ნახოთ, თუ შესახებ Swift, რომ არის ახალი Swift 2.0 შედარებით 1108 01:02:02,640 --> 01:02:08,460 ძველი ვერსიები Swift, რომელიც შემდეგ. 1109 01:02:08,460 --> 01:02:11,620 ვნახოთ, სად მე აქ? 1110 01:02:11,620 --> 01:02:16,630 >> ასე რომ, ამ ფუნქციის მოუწოდა fetchJSON, ამ ფუნქციის 1111 01:02:16,630 --> 01:02:23,450 პასუხისმგებელია უბიძგებენ, რომ JSON ფაილის მისამართი, რომელიც უბრალოდ ისე ხდება 1112 01:02:23,450 --> 01:02:26,310 გაშვებული ჩემს CS50 IDE. 1113 01:02:26,310 --> 01:02:28,580 მე უბრალოდ დაიწყო Apache, დააყენა ჩემი JSON ფაილი არსებობს, 1114 01:02:28,580 --> 01:02:32,110 და მე შეუძლია შემდეგ გაიყვანოს, რომ მონაცემების ინტერნეტში 1115 01:02:32,110 --> 01:02:36,430 ეს ფუნქცია და ამ URL, რომელიც არ არის გათვალისწინებული ტელეფონში. 1116 01:02:36,430 --> 01:02:40,490 ეს გათვალისწინებული ბიბლიოთეკა, რომელიც თქვენ იყენებთ, როდესაც 1117 01:02:40,490 --> 01:02:43,140 თქვენ აკეთებთ ზოგიერთი iOS app განვითარებას. 1118 01:02:43,140 --> 01:02:49,690 >> მიაქციეთ, რომ აქ არ არის ეს არაჩვეულებრივი სინტაქსური შენება მოუწოდა მცველი. 1119 01:02:49,690 --> 01:02:53,530 და მართლაც ეს ყველაფერი Swift არის გზა დამადასტურებელი 1120 01:02:53,530 --> 01:02:56,870 რომ ზოგიერთი რამ აქვს უკვე შეხვდა, სანამ 1121 01:02:56,870 --> 01:03:00,000 გააგრძელოს დანარჩენი ფუნქცია. 1122 01:03:00,000 --> 01:03:04,260 ასე რომ, მე შეიძლება, გამოყენებით სურვილისამებრ ტიპის, 1123 01:03:04,260 --> 01:03:10,530 მე ვერ იპოვეს URL მიერ გაშვებული ამ NSURL ფუნქცია 1124 01:03:10,530 --> 01:03:16,640 და შენახვის, რომ URL, მუდმივი და შემდეგ შემოწმების 1125 01:03:16,640 --> 01:03:20,820 იმისათვის, რომ ნახოთ თუ URL იყო ნული, იმიტომ, რომ ეს იყო დაბრუნებას აპირებს სურვილისამებრ ტიპის. 1126 01:03:20,820 --> 01:03:25,660 და თუ ეს იყო ნული, მაშინ მე ამობეჭდოთ შეცდომა და შემდეგ დაბრუნდნენ. 1127 01:03:25,660 --> 01:03:29,970 >> მაგრამ ამის ნაცვლად, რა მცველი საშუალებას ჩვენთვის არ არის, რომ ძალიან რამ, 1128 01:03:29,970 --> 01:03:34,550 მაგრამ, იმისათვის, რომ ეს არის სინამდვილეში საქმე, რომ url 1129 01:03:34,550 --> 01:03:38,020 სწორად დადგენილი NSURL. 1130 01:03:38,020 --> 01:03:41,810 და თუ ეს ასეა, მაშინ ის ნახტომი მეტი, და ეს 1131 01:03:41,810 --> 01:03:46,110 საშუალებას მოგცემთ გაგრძელება url რომელსაც სწორად განსაზღვრული. 1132 01:03:46,110 --> 01:03:48,830 მაგრამ თუ ეს საქმე, რომ url არ არის სათანადოდ განსაზღვრული, 1133 01:03:48,830 --> 01:03:52,550 თუ ეს ფუნქცია დააბრუნებს შეცდომის ან სხვა გაუთვალისწინებელი რამ 1134 01:03:52,550 --> 01:03:58,030 რეალურად ხდება, ეს მცველი მშენებლობა საშუალებას გვაძლევს შემდეგ გამომავალი რომ შეცდომა 1135 01:03:58,030 --> 01:04:00,390 და დაბრუნებას დაუყოვნებლივ. 1136 01:04:00,390 --> 01:04:00,890 დიახ? 1137 01:04:00,890 --> 01:04:04,839 >> აუდიტორია: ასე რომ, ეს სახის მოსწონს თუ მაშინ სხვა? 1138 01:04:04,839 --> 01:04:07,130 DAN Armendáriz: ეს არის სახის როგორც თუ მაშინ სხვა, დიახ, 1139 01:04:07,130 --> 01:04:14,200 გარდა იმისა, რომ ამ url შემდეგ განსაზღვრულია ქვემოთ ყველაფერი ეს. 1140 01:04:14,200 --> 01:04:20,420 თუ გადის ამ მცველი, მაშინ იგი რეალურად ივსება მონაცემების 1141 01:04:20,420 --> 01:04:29,500 და გამოსადეგი დარჩენილი კოდის თქვენს ფუნქცია. 1142 01:04:29,500 --> 01:04:33,790 ასე რომ, მე ეჭვი მაქვს, რომ თქვენ აპირებს დაიწყება ვხედავთ ამ დაცვის, ასევე. 1143 01:04:33,790 --> 01:04:36,670 და მავიწყდება, რომ. 1144 01:04:36,670 --> 01:04:46,270 >> ასე რომ მხოლოდ შევხედავთ რამდენიმე სხვა რამ, სწორედ აქ არის ის, რაც 1145 01:04:46,270 --> 01:04:53,377 როგორ ფიქრობთ, უბრალოდ რის საფუძველზე ჩვენ ვსაუბრობთ ადრე? 1146 01:04:53,377 --> 01:04:56,650 >> აუდიტორია: ვფიქრობ, რომ აწარმოებს სიაში? 1147 01:04:56,650 --> 01:04:59,100 >> DAN Armendáriz: ასე რომ ახლოს. 1148 01:04:59,100 --> 01:05:02,360 ეს არის ფუნქცია, რომელიც ჩვენ განსაზღვრას. 1149 01:05:02,360 --> 01:05:07,240 ჩვენ შესაყვანი, რომ ფუნქცია როგორც არგუმენტი ამ ფუნქციას აქ. 1150 01:05:07,240 --> 01:05:09,120 >> აუდიტორია: [INAUDIBLE] თუ არა ნული. 1151 01:05:09,120 --> 01:05:11,470 ასე რომ, ეს არის სიაში, უფლება? 1152 01:05:11,470 --> 01:05:15,450 >> DAN Armendáriz: თუ შეცდომა არ არის ნული, ასე, რომ არის ამიტომ უნდა გადახვევა. 1153 01:05:15,450 --> 01:05:18,060 ისე, ვნახოთ, მე ნამდვილად ვერ გადადით აქ. 1154 01:05:18,060 --> 01:05:23,161 შეცდომა არის არგუმენტი, რომ მიმდინარეობს გავიდა ეს ანონიმური ფუნქცია. 1155 01:05:23,161 --> 01:05:24,410 ეს არის ანონიმური ფუნქცია. 1156 01:05:24,410 --> 01:05:25,480 მას არ აქვს სახელი. 1157 01:05:25,480 --> 01:05:29,850 მაგრამ ჩვენ ვიღებთ ამ სამი არგუმენტები, მონაცემები, პასუხი, და შეცდომა. 1158 01:05:29,850 --> 01:05:33,590 და ის აპირებს დაბრუნებას ბათილად, ისე, ის არ აპირებს დაბრუნებას არაფერი. 1159 01:05:33,590 --> 01:05:37,910 და ეს არის შინაარსი ამ ფუნქციას. 1160 01:05:37,910 --> 01:05:41,961 და მაშინ ჩვენ გვაქვს წვდომა შიგნით რომ ფუნქცია, რომ თითოეული ეს არგუმენტები. 1161 01:05:41,961 --> 01:05:45,650 1162 01:05:45,650 --> 01:05:48,679 >> ასე რომ, ეს ქარიშხალი ტური ენაზე. 1163 01:05:48,679 --> 01:05:50,470 მაგრამ იმედი მაქვს, ეს, იმედია, როგორც თქვენ მიიღოს 1164 01:05:50,470 --> 01:05:54,490 შევხედოთ ზოგიერთი გაკვეთილები სპეციფიკური iOS განვითარების Swift, 1165 01:05:54,490 --> 01:05:57,481 მით უმეტეს, თუ წასვლა Apple- ის დეველოპერი ვებ გვერდზე 1166 01:05:57,481 --> 01:05:59,980 მათ აქვთ ბევრი ძალიან კარგი გაკვეთილები მისაღებად თქვენ დაიწყო. 1167 01:05:59,980 --> 01:06:05,010 მაგრამ იმედია მხოლოდ ამ საათში საუბარი შესახებ სინტაქსი თავად მისცა 1168 01:06:05,010 --> 01:06:08,760 თქვენ საკმარისი უნდა დავიწყოთ, რომ. 1169 01:06:08,760 --> 01:06:12,950 >> ჩვენ პოსტი ყველა ამ წყაროს კოდი სემინარზე ნახვა 1170 01:06:12,950 --> 01:06:17,800 რაც შეიძლება მალე, და ასევე სლაიდები ასე რომ თქვენ გაქვთ მინიშნება ყველა იმ. 1171 01:06:17,800 --> 01:06:20,530 მაგრამ წარმატებებს გისურვებთ თქვენი პროექტები. 1172 01:06:20,530 --> 01:06:23,640 და დიდი მადლობა თქვენ ძალიან ბევრი მოდის. 1173 01:06:23,640 --> 01:06:26,990 >> [ტაში] 1174 01:06:26,990 --> 01:06:28,026