[მუსიკის დაკვრა] DAN AMRMENDARIZ ყველას, მივესალმები CS50 სემინარი, iOS App განვითარების Swift. მე Dan Armendariz, და მე preceptor კომპიუტერულ მეცნიერებათა აქ ჰარვარდის. და მომდევნო საათი იქნება Whirlwind ტური იმდენი პერსონალი ამ თემაზე, როგორც ჩვენ ეტევა. მე პოსტი ყველა კოდის რომ ნახავთ დღეს ონლაინ რეჟიმში. ჩვენ შეიძლება ვერ შეძლებს რეალურად წავიდეთ მეტი ყველაფერი რომ მე ვარ, რომ მე ვარ გვიჩვენებს, თუ ამ საათში. მაგრამ მაინც იმედია მეშვეობით კომენტარი კოდის, თქვენ გექნებათ ცდილობენ გაერკვნენ, თუ რა ზუსტად ხდება იმ რამ, რომ ჩვენ არ საკმაოდ მისაღებად. საერთო ჯამში, სტრუქტურა დღევანდელი განხილვა იქნება შემდეგი. ჩვენ დავიწყებთ აკეთებს ზოგიერთი ძირითადი სინტაქსი ერთად Swift ენის, შესვლის ზოგიერთი მოწინავე სინტაქსი Swift ენაზე. იმის გამო, რომ ენის მართლაც, თანამედროვე და ეს აქვს უამრავი მაღალი დონის თვისებები, რამ, რომ ჩვენ არ გვაქვს ჩანს C მთელი CS50, ან კიდევ რამდენიმე სხვა ენებზე რომ დავიწყეთ გამოყენებით ამ CS50, როგორიცაა PHP, ასე რომ, მე ვაპირებ, რომ უნდა ვეცადოთ, რომ დანერგვა, ასევე რამდენიმე თემა, რომელიც რომლებიც ეხება უმაღლესი დონის ენებზე რომ თქვენ შეიძლება ვერ ვხედავ სიღრმის CS50, მაგრამ ნახავთ მოგვიანებით კომპიუტერულ მეცნიერებათა კლასების. ასე რომ, ეს იქნება მჭიდროდ შეფუთული საათი. და გთხოვთ მოგერიდებათ მიადევნე თვალი თუ თქვენ გაქვთ რაიმე შეკითხვები. ასე რომ, თუ თქვენ დაინტერესებული ამით განვითარების ერთად Swift, ან მართლაც ნებისმიერი iOS app განვითარების, არსებობს რამდენიმე მოთხოვნები. პირველ რიგში, თქვენ უნდა იყოს გამოყენებით Mac, გაშვებული მაგალითები რომ ჩვენ ვაპირებთ იყოს გამოყენებით დღეს, შედარებით ახალი ვერსია OS X. ამ შემთხვევაში, მე გაშვებული X 10.5. თქვენ შეიძლება იყოს გაშვებული 10.11 თუ გინდათ. მაგრამ ყველაფერი, რაც თქვენ ვაპირებთ ხედავთ არის ჩართვის Xcode 7 და მოგვიანებით, რომელსაც აქვს უახლესი ვერსია საქართველოს Swift, რომელიც Swift 2.0. ეს არის რეალურად საკმაოდ მნიშვნელოვანი განსხვავება. ბევრი სინტაქსი აქვს შეიცვალა საკმაოდ მნიშვნელოვნად რიგ შემთხვევებში საწყისი Swift 1.0, რომელიც გამოიცა გასულ წელს, to Swift 2.0, რომელიც უბრალოდ გამოვიდა ამ შემოდგომაზე. ასე რომ, ჩვენ ვაპირებთ, Swift 2.0. ბევრი რამ, რომ თქვენ მოძებნოთ ონლაინ როდესაც თქვენ ცდილობთ მიიღოთ დამატებითი ინფორმაცია სხვადასხვა ნივთები, თქვენ მოისურვეთ მკაფიოდ ძიება Swift 2 ვიდრე მხოლოდ ბარის ძველ Swift რათა დარწმუნებული ვარ, რომ თქვენ სინტაქსი სწორი. ფაქტობრივად, ეს არის ზოგადად ასეა. აქ არის სწრაფი რაოდენობის განვითარების ხდება Swift ენის მას შემდეგ, რაც Apple გამოუშვა, მე ვფიქრობ, რა, ეს იყო ცოტა მეტი წლის ახლა. და რამ შეიცვალა მკვეთრად იმ დროს. ასე რომ არ იყოს იმედგაცრუებული იმ შემთხვევაში, თუ, როდესაც თქვენ ეძებს გარშემო თემები on Swift და როგორ განახორციელოს რაღაც იყენებთ მაგალითად კოდი ან რამე, რომ არ რეალურად მუშაობა Swift 2.0. დარწმუნდით, რომ თქვენ ეძებს სპეციალურად, რომ ვერსია ცდილობენ მინიმუმამდე ეფექტი სხვადასხვა ვერსიები და იმ სახის ნივთები. ვეცდები აღვნიშნო, უბრალოდ ზოგი რამ რომლებიც სხვადასხვა ძველი ვერსიები. მაგრამ ეს არის ის, რომ ფრთხილად. ეს, ალბათ, იქნება ერთ-ერთი ყველაზე დიდი ტკივილი რომ თქვენ გაქვთ Swift პოულობს მაგალითად კოდი, რომელიც არის ძველი, თუნდაც მხოლოდ რამდენიმე თვის განმავლობაში, ცდილობს გამოიყენოს ეს თქვენი უფრო თანამედროვე პროექტი. და ეს უბრალოდ არ მუშაობს. თქვენ მიღების შემდგენელი შეცდომები, სინტაქსი შეცდომები, ყველა სახის გიჟები პერსონალი. ასე რომ მხოლოდ მოთმინება რომ, და თქვენ იმედია აქვს საკმაოდ კარგი გამოცდილება ერთად Swift საერთო. ახლა თქვენ შეგიძლიათ რეალურად join-- და იმედი მაქვს, ჩვენ, ფაქტობრივად, ჯერ კიდევ აქვს ამ ამ წლამდე CS 50 Apple app განვითარების გუნდი, რომელიც რომელიც საშუალებას გაძლევთ დააყენოთ ნებისმიერი apps რომელიც თქვენ შექმნათ თქვენი iOS მოწყობილობების. ასე რომ შევხედოთ ამ URL, თუ თქვენ ხართ დაინტერესებული აკეთებს, რომ. ასე რომ, მხოლოდ რამდენიმე რამ Swift თავად. ეს არის შედგენილი ენაზე. მაგრამ თქვენ ნახავთ, რომ ზოგიერთი თავისებურება, რომ ჩვენ ვიყენებთ საშუალებას იძლევა იგი გამოყენებულ იქნას ასევე ცოტა როგორც გაგებული, გზა, ისევე. ბევრი სინტაქსი არის ნასესხები საწყისი C. ის საფუძველზე და დაწერილი C. ასე რომ, ჩვენ ვხედავთ, რომ არსებობს ბევრი takeaways თქვენი არსებული ცოდნა საწყისი C, რომ ჩვენ შეგვიძლია პორტი Swift. მაგრამ არსებობს რამ, რომ რათა ის ძალიან განსხვავდება C. ეს არის ძალიან მკაცრად აკრეფილი. არსებობს ავტომატური მეხსიერების მართვა. თქვენ არ აპირებს უნდა გამოიყენოთ malloc და თავისუფალი სადმე. ის განკუთვნილია ზოგადი. სხვა სიტყვებით, შეგიძლიათ გამოიყენოთ იგი ყველა სახის კონტექსტში, Apple- ის Watch to iPhone ყველა გზა მდე OS X, და კიდევ რამდენიმე სერვერები, ზოგიერთი სკრიპტირების. მაგრამ ჩვენ ვხედავთ, რომ მხარდაჭერა სკრიფტინგის არ არის იქ კიდევ, როგორც ეს არის სხვა ენებზე. ასე რომ, სავარაუდოდ, თქვენ უნდა გამოყენებით ეს მხოლოდ განვითარების თქვენი Mac ან თქვენი iPhone. და მას აქვს ბევრი თანამედროვე მახასიათებლები. და ბევრი რამ არის პერსონალი, რომ ჩვენ ვაპირებთ, რომ ცდილობენ მიმართოს დღეს, არამედ ჩვენი თემა, რომ გულწრფელად, ჩვენ შეგვიძლია დაუთმოს მთელი კურსები. ფაქტობრივად, CS 51, რომელიც არის შესთავაზა მომდევნო სემესტრში, ყურადღებას ბევრი ამ თემებზე რომ აღწერილია ქვემოთ. ასე რომ, თქვენ შეგიძლიათ გაატაროთ მთელი სემესტრის გაგება ამ საკითხზე. მაგრამ ჩვენ ვაპირებთ, რომ ცდილობენ მათი მეშვეობით მინიმუმ საკმარისი, რომ თქვენ მესმის, რა არის მიმდინარეობს, როდესაც თქვენ შეხედეთ ერთი Swift პროგრამა და შეძლებს hack თქვენი გზა მეშვეობით საბოლოო პროექტი. ახლა ერთი საუკეთესო გზა, რომ თქვენ დამატებითი ინფორმაციის მისაღებად ამ გულწრფელად მხოლოდ მეშვეობით Apple- ის გათვალისწინებული დოკუმენტაცია Swift. არსებობს ბევრი APIs რომ არის შესაძლებელი. და ეს არის კარგი ბაზის თქვენთვის უნდა ვეძებოთ, კონკრეტული რამ, რომ თქვენ მინდა ამის გაკეთება რომელზეც API ჩართვის iOS. თუ გსურთ გამოიყენოთ კამერა მაგალითად, შეგიძლიათ დაიწყოს ეძებს აქ, და ასევე გამოიყენოთ Google და დასტის Overflow როგორც თქვენ ჩვეულებრივ. ნებისმიერი კითხვები ამ სანამ ჩვენ გადასვლა უფლება? კარგი. მოდით გადაადგილება. ასე რომ, პირველი, მე მაქვს ნომერი მაგალითად ფაილი. და მე ვაპირებ შევეცდებოდით მათი მეშვეობით შედარებით სწრაფად. ეს არის Hello World ფაილი Swift. ეს ძალიან მარტივია. იქ უფრო მეტი კომენტარები ვიდრე არსებობს ფაქტობრივი კოდი. ყურადღება მიაქციეთ, ფაქტობრივი კოდი არის ძალიან ბოლოში on line 14. იგი აცხადებს, რომ ბეჭდვითი. და შემდეგ ეს ფუნქცია ზარი. ჩვენ გავლით შევიდა ეს სიმებიანი მოუწოდა გაუმარჯოს CS50. ყურადღება მიაქციეთ, რომ არ არსებობს semicolons. ყურადღება მიაქციეთ, რომ არ არსებობს int ძირითადი. არსებობს არც ერთი cruft, რომ ჩვენ გვქონდა C. როდესაც ჩვენ ვიყენებთ Swift ამ გზით, რომელიც მხოლოდ წერილობითი ტექსტური ფაილი და ინახება ჩემი კომპიუტერი, მაშინ შემიძლია კომპილირება და გაუშვით. გაითვალისწინეთ, რომ აქ ვარ არ იყენებთ CS50 IDE. ეს გულისხმობს, რომ მე ვარ და რომ მე ვარ OS X, და, რომ მე არ Xcode უკვე დაყენებული ეს მანქანა, რათა ამ რეალურად ფუნქცია. მაგრამ ეს არ არის მხოლოდ ჩვეულებრივი ტექსტური ფაილი რომ ჩვენ შეგვიძლია მაშინ შედგენა და რედაქტირება. მოდით ვნახოთ, როგორ ეს რეალურად მუშაობს. რა მოხდება, თუ მინდა კომპილაციის ეს? swiftc 1.swift. შემდეგ მომენტში ან ორი, დაინახავთ, რომ ჩვენ ახლა გვაქვს შედგენილი ამ შევიდა ფაილი სახელად 1. და ახლა ჩვენ არ იბეჭდება ჩვენი CS50, ჩვენი Hello World პროგრამა საკმაოდ. გაითვალისწინეთ ერთი რამ, როგორც კარგად არის, რომ ჩვეულებრივ, ჩვენ არ უნდა შეყვანის ა / ო ბეჭდვა ახალი ხაზი. სტანდარტულად, ბეჭდვითი ფუნქცია Swift ბეჭდვა ახალი ხაზი თქვენთვის. თქვენ შეგიძლიათ გადასცეთ არასავალდებულო დამატებითი პარამეტრი გითხრათ, რომ ეს არ არის ამის გაკეთება. მაგრამ Google დამატებითი ინფორმაცია, რომ. ჩვეულებრივ, ის ყველაფერს გააკეთებს ბეჭდვის ხაზი. ყველა უფლება, მოდით გადაადგილება მაშინ სხვა რამ. მაშ, როგორ შეგვიძლია რეალურად განსაზღვრავს ცვლადები? ჩვენ შეგვიძლია გავაკეთოთ, რომ გამოყენებით ერთი ორი მეთოდები. და ერთი, რომ მე მინდა გითხრათ, შესახებ პირველი არის let განმარტება. და ეს არის მნიშვნელოვანი იმიტომ, რომ ეფექტურად ის, რასაც ჩვენ ვაკეთებთ განსაზღვრის მუდმივი. ჩვენ ვაპირებთ, რომ შევქმნათ ცვლადი, უფრო სწორად მუდმივი მოუწოდა სახელი, გთავაზობთ მას გარკვეული მონაცემები და ამ შემთხვევაში, სიმებიანი დან. მაგრამ გამოყენებით ამ let სიტყვით, ჩვენ ვამბობთ რომ ეს ცვლადი ან ერთხელ constant-- ე.წ. სახელი არასდროს შეიცვლება. ეს იქნება უცვლელი მთელი ხანგრძლივობა ამ პროგრამის ან მთელი ხანგრძლივობა კონტექსტში , რომ ცვლადი არის შესაძლებელი. ეს მართლაც მნიშვნელოვანია, რომ როდესაც თქვენ გაქვთ ზოგიერთი მონაცემებით, რომელიც არ არის შეიცვლება თქვენი პროგრამა, და დაინახავთ სხვადასხვა მაგალითები როდესაც ჩვენ გვინდა გამოვიყენოთ მიადევნე წინააღმდეგ სხვა სინტაქსი, მნიშვნელოვანია, რომ თქვენ იყენებთ მიადევნე სადაც შესაძლებელია, რადგან ეს აცნობებს ენა, რომ ეს არის არ შეიცვლება, და ეს შეიძლება რეალურად შეასრულოს ბევრი ოპტიმიზაციით გააუმჯობესოს სიჩქარე და უსაფრთხოების პროგრამა. და უსაფრთხოების, მე ვგულისხმობ არა მიადევნე ავარიის გიჟები შეცდომები რომ შეიძლება იყოს მიჩვეული ხედავს in C. მაშინ ჩვენ შეგვიძლია გამოვიყენოთ სიმებიანი ინტერპოლაცია რომ encapsulate ამ ფარგლებში სიმებიანი. ასე რომ, ჩვენ ვხედავთ ბეჭდვის ხაზი, ბეჭდვა hello, და შემდეგ გამოყენებით წარმატებული ღია parens, და შემდეგ სახელი ჩემი ცვლადი, ამ შემთხვევაში, მუდმივი, დახურვა ფრჩხილებში. მე არსებითად შემდეგ აყენებს შინაარსი ამ ცვლადში სახელი შიგნით სიმებიანი და შემდეგ დაბეჭდვის შედეგი იყო. არსებობს ერთი ცვლილება ამ ფაილის რაც არის, რომ მე მაქვს, ძალიან ზევით, მა shebang ხაზი, რომელიც ძირითადად მხოლოდ განსაზღვრავს რომ მინდა გამოიყენოთ Swift თარჯიმანი, რაც იმას ნიშნავს, რომ მე აღარ უნდა შეადგინონ ამ კონკრეტულ პროგრამას. მე შემიძლია უბრალოდ გაუშვით როგორც საკუთარი დამწერლობა აქვს. მაგრამ ეს არ არის, ამ შემთხვევაში, უკან სცენები იქმნება და შემდეგ მიმდინარეობს აწარმოებს. ეს მხოლოდ უხილავი ჩვენთვის. ყველა უფლება, მოდით გადაადგილება. ასე რომ, ცოტა მოსატყუებლად რომ მოხდა ადრე. მე აჩვენა, რომ მე შეიძლება განისაზღვროს მუდმივი. და მე ვერ გთავაზობთ ზოგიერთი მონაცემების ამის გაკეთება. მაგრამ ამ შემთხვევაში, შეამჩნია, რომ მე არ რეალურად დააკონკრეტა ტიპის მონაცემები ეს არის. და ეს იმიტომ, რომ შემდგენელი, Swift შეუძლია დასკვნის ტიპის მონაცემები უბრალოდ საფუძველზე წლის მონაცემები, რომ მე ეს. იმის გამო, რომ იცის, რომ შეფასებისას ეს ცვლადი სწორედ აქ, ამ მონაცემების უფლება აქ, იცის, რომ ეს არის ტექსტი. ასე რომ, ეს მუდმივი სახელი ამიტომ იქნება სიმებიანი ისევე. მაგრამ ჩვენ ასევე შეიძლება გამოკვეთილ ტიპის შესახებ, რომ ჩვენ ვაპირებთ, რომ გამოიყენოთ მუდმივები და ცვლადები გამოყენებით ამ სინტაქსი instead-- მიადევნე სახელი ნაწლავის სიმებიანი ტოლია Dan, რომელიც ამ შემთხვევაში ნიშნავს იმას, რომ ჩვენ აპირებს განსაზღვროს მუდმივი მოუწოდა სახელი. ეს იქნება ტიპის სიმებიანი. და ღირებულება იქნება დან. ახლა სხვა გზა, რომ ჩვენ შეგვიძლია შევქმნათ ცვლადები და ეს არის mutable ცვლადები, რომელიც იმას ნიშნავს, რომ ჩვენ, ფაქტობრივად, აპირებს შეცვალოს მათი შინაარსი შუალედში ხანგრძლივობა კონტექსტში , რომ ცვლადი defined-- ჩვენ გამოიყენოთ var სიტყვით ნაცვლად მისცეს. მაგრამ ერთხელ, ჩვეულებრივ, თუ თქვენ არ იცით რომ თქვენ უნდა მანიპულირება, რომ მონაცემები, ცდილობენ გამოიყენონ მიადევნე for შესრულების გაუმჯობესება. ამ შემთხვევაში, მე შეიძლება მაშინ დააკონკრეტა ტიპის მონაცემები ჩვენ ველით, რომ იყოს შიგნით ახალი ცვლადში იარლიყი. ეს იქნება სიმებიანი. და ჩვენ ვაპირებთ, რომ მაშინ concatenate ორი strings ერთად, სიმებიანი hello, და სიმებიანი მიერ წარმოდგენილი ცვლადი, უფრო სწორად, მუდმივი სახელი. ასე რომ, ეს არის კარგი, რადგან ამ გარკვეულწილად PHP, როგორც, რომ ჩვენ აქვს ძალიან მარტივი სიმებიანი გაერთიანების. ჩვენ არ უნდა ავტომატურად გამოიყენოთ ნებისმიერი სახის მეხსიერების მართვა ზომის გაზრდა და ამის ნებისმიერი სახის სასაცილო რამ არსებობს. ეს მუშაობს, როგორც ჩვენ გვინდა რეალურად ველოდოთ. ყველა უფლება, ნებისმიერი კითხვები ამ? ახლა სხვა მიზეზის გამო, რომ ჩვენ უნდა თქვენ გაქვთ შესაძლებლობა შეძლებს განსაზღვროს, თუ რა ტიპის მონაცემები ცვლადები იმიტომ რომ ზოგჯერ ჩვენ არ მინდა ინიციალიზაცია ცვლადები ზოგიერთი მონაცემები წერტილი განმარტება. ასე რომ, ამ შემთხვევაში, ვთქვათ, რომ მინდა, რომ დაიწყოს შესაყვანი ზოგიერთი შეფასება შევიდა კლასის წიგნში. კარგად ვიცი, რომ ერთ-ერთი ცვლადები, რომ მინდა იყოს აპირებს იყოს mutable კლასის. ჩვენ ასევე ვიცით, რომ ჩვენ მინდა, რომ ეს იყოს მთელი რიცხვი. მაგრამ იქნებ ჯერ არ ვიცით, აქვს, რომ კლასის შესაძლებელი. In Swift, თქვენ უნდა განსაზღვრავს ტიპის მონაცემები რომ არის დაკავშირებული ცვლადი ან მიადევნე მუდმივი სანამ რეალურად გამოყენება, რომ ცვლადი. იმის გამო, რომ იგი კატეგორიულად აკრეფილი, თქვენ უნდა გაერთიანდნენ ტიპი ამ ცვლადებს. ასე რომ, ამ შემთხვევაში, თუ მე არ არის სათანადოდ ინიციალიზაცია პირველი გარკვეული მნიშვნელობა, მაშინ მე უნდა გითხრათ Swift რა ვიმედოვნებ, რომ მონაცემები ტიპის უნდა იყოს. და ის აპირებს დარჩეს რომ იგივე მონაცემების ტიპის მთელი ისტორიის ეს პროგრამა. ახლა თქვენ შეიძლება ცდუნება, როგორც კი მე შევქმენი ეს grade ცვლადი და იმ პირობით, მას რიცხვი 100, ახლა თუ მე შევეცდები, რომ concatenate სიმებიანი რომ რიცხვი, შეიძლება ცდუნება მაინც გამოიყენოს რომ სიმებიანი გაერთიანების ოპერატორი როგორც ჩვენ გავაკეთეთ მხოლოდ რამდენიმე ხაზი ადრე. მაგრამ სამწუხაროდ, ეს, ფაქტობრივად, არ მუშაობა, იმიტომ, რომ თქვენ არსებითად ასრულებენ ოპერაცია ორი სხვადასხვა ტიპის. ეს არის ძალიან განსხვავდება სხვა ენებს, როგორიცაა PHP, რომელიც ნამდვილად loosey goosey მათი ერთგვარი ტიპის. ისინი უბრალოდ მინდა, ჰო, რაც არ უნდა, მე არ მაინტერესებს. უბრალოდ მომეცი ერთი ტიპის, და იქნებ მე გავაკეთოთ სწორი. ამ შემთხვევაში, Swift არის ძალიან მკაცრი სახის რომ თქვენ საქმე. ეს summation ოპერატორი ან გაერთიანების ოპერატორი ძირითადად რამდენიმე სხვადასხვა შესაძლო ვარიანტი. თქვენ შეგიძლიათ ამის summation მთელი რიცხვები, ან თქვენ შეგიძლიათ გააკეთოთ სიმებიანი გაერთიანების და ალბათ ზოგიერთი სხვა რამ, ისევე. მაგრამ, თუ ოპერატორი არ აღიარებს რა არის ორივე მხარეს, უფრო სწორად მოიცავს იმ ორი სახის, არ არის ის ელოდება, შემდეგ ის აპირებს გამოიწვიოს მარცხი. ასე რომ, ამ შემთხვევაში, რას ნიშნავს ეს აქვს სიმებიანი პლუს რიცხვი? ისე კონტექსტში ეს, ჩვენ, ალბათ, სურს გავაკეთოთ სიმებიანი გაერთიანების ოპერაცია. მაგრამ რა თქმა უნდა კომპიუტერი არ აქვს, რომ ერთგვარი კონტექსტში. ასე რომ, ჩვენ უნდა უზრუნველყოს რომ დამატებითი ინფორმაცია ასეც ვიცი, თუ რა ის არის, რომ ჩვენ გვინდა გავაკეთოთ. სხვა სიტყვებით, ის ფაქტი, რომ Swift მკაცრად აკრეფილი იმას ნიშნავს, თქვენ უნდა გავაკეთოთ ცოტა დამატებითი სამუშაო უნდა მიიღოს იგი მუშაობას გზა, რომ თქვენ გსურთ. მაგრამ შედეგად, ეს არის უსაფრთხო. და კიდევ თქვენ გაქვთ მიიღოს მხედველობაში იმ ტიპის, რამ უბრალოდ გულწრფელად დაიწყოს მუშაობა კარგად. ასე რომ, ამ შემთხვევაში, ჩვენ მაშინ ასრულებს სიმებიანი გაერთიანების მიერ მკაფიოდ აძლევენ მთელი სიმებიანი შესაფუთი მას ამ კაპიტალის S სიმებიანი ფუნქცია, და შემდეგ გამოყენებით სიმებიანი გაერთიანების ოპერატორი ცვლილებები ჩვენი ეტიკეტების ცვლადი, და შემდეგ ამობეჭდოთ. ჯერჯერობით, იმდენად კარგი? ყველა უფლება, მოდით გადაადგილება. ახლა არსებობს სხვადასხვა მონაცემები ტიპის, რომ ჩვენ შეგვიძლია გამოვიყენოთ Swift. როგორც თქვენ არ შეეჩვია, ჩვენ შეგვიძლია შევქმნათ mutable მასივი. და რომ მასივი მხოლოდ შეიცავს ერთი ტიპის. ასე რომ, ამ შემთხვევაში, ჩვენ ვაპირებთ, რომ შევქმნათ mutable მასივები რიცხვებით, რომლებიც ჩვენ მოვუწოდებთ შეფასება და ჩვენ შევძლებთ შესანახად, რომ ამ კვადრატული ფრჩხილი ფორმატი, როგორც თქვენ გაიზარდა მიჩვეული რომ სხვადასხვა სხვა ენებზე. მაგრამ შეამჩნია, რომ აქ ჩვენ განსაზღვრის რამდენიმე რამ. შეფასება არის mutable ცვლადი ჩვენ არ გამოიყენოთ let სიტყვით. ასე რომ, ეს ნიშნავს, რომ ჩვენ შეგვიძლია შემდეგ ცვლილებები შინაარსი ამ მასივი. ეს არის ტიპის Array Int, და ჩვენ შეგვიძლია ვთქვათ, რომ საფუძველზე ამ კვადრატულ ფრჩხილებში აქ. ახლა ერთი კარგი რამ არის ის, რომ ჩვენ გვაქვს წვდომა ბევრი დამატებითი ინფორმაცია შესახებ მასივი უბრალოდ გამოყენებით რამდენიმე მარტივი dot ნოტაცია. ასე მაგალითად, grades.count უზრუნველყოფს ჩვენთან რაოდენობის საკითხი, რომელიც არსებობს, რომ მასივი, რომელიც ჩვენ შეგვიძლია შემდეგ შედიხართ საკმაოდ ადვილად უბრალოდ გამოყენებით, რომ dot ნოტაცია. თუ გსურთ დამატებითი ელემენტი ამ მასივი, თქვენ ვერ PHP სტილი სადაც თქვენ უბრალოდ მკაფიოდ განსაზღვრა, მოცემულ ინდექსი, გარკვეული მნიშვნელობა რომ გსურთ ჩადეთ. იმის ნაცვლად, რომ, გამოიყენოთ დამატება მეთოდი მასივი ტიპი დამატება, რომ საქონელი, 95, ამ სიაში. ასე რომ, ახლა ამ მასივი აქვს შემდეგი contents-- 100, 0, 90, 85. და ახლა ჩვენ ჩაჯდება 95 რომ ისევე. არსებობს სხვა გზები ჩვენ შეგვიძლია დავამატოთ რამ. თქვენ შეგიძლიათ რეალურად გამოვიყენოთ summation ოპერატორი, რომელიც უნდა განიმარტოს, როგორც მასივი დამატება ოპერაცია. და შეგიძლიათ შემდეგ დამატება სხვა მასივი, რომლის შინაარსი 70 და 80, რომ მასივი. ასე რომ, ახლა ჩვენ გვაქვს შინაარსი ამ ცვლადის grades-- 100, 0, 90, 85, 95, 70 და 80. ეს არის უბრალოდ ლამაზი პატარა სინტაქსური შაქრის Swift უზრუნველყოფს ჩვენთვის. ასე რომ, თუ ჩვენ გვინდა, რომ მთლიანობაში შეფასება, ჩვენ, ალბათ, აპირებს გვინდა iterate ყოველ ერთეულზე ამ loop. და ჩვენ არ გვაქვს, Swift, ცნება ამისთვის loop როგორც თქვენ მოელოდა. მაგრამ ისე, რომ ჩვენ მიუთითოს სპექტრი ოდნავ განსხვავებული. ასე რომ, ამ შემთხვევაში, მთლიანობაში ყველაფერი, ჩვენ გამოგიგზავნით აპირებს შექმნას დროებითი ცვლადში თანხა, რათა ჩვენთვის რომ შევინარჩუნოთ ეს რაოდენობა. და შენიშნავს, ჩვენი for loop სამშენებლო აქ. ინდექსის 0 ..