Το Swift είναι μια ισχυρή και ασφαλής γλώσσα προγραμματισμού που αναπτύχθηκε για το οικοσύστημα της Apple. Χάρη στην ασφάλεια τύπων (type safety) και τη σύγχρονη σύνταξη, είναι δυνατό να εντοπίσετε σφάλματα κατά το χρόνο μεταγλώττισης. Σε αυτό το άρθρο, θα εξετάσουμε λεπτομερώς τους βασικούς τύπους δεδομένων του Swift (Int, String, Bool κ.λπ.), τους τύπους συλλογών (Array, Dictionary, Set) και μία από τις πιο σημαντικές λειτουργίες του Swift, τα Optionals, με λεπτομερή παραδείγματα.
Βασικοί Τύποι Δεδομένων
Στο Swift, οι μεταβλητές ορίζονται με var και οι σταθερές με let. Δεν είναι υποχρεωτικό να καθορίσετε τον τύπο· ο μεταγλωττιστής κάνει εξαγωγή τύπου (type inference).
Συνηθισμένοι βασικοί τύποι:
Τύποι Συλλογών
Optionals: Τιμές που Μπορούν να Είναι Nil
Στο Swift, μια μεταβλητή ή σταθερά μπορεί να είναι nil (κενή). Αυτό δηλώνεται με optional. Έτσι, αποτρέπονται σφάλματα "nil reference" κατά το χρόνο μεταγλώττισης.
Ορισμός:
Χρήση Optional
Σύγκριση: Optional vs Non-Optional
Καλύτερες Πρακτικές
Συμπέρασμα
Οι βασικοί τύποι δεδομένων του Swift και ειδικά ο μηχανισμός των optional κάνουν τον κώδικά σας πιο ασφαλή και αναγνώσιμο. Η σωστή χρήση των optional μειώνει σημαντικά τα runtime crashes. Αποκτήστε τη συνήθεια του optional binding από την αρχή· με τον καιρό θα νιώσετε πλήρως τα πλεονεκτήματα ασφαλείας του Swift.
Πρακτική άσκηση: Δημιουργήστε μια απλή δομή "Πληροφορίες Χρήστη" και δοκιμάστε με optional πεδία!
Περιμένω τις ερωτήσεις σας στα σχόλια.
Βασικοί Τύποι Δεδομένων
Στο Swift, οι μεταβλητές ορίζονται με var και οι σταθερές με let. Δεν είναι υποχρεωτικό να καθορίσετε τον τύπο· ο μεταγλωττιστής κάνει εξαγωγή τύπου (type inference).
Κώδικας [Επιλογή]
var yas = 30 // Εξάγεται ως τύπος Int
let isim: String = "Ahmet" // Ρητή δήλωση τύπου
var boy: Double = 1.75
var evlimi: Bool = falseΣυνηθισμένοι βασικοί τύποι:
- Int: Ακέραιος αριθμός (64-bit)
- Double: Δεκαδικός αριθμός (15 ψηφία ακρίβειας)
- Float: Δεκαδικός αριθμός (λιγότερη ακρίβεια)
- Bool: true/false
- String: Κείμενο
- Character: Ένας χαρακτήρας
Τύποι Συλλογών
- Array (Ταξινομημένα, ίδιου τύπου στοιχεία)
Κώδικας [Επιλογή]
var meyveler: [String] = ["elma", "armut", "muz"]
meyveler.append("kiraz")
print(meyveler[1]) // armut
print(meyveler.count) // 4- Dictionary (Ζεύγη κλειδιού-τιμής)
Κώδικας [Επιλογή]
var notlar: [String: Int] = ["Ahmet": 90, "Ayşe": 85]
notlar["Mehmet"] = 95
print(notlar["Ahmet"] ?? 0) // 90- Set (Μη επαναλαμβανόμενα, μη ταξινομημένα στοιχεία)
Κώδικας [Επιλογή]
var renkler: Set<String> = ["kırmızı", "yeşil", "mavi"]
renkler.insert("yeşil") // Δεν προστίθεται, υπάρχει ήδη
print(renkler.contains("mavi")) // trueOptionals: Τιμές που Μπορούν να Είναι Nil
Στο Swift, μια μεταβλητή ή σταθερά μπορεί να είναι nil (κενή). Αυτό δηλώνεται με optional. Έτσι, αποτρέπονται σφάλματα "nil reference" κατά το χρόνο μεταγλώττισης.
Ορισμός:
Κώδικας [Επιλογή]
var yasString: String? = "25" // Optional String
var email: String? = nil // Μπορεί να είναι nilΧρήση Optional
- Forced Unwrapping (Υποχρεωτική αποσυσκευασία – χρησιμοποιήστε με προσοχή!)
Κώδικας [Επιλογή]
let yas = Int("25")! // Μετατρέπει το "25" σε Int, αν αποτύχει προκαλεί crash- Optional Binding (Ασφαλής μέθοδος – προτεινόμενη)
Κώδικας [Επιλογή]
if let yas = Int("25") {
print("Yaş: \(yas)") // Χρησιμοποιείται με ασφάλεια
} else {
print("Dönüşüm başarısız")
}- Nil Coalescing Operator (?? – προεπιλεγμένη τιμή)
Κώδικας [Επιλογή]
let isim = optionalIsim ?? "Misafir"- Guard Statement (Για πρόωρη έξοδο)
Κώδικας [Επιλογή]
func kontrolEt(yasString: String?) {
guard let yas = Int(yasString ?? "") else {
print("Geçersiz yaş")
return
}
print("Yaşınız: \(yas)")
}- Optional Chaining
Κώδικας [Επιλογή]
struct Kisi {
var adres: Adres?
}
struct Adres {
var sehir: String
}
let kisi = Kisi()
let sehir = kisi.adres?.sehir ?? "Bilinmiyor" // Αν nil, "Bilinmiyor"Σύγκριση: Optional vs Non-Optional
- Χαρακτηριστικό: Μπορεί να είναι nil; Non-Optional: Όχι; Optional (?): Ναι
- Ασφάλεια: Non-Optional: Άμεση χρήση; Optional (?): Απαιτείται ασφαλής αποσυσκευασία
- Υποχρεωτικότητα χρήσης: Non-Optional: Πάντα υπάρχει τιμή; Optional (?): Απαιτείται έλεγχος nil
- Παράδειγμα: Non-Optional: var isim: String; Optional (?): var isim: String?
Καλύτερες Πρακτικές
- Χρησιμοποιήστε όσο το δυνατόν περισσότερο let και non-optional.
- Αποσυσκευάστε τα optional με if let, guard let ή nil coalescing.
- Χρησιμοποιήστε προσεκτικά optional τιμές επιστροφής σε συναρτήσεις.
- Χρησιμοποιήστε Implicitly Unwrapped Optional (ορίζεται με !) μόνο όταν είστε απόλυτα σίγουροι.
Συμπέρασμα
Οι βασικοί τύποι δεδομένων του Swift και ειδικά ο μηχανισμός των optional κάνουν τον κώδικά σας πιο ασφαλή και αναγνώσιμο. Η σωστή χρήση των optional μειώνει σημαντικά τα runtime crashes. Αποκτήστε τη συνήθεια του optional binding από την αρχή· με τον καιρό θα νιώσετε πλήρως τα πλεονεκτήματα ασφαλείας του Swift.
Πρακτική άσκηση: Δημιουργήστε μια απλή δομή "Πληροφορίες Χρήστη" και δοκιμάστε με optional πεδία!
Περιμένω τις ερωτήσεις σας στα σχόλια.

