Koleksiyonlar

Çoklu nesneleri bir arada tutan “array” ve “dictionary” kavramlarını ve nesneler ekleyip çıkararak koleksiyon yaratmayı öğreneceksiniz.

Mentorluk

Randevu OluşturKredi Al

Bugünkü dersimizde, Swift programlama dilinin temellerinden biri olan koleksiyonları, yani Array ve Dictionary konseptlerini öğreneceksiniz.

Array Nedir?

Array, bir koleksiyon tipidir ve kelime anlamıyla sıra veya dizi demektir. Array tipi, sıralı bir listeyi ifade eder. Bir Array’in içerisinde yer alan tüm elemanlar, aynı tipten olmak zorundadır.

Array Kodu Nasıl Yazılır?

Gelin birlikte Array kodunun Swift dilinde nasıl yazıldığına bakalım!

Yeni bir Array Oluşturma

Yeni boş bir Array oluştururken, Array’in içerisinde yer alacak olan elemanların tipini belirtmeniz gereklidir. Boş bir Array yaratmanın, üç farklı yolu vardır:

    
    var isimler: [String] = []
    var isimler: Array<String> = []
    var isimler: [String]()
    

Bu örneğimizde, gördüğümüz gibi isimler adında boş bir “String” Array’i oluşturduk.
Eğer içerisinde halihazırda değerler bulunan bir Array oluşturmak istiyorsanız, elemanların tipini belirtme zorunluluğu yoktur (çünkü bu zaten elemanların kendisinden anlaşılabilir):

    
     var isimler = ["Ayşe", "Mehmet", "Can"]
    

Bunun dışında, yeni Array oluşturmanın bir yolu daha vardır: bu da tekrarlayıcıdır. Diyelim ki, içerisinde 100 tane 1 bulunan yeni bir Array oluşturmak istiyorsunuz. Eğer bunu elle yapmaya çalışırsanız, büyük ihtimalle hata yaparsınız! Bunun yerine Swift dilinin gücünü kullanabilirsiniz.

    
    var ones = [Int](repeating: 1, count: 100)
    

Array Metodları

Elimizde bulunan bir Array’e uygulayabileceğimiz birtakım metodlar vardır. Gelin bunlar neymiş öğrenelim!

contains

Bazen, bir değerin bir Array’in içerisinde bulunup bulunmadığını kontrol etmek isteyebiliriz. Bunun için Swift dilinincontains metodunu kullanabiliriz. Bu metod, değer verilen Array’in içerisinde yer alıyorsa true, bulunmuyorsa ise false döndürür.

    
    if isimler.contains("Mehmet") {
    print("Mehmet listede var.")
    }
    

Bu örneğimizde, Mehmet isimler listesinde yer aldığı için “if” bloğunun içinde yer alan “print” komutu çalışacaktır.

count

Bir Array’in içerisinde yer alan eleman sayısını öğrenmek için, count metodunu kullanabilirsiniz.

    
    let count = isimler.count // 3
    

isEmpty

Bir Array’in boş olup olmadığını öğrenmek için, isEmpty metodunu kullanabilirsiniz. Bu metod, eğer Array’in içerisinde 0 eleman varsa true , diğer durumlarda ise false döndürür.

    
    if isimler.isEmpty {
    print("İsim listesi boş")
    }
    

Bu örneğimizde, isimler listesinin içerisinde 3 eleman bulunduğundan, “if” bloğunun içerisinde “print” komutu çalışmayacaktır.

Array Değerlerine Erişme

Bir Array’in içerisinde yer alan elemanlara erişmek için, köşeli parantezler ve elemanların pozisyonları kullanılır. İlk elemana 0 ile erişilir, ikinci elemana 1 ile, ve böyle devam eder.

    
    print(isimler[0]) // Ayşe
    

Bu kalıbı, aynı zamanda Array’in elemanları değiştirmek için de kullanabiliriz.

    
    isimler[0] = "Zeynep"
    // isimler = ["Zeynep", "Mehmet", "Can"]
    

Array’e Değer Ekleme/Çıkartma

Tabii ki Array’lere istediğimiz değerler ekleyip çıkartabiliriz. Bir Array’e yeni bir eleman eklemenin en kolay yolu, append metodunu kullanmaktır. Bu metod, yeni elemanı Array’in sonuna ekler.

    
    isimler.append("Erkan")
    // isimler = ["Zeynep", "Mehmet", "Can", "Erkan"]
    

Bir Array’e aynı anda birden fazla eleman eklemek için, “+=” operatörünü kullanabiliriz.

    
    isimler += ["Selin", "Elif"]
    // isimler = ["Zeynep", "Mehmet", "Can", "Erkan", "Selin", "Elif"]
    

