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. Biz bu yazımızda bu yapılardan ilki olan dizileri ele alacağız.
Array ve Dictionary arasındaki fark
Mutable Kavramı
Dizileri anlatmaya başlamadan önce, kısaca Mutability kavramından bahsedelim. Bu konu daha önce Objective C için anlattığım Mutability kavramı ile aynı şey aslında. Swift programlama dilinde ise bir diziyi veya dictionary’i oluşturup bir değişkene atarsak Mutable, bir sabite atarsak Immutable olur. Mutable olan bir nesnenin değerini daha sonradan istediğimiz gibi değiştirebiliriz ancak Immutable nesnelerde bu mümkün değil.
Eğer bir dizi veya dictionary’nin değerini değiştirmeyecek isek onu Immutabe tanımlamamız, uygulamamızın performans optimizasyonu için faydalı olur. Bu tip trickler uygulamaların daha hızlı compile edilmesini sağlar.
Diziler
Diziler aynı tipten oluşan verileri sıralı bir biçimde tutmak için kullanılır. Swift programlama dilindeki diziler ise, içerisinde tutacağı verilere göre değişiklik gösteriyor.
1 2 3 4 5 6 7 8 9 |
//Durum 1: var userList: [String] = ["ozdemirmuhammed", "yazarmursid"] //userList, 2 tane string tipinde ilk değer alıyor. //Durum 2: var userList = ["ozdemirmuhammed", "yazarmursid"] //Durum 2'de userList isimli array'i tanımlarken [String] ifadesini kullanmadık, ama swift type interface sayesinde diziye atadığımız değerlerin String olduğunu anlıyor. |
- Dizilerin İçindeki Elemanların Sayısını Öğrenme
1 2 3 4 |
var userList = ["ozdemirmuhammed", "yazarmursid"] println("userList dizisinin eleman sayısı : \(userList.count)") // Konsola "userList dizisinin eleman sayısı : 2” yazdıracaktır. |
- Dizilerin Dolu yada Boş olduğunu Öğrenme
1 2 3 4 5 6 7 8 9 |
var userList = ["ozdemirmuhammed", "yazarmursid"] if userList.isEmpty { println("userList dizisi boş.") } else { println("userList dizisi dolu.") } // Konsola "userList dizisi dolu." yazdıracaktır |
- Diziye Yeni Eleman Ekleme
Diziye eleman eklememek için, diziAdi.Append() yada diziAdi+= ifadelerini kullanıyoruz
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
var userList = ["ozdemirmuhammed", "yazarmursid"] //bu durumda userList dizisinin 2 adet elemanı var. userList.append("tutarmurat") //burada userList dizisine "tutarmurat" elemanını ekliyoruz. userList dizimizin bu durumdaki eleman sayısı 3 oldu userList += ["gunelilkay"] // userList dizisine += ifadesini kullanarak "gunelilkay" elemanını ekliyoruz. Bu durumda dizimizde 4 tane eleman oldu userList += ["altinevlekserhat", "calfatih", "unalgokhan"] // userList dizisine += ifadesini kullanarak birden çok eleman ekliyoruz. Son durumda dizimizde 7 tane string tipinde elemanımız oldu. |
- Dizinin Herhangi Bir İndexindeki Elemana Erişme
- Dizinin Herhangi Bir İndexine Eleman Ekleme
- Dizinin Herhangi Bir İndexindeki Elemanları Silme
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 26 |
var firstItem = userList[0] //userList dizimizdeki ilk elemanı firstItem değişkenine atıyoruz. userList[0] = "yazarmursid” //userList dizimizin ilk elemanini "yazarmursid" olarak atıyoruz. //////////// var newList = ["eleman1", "eleman2", "eleman 3","eleman 4", "eleman 5", "eleman 6", "eleman 7"]; //7 elemanı olan newList isminde bir dizi oluşturuyoruz. newList[4...6] = ["muhammed", "ozdemir"] println(newList) //konsola [eleman1, eleman2, eleman 3, eleman 4, muhammed, ozdemir] yazdırır, newList dizimizin eleman sayısı da 6 oldu. newList.insert("eleman0", atIndex: 0) //bir dizinin herhangi bir index'ine eleman ekleme -> 0. index'e "eleman0" ı ekledik //newList dizimizin eleman sayısı tekrar 7 oldu. newList.removeAtIndex(0) //dizinin ilk elemanını(index 0) siliyoruz, dizimiz tekrar 6 elemanlı oldu. newList.removeLast() //dizinin sol elemanını siliyoruz, dizimiz 5 elemanlı oldu. |
- Dizi İç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 |
var shoppingList = ["iki ekmek", "bir koli yumurta", "çilek", "tavuk", "soda"] for item in shoppingList { println(item) } // iki ekmek // bir koli yumurta // çilek // tavuk // soda for (index, value) in enumerate(shoppingList) { println("Item \(index + 1): (value)") } // Item 1: iki ekmek // Item 2: bir koli yumurta // Item 3: çilek // Item 4: tavuk // Item 5: soda |
- Diziler’de Sayısal İşlemler
1 2 3 4 5 6 7 8 |
var numbers = [Int]() println("numbers dizisinin tipi [Int] ve eleman sayısı : (numbers.count)") // prints "sumbers dizisinin tipi [Int] ve eleman sayısı : 0 .” numbers.append(81) // number dizisinde 1 tane Int tipinde eleman var numbers = [] // numbers dizisi şu an boş fakat tipi hala [Int]” |
- Bir Elemanı Dizi İçerisine Belli Bir Sayıda Eklemek
- İki Diziyi Birleştirmek
1 2 3 4 5 6 7 8 9 |
var threeDoubles = [Double](count: 3, repeatedValue: 1.0) // threeDoubles [Double] tipinde bir dizi, elemanları ise [1.0, 1.0, 1.0] var anotherThreeDoubles = [Double](count: 3, repeatedValue: 1.5) // anotherThreeDoubles de [Double] tipinde , elemanları [1.5, 1.5, 1.5] var sixDoubles = threeDoubles + anotherThreeDoubles // sixDoubles da [Double] tipinde , elemanları ise [1.0, 1.0, 1.0, 1.5, 1.5, 1.5] |
[…] Diziler […]
Merhaba,
” Dizilerin İçindeki Elemanların Sayısını Öğrenme ” başlığı altında verilen örneğin “println” kod satırında hata var.
” Dizi İçerisindeki Elemanları Döngü İçerisinde Döndürmek ” başlığı altında verilen örneklerin ikincisinde hata var.
Kontrol eder misiniz?
Hakan Merhaba,
Hatırlatman için çok teşekkür ediyorum, kontrol ediyorum.
Esenlikle..
Diziler’de Sayısal İşlemler altındaki someInts = [] da sorun var
Onur teşekkürler dikkatin için 🙂 Gerekli düzeltmeyi yaptım
Anladığım kadarıyla appent methodunu kullanırken diziye yanlızca 1 eleman ekliyebiliyoruz?
Dizinin sayısını çekme kodu içerisindede geçen Ters slaş işareti bir nevi string bir değişken içerisinde kod çağırmadan önce mi kullanılıyor?