Σε αυτό το σεμινάριο, θα μάθετε για διαφορετικούς τύπους δεδομένων που υποστηρίζει η γλώσσα προγραμματισμού Swift και τη χρησιμοποιείτε κατά τη δημιουργία μιας μεταβλητής ή μιας σταθεράς.
Ένας τύπος δεδομένων είναι ο τύπος δεδομένων (τιμή) που μπορεί να αποθηκεύσει μια μεταβλητή ή μια σταθερά. Για παράδειγμα, στο άρθρο Swift Variables and Constants, δημιουργήσατε μια μεταβλητή και μια σταθερά για την αποθήκευση δεδομένων συμβολοσειράς στη μνήμη.
Αυτά τα δεδομένα μπορεί να είναι κείμενο / συμβολοσειρά ("Γεια") ή αριθμός (12.45) ή απλά bits (0 & 1). Ο ορισμός του τύπου δεδομένων διασφαλίζει ότι αποθηκεύεται μόνο ο καθορισμένος τύπος δεδομένων.
Ας δούμε ένα σενάριο:
Ας υποθέσουμε ότι θέλετε να δημιουργήσετε ένα παιχνίδι. Επειδή, τα περισσότερα παιχνίδια εμφανίζουν υψηλή βαθμολογία και το όνομα του παίκτη μετά την ολοκλήρωση του παιχνιδιού, πρέπει να αποθηκεύσετε αυτά τα δύο δεδομένα για το παιχνίδι σας.
Το υψηλό σκορ είναι ένας αριθμός (π.χ. 59) και το όνομα του παίκτη είναι μια συμβολοσειρά (π.χ. Jack). Μπορείτε να δημιουργήσετε δύο μεταβλητές ή σταθερές για την αποθήκευση των δεδομένων.
Στο Swift, αυτό μπορεί να γίνει δηλώνοντας μεταβλητές και τον τύπο δεδομένων ως:
var highScore: Int = 59 var player Όνομα: String = "Jack"
Εδώ, δηλώσαμε τη μεταβλητή τύπου HighScore Int
που αποθηκεύει την τιμή 59. Και, η μεταβλητή playerName του τύπου String
που αποθηκεύει την τιμή Jack.
Ωστόσο, εάν κάνετε κάτι τέτοιο:
var highScore: Int = "Τζακ"
Θα λάβετε ένα σφάλμα χρόνου μεταγλώττισης που δηλώνει ότι δεν μπορεί να μετατρέψει την τιμή του τύπου «String» σε καθορισμένο τύπο «Int» .
Είναι επειδή δηλώσατε την υψηλή βαθμολογία για να αποθηκεύσετε ακέραια τιμή, αλλά τοποθετήσατε συμβολοσειρά σε αυτήν. Αυτό το σφάλμα διασφαλίζει ότι η υψηλή βαθμολογία μπορεί να αποθηκεύσει μόνο έναν αριθμό και όχι το όνομα του παίκτη.
Μέγεθος ενός τύπου δεδομένων
Ένα άλλο σημαντικό μέρος ενός τύπου δεδομένων είναι το μέγεθός του. Αυτό καθορίζει το μέγεθος των δεδομένων που μπορούν να αποθηκευτούν σε μια δεδομένη μεταβλητή ή σταθερά.
Το μέγεθος ενός τύπου μετράται σε bit και μπορεί να αποθηκεύσει τιμές έως 2 bit . Εάν δεν γνωρίζετε για το Bit, σκεφτείτε το ως τιμή που είναι 0 ή 1.
Έτσι, για μέγεθος τύπου = 1 bit, μπορεί να αποθηκεύσει μόνο έως, 2 1 = 2, δύο τιμές: είτε 0 είτε 1. Έτσι, ένα σύστημα 1 bit για ένα πρόγραμμα γραμμάτων μπορεί να ερμηνεύσει 0 ως a / 0 και 1 ως b / 1.0.
0 -> a ή 0 1 -> b ή 1
Ομοίως, ένα σύστημα δύο bit μπορεί να αποθηκεύσει έως 2 2 = 4 τιμές: (00,01,10,11) και κάθε συνδυασμός μπορεί να αναπαρασταθεί ως:
00 -> a ή 0 01 -> b ή 1 11 -> c ή 2 10 -> d ή 3
Για ένα σύστημα bit, μπορεί να αποθηκεύσει έως και 2 n τιμές σε αυτό.
Τύποι δεδομένων Swift
Οι πιο συνηθισμένοι τύποι δεδομένων που χρησιμοποιούνται στο swift παρατίθενται παρακάτω:
Μπολ
- Μεταβλητή / Συνεχής δηλωθεί τύπου Bool μπορεί να αποθηκεύσει μόνο δύο τιμές, είτε
true
ήfalse
. - Προεπιλεγμένη τιμή : false
- Χρησιμοποιείται συχνά όταν εργάζεστε με
if-else
δήλωση. Γρήγορο αν αλλιώς το άρθρο καλύπτει λεπτομερώς σχετικά
Παράδειγμα 1: Boolean τύπος δεδομένων
let result:Bool = true print(result)
Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:
αληθής
Ακέραιος αριθμός
- Η μεταβλητή / σταθερή δηλωμένη ακέραιου τύπου μπορεί να αποθηκεύσει ακέραιους αριθμούς τόσο θετικούς όσο και αρνητικούς, συμπεριλαμβανομένου του μηδέν χωρίς κλασματικά στοιχεία.
- Προεπιλεγμένη τιμή : 0
- Μέγεθος : 32/64 bit εξαρτάται από τον τύπο της πλατφόρμας.
- Εύρος : -2.147.483.648 έως 2.147.483.647 (πλατφόρμα 32 bit)
-9223372036854775808 έως 9223372036854775807 (πλατφόρμα 64 bit - Υπάρχουν πολλές παραλλαγές της Ακέραιος type.eg
UInt
,Int8
,Int16
κλπ Το πιο συνηθισμένο που χρησιμοποιείτε είναιInt
. - Αν έχετε την απαίτηση να καθορίσετε το μέγεθος / τύπο των ακέραια μεταβλητή / σταθερό μπορεί να κρατήσει, μπορείτε να αποθηκεύσετε πιο συγκεκριμένα με τη χρήση
UInt
,Int8
,Int16
κ.λπ., τα οποία πρόκειται να διερευνήσει παρακάτω.
Παράδειγμα 2: Ακέραιος τύπος δεδομένων
var highScore:Int = 100 print(highScore) highScore = -100 print(highScore)
Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:
100 -100
Στο παραπάνω παράδειγμα δηλώσαμε μια μεταβλητή υψηλή βαθμολογία τύπου Int
. Κατ 'αρχάς, το αντιστοιχίσαμε με τιμή 100, ώστε οι print(highScore)
έξοδοι 100 στην οθόνη.
Αργότερα, αλλάξαμε την τιμή σε -100 χρησιμοποιώντας τον χειριστή ανάθεσης highScore = -100
έτσι, οι print(highScore)
έξοδοι -100 στην οθόνη.
Ας εξερευνήσουμε μερικές παραλλαγές Int
τύπου στο Swift.
Int8
- Παραλλαγή ακέραιου τύπου που μπορεί να αποθηκεύσει τόσο θετικούς όσο και αρνητικούς μικρούς αριθμούς.
- Προεπιλεγμένη τιμή : 0
- Μέγεθος : 8 bit
- Εύρος : -128 έως 127
Ένας Int8
ακέραιος μπορεί να αποθηκεύσει συνολικά 2 8 = (256) τιμές σε αυτό. δηλαδή μπορεί να αποθηκεύσει αριθμούς από 0 έως 255 σωστά;
Yes, you are correct. But since, Int8
includes both positive and negative numbers we can store numbers from -128 to 127 including 0 which totals to 256 values or numbers.
var highScore:Int8 = -128//ok highScore = 127 //ok highScore = 128 // error here highScore = -129 //error here
You can also find out the highest and lowest value a type can store using .min
and .max
built in Swift functions.
Example 3: Max and Min Int8 data type
print(Int8.min) print(Int8.max)
When you run the program, the output will be:
-128 127
UInt
- Variant of Integer type called UInt (Unsigned Integer) which can only store unsigned numbers (positive or zero).
- Default Value: 0
- Size: 32/64 bit depends on the platform type.
- Range: 0 to 4294967295 (32 bit platform)
0 to 18446744073709551615 (64 bit platform)
Example 4: UInt data type
var highScore:UInt = 100 highScore = -100//compile time error when trying to
The above code will give you a compile time error because a Unsigned Integer can only store either 0 or a positive value. Trying to store a negative value in an Unsigned Integer will give you an error.
Float
- Variables or Constants declared of float type can store number with decimal or fraction points.
- Default Value: 0.0
- Size: 32 bit floating point number.
- Range: 1.2*10-38 to 3.4 * 1038 (~6 digits)
Example 5: Float data type
let highScore:Float = 100.232 print(highScore)
When you run the program, the output will be:
100.232
Double
- Variables / Constants declared of Double type also stores number with decimal or fraction points as Float but larger decimal points than Float supports.
- Default value : 0.0
- Size: 64-bit floating point number. (Therefore, a variable of type Double can store number with decimal or fraction points larger than Float supports)
- Range: 2.3*10-308 to 1.7*10308 (~15 digits)
Example 6: Double data type
let highScore:Double = 100.232321212121 print(highScore)
When you run the program, the output will be:
100.232321212121
Character
- Variables/Constants declared of Character type can store a single-character string literal.
- You can include emoji or languages other than english as an character in Swift using escape sequence u(n) (unicode code point ,n is in hexadecimal).
Example 7: Character data type
let playerName:Character = "J" let playerNameWithUnicode:Character = "u(134)" print(playerName) print(playerNameWithUnicode)
When you run the program, the output will be:
J Ĵ
String
- Variables or Constants declared of String type can store collection of characters.
- Default Value: "" (Empty String)
- It is Value type. See Swift value and Reference Type .
- You can use for-in loop to iterate over a string. See Swift for-in loop.
- Swift also supports a few special escape sequences to use them in string. For example,