[Παίζει μουσική] DAN AMRMENDARIZ: Ο καθένας, καλώς ήλθατε στο σεμινάριο CS50, iOS App Ανάπτυξης με Swift. Είμαι Νταν Armendariz, και είμαι διδάσκαλος της επιστήμης των υπολογιστών εδώ στο Χάρβαρντ. Και την επόμενη ώρα θα είναι ένας ανεμοστρόβιλος περιοδεία του ως πολλά πράγματα σχετικά με αυτό το θέμα, όπως μπορούμε να χωρέσουν. Θα τοποθετήσω όλα του πηγαίου κώδικα ότι θα δούμε σήμερα στο διαδίκτυο. Εμείς μπορεί να μην είναι σε θέση να πραγματικά να πάμε πάνω από όλα ότι είμαι ότι είμαι δείχνοντάς σας σε αυτή την ώρα. Αλλά τουλάχιστον ελπίζουμε ότι μέσα από τα σχόλια του πηγαίου κώδικα, θα είστε σε θέση να προσπαθήσουμε να καταλάβουμε τι ακριβώς συμβαίνει για αυτά τα πράγματα ότι δεν είναι αρκετά για να πάρει. Συνολικά, η δομή του η σημερινή συζήτηση θα είναι ως εξής. Θα ξεκινήσουμε να κάνει κάποιες βασικές σύνταξη με τη γλώσσα Swift, υπεισέλθω σε μερικά από τα πιο προηγμένα συντακτικό της γλώσσας Swift. Επειδή η γλώσσα είναι πραγματικά μοντέρνα και έχει πολύ υψηλό επίπεδο χαρακτηριστικά, τα πράγματα που δεν έχουμε δει σε C σε όλη CS50, ή ακόμη και ορισμένοι οι άλλες γλώσσες ότι έχουμε αρχίσει χρήση σε CS50 όπως PHP, έτσι είμαι πρόκειται να πρέπει να προσπαθήσουν να εισάγουν επίσης κάποια θέματα τα οποία σχετίζονται με υψηλότερο επίπεδο γλώσσες ότι δεν μπορείτε να δείτε σε βάθος στο CS50, αλλά θα δείτε στη συνέχεια μαθήματα επιστήμης των υπολογιστών. Γι 'αυτό πρόκειται να είναι μια πυκνά ώρα. Και παρακαλώ αισθανθείτε ελεύθερος να με αφήσει ξέρω εάν έχετε οποιεσδήποτε ερωτήσεις. Έτσι, αν σας ενδιαφέρει με τον τρόπο ανάπτυξης με Swift, ή πραγματικά οποιαδήποτε ανάπτυξη app iOS, υπάρχουν μερικές απαιτήσεις. Πρώτα απ 'όλα, θα πρέπει να χρησιμοποιείτε ένα Mac, που τρέχει στα παραδείγματα ότι θα πρέπει να χρησιμοποιείτε σήμερα, μια σχετικά νέα έκδοση του λειτουργικού συστήματος X. Στην περίπτωση αυτή, τρέχω X 10.5. Μπορείτε να εκτελείτε 10.11, αν θέλετε. Αλλά ό, τι πρόκειται να δείτε εμπλέκει Xcode 7 και αργότερα, το οποίο διαθέτει την τελευταία έκδοση του Swift, η οποία είναι Swift 2.0. Αυτό είναι πραγματικά ένα πολύ σημαντική διάκριση. Ένα μεγάλο μέρος της σύνταξης έχει άλλαξε αρκετά σημαντικά σε ορισμένες περιπτώσεις, από το Swift 1.0, το οποίο κυκλοφόρησε τον περασμένο χρόνο, σε Swift 2.0, η οποία μόλις βγήκε αυτό το φθινόπωρο. Έτσι θα πάμε να δείξουμε Swift 2.0. Πολλά από τα πράγματα που ψάχνετε για online όταν προσπαθείτε να πάρετε επιπλέον πληροφορίες σχετικά με μια ποικιλία από πράγματα, μπορεί να θέλετε να ρητά αναζήτηση για Swift 2 και όχι απλά παλιά Swift να κάνει βεβαιωθείτε ότι μπορείτε να πάρετε το σωστό σύνταξη. Στην πραγματικότητα, αυτό είναι γενικά αλήθεια. Υπάρχει μια ταχεία ποσό της αναπτυξιακής συμβαίνει στο Swift γλώσσα από τότε που η Apple κυκλοφόρησε, νομίζω τι, αυτό είναι λίγο περισσότερο από ένα χρόνο τώρα. Και τα πράγματα έχουν αλλάξει δραματικά σε αυτό το διάστημα. Και έτσι δεν πρέπει να απογοητεύονται εάν, όταν ψάχνετε γύρω από για θέματα σχετικά με Swift ή πώς να ολοκληρώσει κάτι χρησιμοποιώντας κάποια παράδειγμα κώδικα ή κάτι που δεν το κάνει πράγματι εργάζονται για Swift 2.0. Βεβαιωθείτε ότι ψάχνετε ειδικά για αυτήν την έκδοση να προσπαθήσει να ελαχιστοποιηθούν οι επιπτώσεις των διαφόρων εκδόσεις και αυτά τα είδη των πραγμάτων. Θα προσπαθήσω να επισημάνω μόνο μερικά πράγματα που είναι διαφορετικά σε παλαιότερες εκδόσεις. Αλλά είναι κάτι που πρέπει να προσέξετε. Αυτό πιθανότατα θα είναι μία από τις μεγαλύτερες πονοκεφάλους ότι θα έχετε με το Swift είναι η εύρεση παράδειγμα κώδικα που είναι μεγαλύτερης ηλικίας, ακόμα και απλά από λίγους μήνες, προσπαθεί να χρησιμοποιήσει το πιο σύγχρονο έργο σας. Και απλά δεν λειτουργεί. Παίρνετε σφάλματα μεταγλώττισης, σύνταξη λάθη, όλα τα είδη των τρελά πράγματα. Έτσι απλά να είστε υπομονετικοί με ότι, και ελπίζουμε ότι θα έχουν μια πολύ ωραία εμπειρία με συνολική Swift. Τώρα μπορείτε πραγματικά join-- και ελπίζω έχουμε στην πραγματικότητα εξακολουθούμε να έχουμε αυτό το αυτό το year-- Apple App CS 50 ομάδα ανάπτυξης, η οποία θα σας επιτρέψει να εγκαταστήσετε εφαρμογές το οποίο μπορείτε να δημιουργήσετε για iOS συσκευές σας. Έτσι, ρίξτε μια ματιά σε αυτό το URL, εάν Σας ενδιαφέρει να το κάνουμε αυτό. Έτσι, μόλις δύο πράγματα για τον εαυτό του Swift. Είναι ένα καταρτίζονται γλώσσα. Αλλά θα δείτε ότι μερικά από τα χαρακτηριστικά που χρησιμοποιούμε επιτρέπουν να χρησιμοποιείται επίσης σε ένα κομμάτι σαν ένας τρόπος ερμηνείας, καθώς και. Ένα μεγάλο μέρος της σύνταξης είναι δανεισμένος από C. Είναι βασισμένο και γραμμένο σε C. Και έτσι θα δούμε ότι Υπάρχουν πολλά φαστ φουντ από τις υπάρχουσες γνώσεις σας από C που μπορούμε να λιμάνι Swift. Αλλά υπάρχουν πράγματα που καθιστούν πολύ διαφορετική από C. Είναι πολύ έντονα δακτυλογραφημένη. Δεν υπάρχει αυτόματη διαχείριση μνήμης. Δεν πρόκειται να πρέπει να χρησιμοποιείτε malloc ή δωρεάν σε οποιοδήποτε σημείο. Είναι σχεδιασμένο για γενικότητα. Έτσι με άλλα λόγια, μπορείτε να το χρησιμοποιήσετε σε όλα τα είδη των πλαισίων, από την Apple ρολόι για το iPhone σε όλη τη διαδρομή μέχρι το OS X, και ακόμη και ορισμένοι διακομιστές, ακόμη και κάποια scripting. Αλλά θα δούμε ότι το υποστήριξη για scripting δεν είναι αρκετά εκεί ακόμα ως είναι σε άλλες γλώσσες. Έτσι, πιθανότατα θα χρησιμοποιείτε αυτό αποκλειστικά για την ανάπτυξη στο Mac σας ή το iPhone σας. Και έχει πολλά σύγχρονα χαρακτηριστικά. Και πολλά από αυτά τα πράγματα είναι πράγματα που θα πάμε για να προσπαθήσουμε να αντιμετωπίσουμε σήμερα, αλλά και θέματα που μας ότι ειλικρινά, μπορούμε να αφιερώσουμε ολόκληρο μαθήματα. Στην πραγματικότητα, CS 51, η οποία είναι προσφέρεται επόμενο εξάμηνο, εστιάζει πολύ για τα θέματα αυτά που περιγράφονται παρακάτω. Έτσι, μπορείτε να περάσετε ένα ολόκληρο εξάμηνο κατανόηση αυτών των πραγμάτων. Αλλά θα πάμε να προσπαθήσουμε για να πάρει μέσα από αυτά τουλάχιστον αρκετό ώστε να μπορεί να καταλάβει τι είναι συμβαίνει όταν κοιτάς σε Swift πρόγραμμα και να είναι σε θέση να χαράξει το δρόμο σας μέσα από αυτό για το τελικό σχέδιο. Τώρα, ένας από τους καλύτερους τρόπους που μπορείτε να πάρετε περισσότερες πληροφορίες σχετικά με αυτό Είναι ειλικρινά μόνο μέσω της Apple υπό την προϋπόθεση τεκμηρίωση για Swift. Υπάρχουν πολλά APIs που είναι διαθέσιμες. Και αυτό είναι μια καλή βάση για το σπίτι σας να αναζητήσουν, συγκεκριμένα πράγματα που μπορείτε θέλετε να κάνετε με ένα API που αφορούν iOS. Αν θέλετε να χρησιμοποιήσετε την κάμερα για παράδειγμα, μπορείτε να αρχίσετε να ψάχνετε εδώ, και επίσης να χρησιμοποιούν το Google και στοίβα Υπερχείλιση, όπως θα κάνατε κανονικά. Οποιεσδήποτε ερωτήσεις σχετικά με αυτό το πριν ξεκινήσετε αμέσως; Εντάξει. Ας προχωρήσουμε. Έτσι, η πρώτη, έχω ένα αριθμός του παραδείγματος αρχείων. Και Πάω να προσπαθήσω να εντείνει μέσα από αυτά σχετικά γρήγορα. Αυτό είναι το Hello World αρχείο για Swift. Είναι πολύ απλό. Υπάρχει τρόπος περισσότερα σχόλια από τον υπάρχοντα κώδικα. Παρατηρήστε την πραγματική κώδικας είναι σε το κάτω μέρος της γραμμής 14. Λέει εκτύπωσης. Και τότε είναι μια κλήση συνάρτησης. Είμαστε περνώντας σε αυτό μια σειρά που ονομάζεται Γεια CS50. Σημειώστε ότι δεν υπάρχει καμία ερωτηματικά. Σημειώστε ότι δεν υπάρχει int main. Υπάρχει κανένα από τα cruft που είχαμε με C. Όταν χρησιμοποιούμε Swift με τον τρόπο αυτό, το οποίο είναι ακριβώς γραμμένο σε ένα αρχείο κειμένου και αποθηκεύονται στον υπολογιστή μου, στη συνέχεια, Μπορώ να το υπολογίσουν και να το εκτελέσετε. Παρατηρήστε ότι εδώ είμαι δεν χρησιμοποιούν το IDE CS50. Αυτό προϋποθέτει ότι είμαι εκτελείται και ότι είμαι σε OS X, και ότι έχω ήδη εγκαταστήσει το Xcode σε αυτό το μηχάνημα, προκειμένου αυτό να λειτουργήσει πραγματικά. Αλλά αυτό είναι μόνο ένα κανονικό αρχείο κειμένου ότι μπορούμε στη συνέχεια να καταρτίσει και να επεξεργαστείτε. Ας δούμε πώς αυτό λειτουργεί πραγματικά. Τι γίνεται αν θέλω να το υπολογίσουν; swiftc 1.swift. Μετά από μια στιγμή ή δύο, το θα δούμε ότι έχουμε τώρα καταρτίζονται αυτό σε ένα αρχείο που ονομάζεται 1. Και τώρα έχουμε τυπωμένο CS50 μας, εφαρμογή μας Hello World όχι. Ανακοίνωση ένα άλλο πράγμα που καλά είναι ότι από προεπιλογή, δεν είχαμε στην είσοδο A / N για να εκτυπώσετε μια νέα γραμμή. Από προεπιλογή, η λειτουργία εκτύπωσης σε Swift θα εκτυπώσει μια νέα γραμμή για σας. Μπορείτε να περάσετε μια προαιρετική πρόσθετη παράμετρος για να το πω να μην το πράξουν. Όμως, το Google για περισσότερες πληροφορίες σχετικά με αυτό. Από προεπιλογή, αυτό θα κάνει τη γραμμή εκτύπωσης. Εντάξει, οπότε ας προχωρήσουμε στη συνέχεια σε κάποια άλλα πράγματα. Λοιπόν, πώς μπορούμε να ορίσουμε μεταβλητές στην πραγματικότητα; Μπορούμε να το κάνουμε αυτό είναι με τη χρήση μία από τις δύο μεθόδους. Και αυτό που θέλω να σας πω πρώτο είναι ο ορισμός αυτός let. Και αυτό είναι σημαντικό γιατί αποτελεσματικά αυτό που κάνουμε είναι μια σταθερά που καθορίζει. Θα δημιουργήσετε μια μεταβλητή, ή μάλλον ένα σταθερό όνομα που ονομάζεται, παρέχει σε αυτό μερικές data-- σε Στην περίπτωση αυτή, η σειρά Νταν. Αλλά με τη χρήση αυτής της let λέξη-κλειδί, λέμε ότι αυτό variable-- ή και πάλι constant-- ονομάζεται όνομα δεν πρόκειται ποτέ να αλλάξει. Είναι πρόκειται να είναι αμετάβλητη καθ 'όλη η διάρκεια του προγράμματος ή καθ 'όλη τη διάρκεια του πλαισίου ότι η μεταβλητή είναι διαθέσιμη. Αυτό είναι πολύ σημαντικό ότι όταν έχετε κάποια στοιχεία που δεν είναι πρόκειται να αλλάξει στο πρόγραμμά σας, και θα δείτε μια ποικιλία παραδειγμάτων περίπου, όταν θέλουμε να χρησιμοποιήσουμε ας σε σχέση με την άλλη σύνταξη, Είναι σημαντικό να χρησιμοποιείτε ας όπου αυτό είναι δυνατόν, επειδή αυτή ενημερώνει το η γλώσσα που είναι δεν πρόκειται να αλλάξει, και μπορεί στην πραγματικότητα να εκτελέσει πολλές βελτιστοποιήσεις για τη βελτίωση της ταχύτητας και της η ασφάλεια του προγράμματός σας. Και με την ασφάλεια, εννοώ όχι ας το δυστύχημα με τρελό λάθη ότι θα μπορούσαμε να συνηθίσει να βλέπουμε σε C. Στη συνέχεια, μπορούμε να χρησιμοποιήσουμε κλωστή παρεμβολή να ενσωματώσουν αυτό μέσα σε ένα string. Έτσι μπορούμε να δούμε σε αυτό το γραμμή εκτύπωσης, εκτύπωση Γεια σας, και στη συνέχεια, χρησιμοποιώντας ανάστροφη κάθετο ανοιχτό parens, και στη συνέχεια το όνομα μεταβλητής μου, στην περίπτωση αυτή σταθερή, κλείστε τις παρενθέσεις. Είμαι ουσιαστικά τότε βάζοντας το περιεχόμενα αυτής της μεταβλητής που ονομάζεται όνομα εντός της σειράς και, στη συνέχεια, εκτύπωση υπάρχει το αποτέλεσμα. Υπάρχει άλλη μια αλλαγή σε αυτό το αρχείο η οποία είναι ότι έχω, στην κορυφή, βάλει σε μια γραμμή δουλεία, η οποία ουσιαστικά καθορίζει μόνο ότι θέλω να χρησιμοποιήσω το Swift διερμηνέα, ο οποίος σημαίνει ότι δεν έχω πλέον να κατάρτιση αυτού του συγκεκριμένου προγράμματος. Μπορώ να τρέξει ακριβώς σαν τη δική της γραφή. Αλλά αυτό είναι, στην περίπτωση αυτή, πίσω οι σκηνές που καταρτίζονται και, στη συνέχεια, που τρέχει. Είναι απλά αόρατο σε εμάς. Εντάξει, ας προχωρήσουμε. Έτσι, υπάρχει ένα κομμάτι της πονηριάς ότι ακριβώς συνέβη πριν. Που σας έδειξα ότι μπορώ θα μπορούσε να ορίσει ένα σταθερό. Και θα μπορούσα να παρέχουν ορισμένα στοιχεία για να το κάνουμε. Αλλά στην περίπτωση αυτή, παρατηρούμε ότι δεν το έκανα στην πραγματικότητα να καθορίσετε τον τύπο των δεδομένων αυτο ειναι. Και αυτό γιατί η compiler, μπορεί Swift συναχθεί το είδος των δεδομένων που βασίζεται μόνο σχετικά με τα δεδομένα που έβαλα σε αυτό. Επειδή ξέρει ότι από την αξιολόγηση αυτή μεταβλητή ακριβώς εδώ, το δικαίωμα αυτό των δεδομένων Εδώ, θα ξέρει ότι είναι ένα string. Και έτσι αυτή η συνεχής όνομα είναι επομένως πρόκειται να είναι μια συμβολοσειρά, όπως καλά. Αλλά μπορούμε επίσης να είναι ρητή σχετικά με τον τύπο που είναι πρόκειται να χρησιμοποιήσει για σταθερές ή μεταβλητές χρησιμοποιώντας την ακόλουθη σύνταξη instead-- ας String όνομα του παχέος εντέρου ισοδυναμεί Dan, που στην προκειμένη περίπτωση σημαίνει ότι είμαστε πρόκειται να ορίσετε ένα σταθερό κάλεσε το όνομά του. Είναι πρόκειται να είναι τύπου String. Και η τιμή θα είναι ο Dan. Τώρα το άλλο τρόπο που μπορούμε να δημιουργήσουμε variables-- και αυτά είναι ευμετάβλητος μεταβλητές, οι οποίες σημαίνει ότι είμαστε, στην πραγματικότητα, πρόκειται να αλλάξουν το περιεχόμενό τους κάποια στιγμή στην διάρκεια του πλαισίου ότι η μεταβλητή defined-- μας χρησιμοποιούν τη λέξη-κλειδί var αντί ας. Αλλά και πάλι, από προεπιλογή, εκτός αν ξέρετε ότι θα πρέπει να χειριστούν αυτά τα δεδομένα, προσπαθήστε να χρησιμοποιήσετε αφήσει για βελτιώσεις στην απόδοση. Σε αυτήν την περίπτωση, μπορώ τότε προσδιορίζει το είδος των δεδομένων ότι περιμένουμε να είναι στο εσωτερικό του Αυτή η νέα μεταβλητή που ονομάζεται ετικέτα. Είναι πρόκειται να είναι ένα string. Και θα πάμε να ενώσετε στη συνέχεια, δύο χορδές μαζί, το string Γεια σας, και η σειρά που αντιπροσωπεύεται από το μεταβλητή, ή μάλλον το όνομα σταθεράς. Έτσι, αυτό είναι ωραίο, διότι αυτό Είναι κάπως σαν PHP στο ότι εμείς έχουν πολύ εύκολη συνένωση κορδόνι. Δεν έχουμε την αυτόματη χρησιμοποιήσετε οποιοδήποτε είδος της διαχείρισης μνήμης να αυξηθεί το μέγεθος και να κάνουμε κάθε είδους αστεία πράγματα εκεί. Αυτό λειτουργεί όπως θα αναμένουν. Εντάξει, οποιεσδήποτε ερωτήσεις σχετικά με αυτό; Τώρα ο άλλος λόγος για τον οποίο χρειαζόμαστε έχετε τη δυνατότητα να είναι σε θέση να προσδιορίσει τι είδος των μεταβλητών δεδομένων είναι γιατί μερικές φορές δεν το κάνουμε Θέλετε να προετοιμαστεί μεταβλητές με κάποια δεδομένα κατά τη σημείο ορισμού. Έτσι, σε αυτή την περίπτωση, ας πούμε ότι θέλω να ξεκινήσω την εισαγωγή ορισμένες ποιότητες σε ένα βιβλίο βαθμό. Καλά ξέρω ότι ένας από τους μεταβλητές που θέλω να πρόκειται να είναι ένα μεταβλητό βαθμό. Και γνωρίζουμε επίσης ότι εμείς θέλω να είναι ένας ακέραιος. Αλλά ίσως δεν το κάνουμε ακόμα έχουν αυτό το βαθμό διαθέσιμο. Σε Swift, θα πρέπει να καθορίσει τον τύπο των δεδομένων που σχετίζεται με ένα μεταβλητή ή σταθερή ας πριν μπορείτε πραγματικά χρησιμοποιήσετε αυτήν τη μεταβλητή. Επειδή είναι έντονα δακτυλογραφημένη, θα πρέπει να συνδέσει ένα είδος με αυτές τις μεταβλητές. Έτσι, σε αυτή την περίπτωση, αν δεν έχω σωστά αρχικοποιείται η πρώτη με κάποια αξία, τότε θα πρέπει να πείτε ό, τι Swift Περιμένω το είδος των δεδομένων να είναι. Και αυτό πρόκειται να παραμείνει το ίδιο είδος δεδομένων σε όλη την ιστορία του εν λόγω προγράμματος. Τώρα μπορείτε να μπείτε στον πειρασμό, το συντομότερο Έχω δημιουργήσει αυτή τη μεταβλητή Βαθμός και ένα που παρέχονται ακέραιος αριθμός 100, τώρα αν μου θέλουν να προσπαθήσουν να ενώσετε ένα string με αυτό το ακέραιο, θα μπορούσαν να μπουν στον πειρασμό να εξακολουθούν να χρησιμοποιούν ο εν λόγω φορέας κορδόνι συνένωσης όπως κάναμε μόλις πριν λίγες γραμμές. Αλλά δυστυχώς, Αυτή η πραγματικότητα δεν θα λειτουργήσει, επειδή είστε ουσιαστικά την εκτέλεση μια λειτουργία σε δύο διαφορετικούς τύπους. Τώρα αυτό είναι πολύ διαφορετικό από τα άλλα γλώσσες όπως η PHP που είναι πραγματικά loosey goosey με το είδος τους τύπους. Είναι ακριβώς όπως, ναι, ό, δεν με νοιάζει. Απλά να μου δώσει έναν τύπο, και ίσως θα κάνω το σωστό. Σε αυτή την περίπτωση, το Swift είναι εξαιρετικά αυστηρές για τους τύπους ότι έχουμε να κάνουμε με. Ο εν λόγω φορέας άθροισμα ή τελεστής συνένωσης έχει ουσιαστικά ένα ζευγάρι των διάφορες πιθανές εναλλακτικές λύσεις. Μπορείτε να κάνετε άθροισμα με ακέραιους αριθμούς, ή να σας μπορεί να κάνει εγχόρδων συνένωσης, και ίσως κάποια άλλα πράγματα επίσης. Αλλά αν ο εν λόγω φορέας δεν αναγνωρίζει ό, τι είναι σε κάθε πλευρά του, ή μάλλον το συνδυασμό αυτών δύο τύπων, δεν είναι αυτό που περιμένουμε είναι, τότε πρόκειται να προκαλέσει την αποτυχία. Έτσι, σε αυτή την περίπτωση, τι σημαίνει αυτό να έχουν μια σειρά συν έναν ακέραιο; Λοιπόν, στο πλαίσιο της αυτό, μάλλον θα θέλετε να κάνει μια πράξη συνένωσης κορδόνι. Αλλά φυσικά ο υπολογιστής δεν έχει αυτό το είδος του περιβάλλοντος. Και γι 'αυτό πρέπει να παρέχει ότι οι πρόσθετες πληροφορίες να το αφήσει να ξέρετε τι είναι ότι θέλουμε να κάνουμε. Έτσι, με άλλα λόγια, το γεγονός ότι Swift είναι έντονα δακτυλογραφημένη σημαίνει ότι πρέπει να κάνουμε λίγη πρόσθετη εργασία για να το πάρει για να λειτουργήσει η τον τρόπο που θα θέλατε. Αλλά, ως αποτέλεσμα, είναι ασφαλέστερο. Και αφού έχετε λάβει υπόψη αυτούς τους τύπους, τα πράγματα απλά ειλικρινά ξεκινήσει να λειτουργήσει αρκετά καλά. Έτσι, σε αυτή την περίπτωση, θα ήμασταν εκτελέσει αλληλουχία συμβολοσειρών με τη ρητή χύτευση ο ακέραιος σε μια σειρά τυλίγοντάς το σε αυτό το πρωτεύουσα λειτουργία S String, και στη συνέχεια, χρησιμοποιώντας τη συνένωση εγχόρδων χειριστή να τροποποιήσει μεταβλητή ετικέτας μας, και στη συνέχεια να εκτυπώσετε. Μέχρι εδώ καλά? Εντάξει, ας προχωρήσουμε. Τώρα υπάρχει μια ποικιλία από στοιχεία τύποι που μπορούμε να χρησιμοποιήσουμε σε Swift. Όπως έχετε συνηθίσει, μπορούμε να δημιουργήσουμε μια συστοιχία ευμετάβλητος. Και αυτό μπορεί μόνο συστοιχία περιέχουν ένα μόνο είδος. Έτσι, σε αυτή την περίπτωση, θα πάμε να δημιουργήσουμε ένα μεταβλητό συστοιχίες των ακέραιων αριθμών, η οποία θα καλέσει τους βαθμούς, και θα είμαστε σε θέση για να αποθηκεύσετε ότι σε αυτή την αγκύλη μορφή, όπως έχετε συνηθίσει σε σε μια ποικιλία από άλλες γλώσσες. Αλλά παρατηρώ ότι εδώ είμαστε ορισμό μερικά πράγματα. βαθμοί είναι ευμετάβλητος variable-- που δεν χρησιμοποιούν τη λέξη-κλειδί let. Έτσι αυτό σημαίνει ότι μπορούμε στη συνέχεια να τροποποιήσετε τα περιεχόμενα αυτής της συστοιχίας. Είναι τύπου Array Int, και μπορούμε να πούμε ότι με βάση αυτές τις αγκύλες εδώ. Τώρα, ένα από τα ωραία πράγματα γι 'αυτό είναι ότι εμείς να έχουν πρόσβαση σε πολλές Επιπλέον πληροφορίες σχετικά με τη σειρά απλά χρησιμοποιώντας μερικές απλές συμβολισμό με την τελεία. Έτσι, για παράδειγμα, grades.count παρέχει σε μας ο αριθμός των αντικειμένων που υπάρχουν σε ότι συστοιχία, η οποία θα μπορεί να έχει πρόσβαση αρκετά εύκολα χρησιμοποιώντας απλά ότι συμβολισμό με την τελεία. Αν θέλετε να προσθέσετε επιπλέον αντικείμενο σε αυτή την σειρά, δεν μπορείτε να κάνετε το στυλ PHP όπου μπορείτε απλά ορίζουν ρητά, σε μια δεδομένη δείκτη, κάποια αξία ότι θέλετε να εισαγάγετε. Αντ 'αυτού, χρησιμοποιήστε το προσάρτησης μέθοδος στον τύπο συστοιχίας να προσθέσετε αυτό το στοιχείο, 95, σε αυτή τη λίστα. Έτσι τώρα που ο πίνακας αυτός έχει την ακόλουθη contents-- 100, 0, 90, 85. Και τώρα έχουμε συνημμένων 95 με αυτό, καθώς και. Υπάρχουν και άλλοι τρόποι μπορούμε να προσαρτήσει τα πράγματα. Μπορείτε πραγματικά να χρησιμοποιήσετε ένα συντελεστή άθροισης, η οποία θα πρέπει να ερμηνευθεί ως μια συστοιχία λειτουργία προσάρτησης. Και τότε μπορείτε να προσθέσετε ένα άλλο σειρά, το περιεχόμενο των οποίων είναι 70 και 80, στην εν λόγω συστοιχία. Έτσι τώρα έχουμε το περιεχόμενο σε αυτή τη μεταβλητή grades-- 100, 0, 90, 85, 95, 70, και 80. Αυτό είναι απλά ένα ωραίο μικρό συντακτική ζάχαρη που Swift παρέχει για εμάς. Έτσι, αν θέλουμε να συνοψίσουμε η βαθμούς, είμαστε ίσως πρόκειται να θέλουν να επαναλάβει πάνω από κάθε στοιχείο σε αυτό το βρόχο. Και έχουμε, σε Swift, η έννοια ενός βρόχου for, όπως θα περίμενε κανείς. Αλλά ο τρόπος που υποδεικνύουν μια σειρά είναι ελαφρώς διαφορετική. Έτσι, στην περίπτωση αυτή, να Συνοψίζοντας τα πάντα, θα πρόκειται να δημιουργήσει ένα προσωρινό μεταβλητή που ονομάζεται άθροισμα προκειμένου για εμάς να διατηρηθεί αυτή η καταμέτρηση. Και να παρατηρήσετε για μας κατασκευή βρόχου εδώ. Για το δείκτη σε 0 ..