Son olarak, eğer yeni elemanları Array’in sonuna değil de, spesifik bir pozisyona (örneğin Array’in en başına) eklemek istiyorsak, insert metodunu kullanabiliriz.

    
    isimler.insert("Ali", at: 0)
    // isimler = ["Ali","Zeynep","Mehmet","Can","Erkan","Selin","Elif"]
    

Benzer şekilde, Array’den bir elemanı çıkartmak için de birden fazla metod vardır. Bunların en basiti, parametre olarak bir pozisyon alan, bu pozisyondaki elemanı çıkartan ve döndüren remove metodudur.

    
    let ali = isimler.remove(at: 0)
    // isimler = ["Zeynep","Mehmet","Can","Erkan","Selin","Elif"]
    

Bunun dışında, Array’in son elemanını çıkartmak ve döndürmek için removeLast metodunu kullanabiliriz.

    
    let elif = isimler.removeLast()
    // isimler = ["Zeynep","Mehmet","Can","Erkan","Selin"]
    

Son olarak, eğer bir Array’in tüm elemanlarını çıkartmak istiyorsak, removeAll metodunu kullanabiliriz.

    
    isimler.removeAll()
    // isimler = []
    

Dictionary Nedir?

Dictionary, bir koleksiyon tipidir ve kelime anlamıyla sözlük demektir. Nasıl bir sözlükte kelimeler ve bu kelimelerin anlamı listeleniyorsa, bir Swift Dictionary’nin içerisinde anahtarlar (keys) ve bu anahtarlarla ilişkilendirilen değerler (values) vardır. Tıpkı normal bir sözlükteki gibi, anahtarların her biri özgün olmalıdır (ne de olsa sözlükte aynı kelime birden fazla geçmez!). Ayrıca, nasıl sözlükteki kelimeler kolay bulunması için alfabetik sıraya göre organize ediliyorsa, Swift dili de Dictionary tipini anahtarların değerlerinin hızlı bir şekilde bulunması için optimize etmiştir.

Dictionary Kodu Nasıl Yazılır?

Gelin birlikte Dictionary kodunun Swift dilinde nasıl yazıldığına bakalım!

Yeni bir Dictionary Yaratma

Yeni bir Dictionary oluşturmanın, birkaç farklı yolu vardır. İçerisinde halihazırda anahtarlar ve değerler bulunan bir Dictionary oluşturmak için, aşağıdaki kalıp kullanılır:

    
    var plakalar = ["Adana": 1, "Balıkesir": 10, "İstanbul": 34, "Samsun": 55]
    

Tabii ki, boş bir Dictionary de oluşturabilirsiniz. Bunu yapmanın üç farklı yolur vardır (ancak hepsi temelde aynı anlama gelmektedir):

    
    var plakalar = [String: Int]()
    var plakalar = Dictionary<String, Int>()
    var plakalar: [String: Int] = [:]
    

Boş bir Dictionary oluştururken, anahtar ve değerlerin tipini belirtmemiz gereklidir. Yukarıdaki plaka örneğinde, anahtarlar “String”, değerler ise “Int” tipindendir.

Dictionary Değerlerine Erişme

Bir Dictionary’nin içerisinde yer alan değerlere ulaşmak için, köşeli parantezler kullanılır. Eğer verilen anahtar Dictionary’nin içerisinde yer almıyorsa, nil değeri döndürülür.

    
    var istanbul = plakalar["İstanbul"] // 34
    var amasya = plakalar["Amasya"] // nil
    

Bu değerlere erişmeye çalışırken, “if-let” kalıbını kullanmak en doğrusudur. Böylece if bloğunun içerisinde yer alan komutlar, sadece aranılan anahtar gerçekten Dictionary’nin içerisinde yer alıyorsa çalıştırılırlar:

    
    if let istanbul = plakalar["İstanbul"] {
    print(istanbul) // 34
    }
    

Bunun dışında, keys ve values özelliklerini kullanarak, bir Dictionary’nin anahtar ve değerlerine ayrı ayrı, liste olarak erişebiliriz.

    
    let sehirler = Array(plakalar.keys) // ["Adana","Balıkesir","İstanbul","Samsun"]
    let plakalar = Array(plakalar.values) // [1,10,34,55]
    

Dictionary’e Değer Ekleme/Çıkartma

Elbette ki Dictionary’lere istediğimiz gibi yeni anahtar-değer çiftleri ekleyebilir, zaten olan anahtarların değerini değiştirebilir veya bir çifti tamamen çıkartabiliriz.

    
    plakalar["Ankara"] = 6
    

