Koleksiyonlar
Swift programlama dili iki farklı koleksiyon tipi olan diziler ve dictionary‘leri destekler. Diziler aynı tipten oluşan verileri sıralı bir biçimde tutmak için kullanılır. Dictionary olarak ifade ettiğimiz yapı ise sıralı olmayan fakat key-value konsepti ile saklanan verileri tutmak için kullanılır. Bu yazımızda dictionary yapısını inceleyeceğiz.
Dictionary
Dictionary, ayni tipde birden çok veriyi key-value şeklinde tutar. Her değere ait unique bir key bulunur. Dictionary yapısında dizilerde olduğu gibi bir sıralama bulunmaz.
Dictionary tanımlarken [key1 : value1, key2 : value2, key3 : value3, key4 : value4] yapısı kullanılır.
1 2 |
var people: [String: String] = ["teacher" : "Ahmet Can", "student" : "Mehmet Can", "director" : "Melek Can"] // burada içerisinde 3 tane key-value çifti olan bir dictionary tanımladık. |
- Dictionary İçerisindeki Elemanların Sayısına Erişme
1 2 3 4 |
var people: [String: String] = ["teacher" : "Ahmet Can", "student" : "Mehmet Can", "director" : "Melek Can"] println ("people dictionary'si içerisinde (people.count) eleman vardır.") //konsola "people dictionary'si içerisinde 3 eleman vardır" yazdıracaktır. |
- Dictionary’nin Boş Olup Olmadığını Öğrenme
1 2 3 4 5 6 7 8 9 |
var people: [String: String] = ["teacher" : "Ahmet Can", "student" : "Mehmet Can", "director" : "Melek Can"] if people.isEmpty { println("people dictionary'si boştur.") } else { println("people dictionary'si doludur.") } //konsola "people dictionary'si doludur." yazdıracaktır. |
- Dictionary’e Yeni Eleman Ekleme
1 2 3 4 5 6 7 8 |
var team: [String: String] = ["goalkeeper" : "Muslera", "defance" : "Ramos", "middfielder" : "Zidane"] //team dictionary'sinde 3 eleman var team["striker"] = "Ronaldo" //team dictionary'sinde 4 eleman oldu. team["striker"] = "Messi" //team dictionary'sinde hala 4 eleman var, fakat "striker" key'inin değeri değişti. |
- updateValue(forKey:) Metodu
Dictionary’deki güncellediğimiz verinin eski değerini alabiliriz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
var team: [String: String] = ["goalkeeper" : "Muslera", "defance" : "Ramos", "middfielder" : "Zidane"] let oldValueforDefance = “team.updateValue("Ferdinand", forKey: "defance") { println("defans'ın eski değeri (oldValue).") } // konsola "defans'ın eski değeri Ramos” yazdıracaktır. if let goalkeeperName = team["goalkeeper"] { println("kalecinin ismi : (goalkeeperName).") } else { println("kalecinin ismi dictinary içerisinde yok") } // konsola "kalecinin ismi Muslera" yazdıracaktır. |
- Dictionary İçerisindeki Elemanları Döngü İçerisinde Döndürmek
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
var team: [String: String] = ["goalkeeper" : "Muslera", "defance" : "Ramos", "middfielder" : "Zidane"] for (position, name) in team { println("(position): (name)") } // goalkeeper: Muslera // defance: Ramos // middfielder: Zidane for position in team.keys { println("position: (position)") } // position: goalkeeper // position: defance // position: middfielder for fName in team.values { println("name: (fName)") } // name: Muslera // name: Ramos // name: Zidane |
- Dictionary İçerisindeki Elemanları Diziye Atamak
1 2 3 4 5 6 7 |
var team: [String: String] = ["goalkeeper" : "Muslera", "defance" : "Ramos", "middfielder" : "Zidane"] let positions = [String](team.keys) // positions dizisindeki elemanlar ["goalkeeper", "defance", "middfielder"] let names = [String](team.values) // names dizisindeki elemanlar ["Muslera", "Ramos", "Zidane"] |
- Boş Dictionary Oluşturma
1 2 3 4 5 6 7 |
var nums = [Int: String]() // nums boş bir dictionary, key-value çiftinin tipi [Int: String] nums[16] = "sixteen" // nums 1 tane key-value çiftine sahip nums = [:] // nums şu anda tekrar boş bir dictionary oldu, key-value çiftinin tipi [Int: String] |
[…] Dictionaryler […]
Küçük bir yazım hatası var. Eleman sayısı çekme kodunda bulunan (people.count) kodu öncesinde ters slaş gelmesi gerekiyor.