Array
Array yani diziler içerisinde aynı veya farklı türlerde verileri depolaya bilen yapılardır. Aşağıda bazı dizi tanımlama tiplerini görebiliriz. Örneklerde olduğu gibi dizi tanımlarken köşeli parantezler içerisinde elemanlarımızı yazabiliriz. Boş bir dizi oluşturmak istiyorsak dizi tipini belirtmemiz gerekmektedir.
var data : [String] = [] var days = [1, 4, 2, 6] var numbers : [Int] = [1, 1, 1, 1] var names : Array<String> = ["bahri", "ali", "cevdet"] var anyArray : [Any] = [0, "bahri", false]
Otomatik değer ataması yaparak bir dizi oluşturmak için aşağıdaki yapıyı deneyebilirsiniz.
var digitCounts = Array(repeating: 0, count: 10) //[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
Dizilerin Bazı Propertyleri
var numbers : [Int] = [13, 1, 3, 1] numbers.isEmpty // true|false numbers.count // dizi eleman sayısı numbers.first //ilk eleman numbers.last //son eleman numbers.append(4) //bir eleman ekleme numbers.append(contentsOf: [1, 4]) //toplu eleman ekleme numbers.insert(4, at: 3) //belirli bir indexe eleman ekleme numbers.remove(at: 3) //index numarasını kullanarak eleman silme numbers.removeLast() //son elemanı silme numbers.removeFirst() //ilk elemanı silme numbers.firstIndex(of: 5) //bir elemanın dizi içerisindeki index numarasını alma
Diziler içerisindeki tüm elemanları listelemek için for loop kullanabiliriz.
for number in numbers { print(number) }
Dictionary
Dictionary içerisine key ve value tanımlayabildiğimiz birden fazla boyutlanabilen collection type’lerinden bir tanesidir. Aşağıda bazı dictionary tanımlama tiplerini görebiliriz. Dizilerde olduğu gibi boş bir dictionary oluşturmak için veri tiplerini belirtmemiz gerekmektedir. Dictionary’de key value mantığı vardır. Value’ler istediğimiz veri tipinde olabilirken key’ler any tipinde olamazlar. Any yerine swift içerisinde AnyHashable denilen bir yapı ile kullanılabilirler.
var user = [ "A": "Bahri", "C": "Cevdet", "H": "Halil" ] var data : [Int:String] = [ 30: "30 karakter", 40: "40 karakter", 50: "50 karakter" ] var emptyDict: [String: String] = [:] var anyEmptyDict: [Int: Any] = [:]
Dictionary içerisindeki tüm verileri listelemek için for loop kullanılabilir.
var user = [ "A": "Bahri", "C": "Cevdet", "H": "Halil" ] //Tüm elemanları listelemek for (key, value) in user { print("Key: \(key) Value: \(value)") }
Dictionary içerisinde bulunan herhangi veriyi almak için köşeli parantezler içinde almak istediğimiz verinin anahtar kelimesini yazmalıyız.
var user = [ "A": "Bahri", "C": "Cevdet", "H": "Halil" ] print(user["A"])
Yukarıdaki kodu çalıştırdığımızda uygulamamız bize Optional(“Bahri”) şeklinde çıktımızı verecektir. Tabii ki bu durumda bu veriyi optional yapıdan kurtarmak için çeşitli yöntemler mevcut. Bunların bir kaç tanesini örnek olarak vereceğim. Fakat optional hakkında daha detaylı bilgiye bir önceki yazımda ulaşabilirsiniz.
//1. Yöntem print(user["A"]!) //Bu durumda optional halden kurtarabiliriz fakat eğer o değer yoksa uygulamamızın çökmesine neden olacaktır. //2. yöntem if let name = user["A"] { print(name) }
Set
Set içerisine aynı tür elemanlar barındırabilen collection type’lerimizden birisidir. Set dizilerden ayıran 2 temel özellik vardır. Bunlardan birincisi Set’ler içerisinde aynı değerde eleman olamaz. Yani Int bir Set içerisinde 5 elemanı varken ikinci bir 5 elemanı barındıramayız. Bunun yanı sıra Set’ler içerisindeki veriler sıralı değildir. Bu yüzden dizilerde olduğu gibi indis numarasını belirterek eleman çağıramayız. Tabii ki biz manuel olarak sıralama yapabiliriz. Aşağıda bazı set tanımlama tiplerini görebiliriz.
var numbers : Set<Int> = [] var numbers : Set = [1,22,3,34,5]
Set tanımlarken array veya dictionary’de olduğu gibi veri tiplerini vermek zorunda değiliz. Fakat set’in tanımlama mantığı array ile aynı olduğu için set tanımlarken : Set şeklinde bunu belirtmemiz gerekmektedir. Yada Aşağıda bulunan örnekte olduğu gibi set tipinden initialize etmemiz gerekir.
var numbers = Set([1,22,3,34,5])
Set’in bazı propery’leri
var numbers : Set<Int> = [1,22,3,34,5] numbers.insert(55) //yeni bir eleman ekler numbers.remove(55) //var olan elemanı siler numbers.contains(1) //eleman set içerisinde var mı kontrolü numbers.isEmpty // true|false numbers.reduce(0, +) //sets içerisindeki değerlerin toplamını döndürür.
Set içerisindeki verileri sıralayarak bir diziye dönüştürmek için aşağıdaki yapıyı kullanılabiliriz.
let numberStringArray = numbers.sorted().map(String.init)
Set içerisinde bulunan verilerin başka bir dizi ile kesişen verilerini bulmak için aşağıdaki yapıyı kullanabiliriz.
print(numbers.intersection(day)) //[3, 5]
Set içerisinde bulunan verilerin tamamı belirttiğimiz dizi içerisindeki elemanlar ile kesişiyor mu kontrolü yapmak için aşağıdaki yapıyı kullanabiliriz.
print(numbers.isSubset(of: day)) //false
Set ile farklı bir diziyi birleştirmek için aşağıdaki yapıyı kullanabiliriz. Bu yapı bize iki kümenin elemanlarını birleştirerek yeni bir Set sunar. Burada bilinmesi gereken tek şey birleştirecek iki küme içerisinde aynı elemanlar varsa bile set’in kuralları gereği aynı elemanlar olmayacağı için yeni oluşan kümeye bir adet eklenecektir.
print(numbers.union(day))
İlk Yorumu Siz Yapın