Yukarıdaki satır ile, “Ankara” anahtarını plakalar Dictionary’mize ekleyip değerini 6 olarak belirleyebiliriz. Bu anahtar henüz Dictionary’de yer almadığından, yeni bir çift eklenecektir. Eğer anahtar zaten Dictionary’nin içinde yer alsaydı, yeni bir çift eklenmek yerine “Ankara” anahtarının değeri 6 olacak şekilde değiştirilirdi.
Eğer bir anahtarın değerini değiştirirken, eski değerine de erişmek istiyorsanız, updateValue metodunu kullanabilirsiniz. Bu metod, anahtarın değerini verilen değere değiştirir ve değiştirilmeden önceki eski değeri döndürür.

    
    plakalar.updateValue(6, forKey: "Anakara")
    

Bir Dictionary’den bir anahtar-değer çiftini çıkarmak çok kolaydır: Anahtarın değerini nil olarak belirlemeniz yeterlidir!

    
    plakalar["Ankara"] = nil
    

Eğer anahtar-değer çiftini çıkarmadan önceki son değere erişmek istiyorsanız, updateValue metoduna benzeyen removeValue metodunu kullanabilirsiniz. Bu metod, anahtar-değer çiftini Dictionary’den çıkarır ve çıkarmadan önceki değeri döndürür.

    
    plakalar.removeValue(forKey: "Ankara")
    

Sıradaki

Döngüler

Tekrar eden görevleri çalıştıran ve bir koleksiyondaki her nesneyle çalışmayı sağlayan “for” döngülerini öğreneceksiniz.

Videolar

Swift Temellerine Giriş
Swift Temellerine Giriş
Teknolojinin Dili Kodlama
Teknolojinin Dili Kodlama
Playground Temelleri
Playground Temelleri
Veri Tipleri & Sabitler ve Değişkenler
Veri Tipleri & Sabitler ve Değişkenler
Operatörler
Operatörler
Kontrol Akışı
Kontrol Akışı
Fonksiyonlar
Fonksiyonlar
String'ler
String'ler
Objeler, Metotlar ve Özellikler
Objeler, Metotlar ve Özellikler
Xcode ile Tanışın
Xcode ile Tanışın
Struct
Struct
Class
Class
Koleksiyonlar
Koleksiyonlar
Döngüler
Döngüler
Xcode
Xcode
“Build”, “Run” ve “Debug”
“Build”, “Run” ve “Debug”
Arayüz Elemanlarını Yakından Tanıyın
Arayüz Elemanlarını Yakından Tanıyın
Dokümantasyon
Dokümantasyon
“Interface Builder” Temelleri
“Interface Builder” Temelleri
"UIKit" ile Kullanıcı Arayüzüne Giriş
"UIKit" ile Kullanıcı Arayüzüne Giriş
İlk Uygulama
İlk Uygulama
Kontrol Elemanları
Kontrol Elemanları
Autolayout & Stackview
Autolayout & Stackview
Optionals
Optionals
Tip Dönüşümleri
Tip Dönüşümleri
Guard
Guard
Uygulama Hayat Döngüsü ve Veri Modelleme
Uygulama Hayat Döngüsü ve Veri Modelleme
Scope Sabit & Değişken
Scope Sabit & Değişken
Enumerations
Enumerations
Protokoller
Protokoller
Segue ve Navigation Controller
Segue ve Navigation Controller
TabbarController
TabbarController
View Controller Hayat Döngüsü
View Controller Hayat Döngüsü
Basit Akışlar Oluşturmak
Basit Akışlar Oluşturmak
Uygulama Anatomisi ve Hayat Döngüsü
Uygulama Anatomisi ve Hayat Döngüsü
Model View Controller
Model View Controller
Uygulamanızda Veri Kaydedin
Uygulamanızda Veri Kaydedin
ScrollView
ScrollView
TableView Giriş
TableView Giriş
TableView İleri
TableView İleri
Verileri Kaydetmek
Verileri Kaydetmek
System View Controllers
System View Controllers
Uygulama Geliştirin
Uygulama Geliştirin
Karmaşık Veri Girişi Ekranları Oluşturmak
Karmaşık Veri Girişi Ekranları Oluşturmak
Closures
Closures
Extensions
Extensions
Pratik Animasyonlar
Pratik Animasyonlar
İnternet ile İletişime Geçin
İnternet ile İletişime Geçin
İnternet ile Çalışmak
İnternet ile Çalışmak
JSON
JSON
Concurrency
Concurrency