KOLEKSİYON TİPLERİ (COLLECTION TYPES)
Swift’te iki farklı koleksiyon tipi mevcuttur:
I)Diziler (Arrays)
II)Sözlükler (Dictionaries)
DİZİLER (ARRAYS)
Dizi, aynı tipteki çok sayıda değeri bir liste içinde tutan yapılardır. Aynı veri birden çok tekrar edebilir. Swift’in dizileri, Objective C’nin, NSArray ve NSMutableArray sınıflarından farklı yapıdadır. Objective C dizilerinde dizi elemanı herhangi bir tipte nesne olabilirken Swift dizilerinde yukarıda belirtildiği gibi aynı tipte veriler yer alır.
Örneğin, bir dizi Double tipte tanımlanmış ise bu diziye Int türü bir veri eklenemez.
DİZİ: TANIM
Dizi, bilgisayar belleğinde aynı isim altında genellikle aynı tipten çok sayıda veriyi bir arada saklayan veri yapısıdır. Aşağıda, x adlı bir dizinin mantıksal görünümü verilmiştir:
Dizinin bir adı ve dizi içersindeki bir elemanın dizinin kaçıncı elemanı olduğunu belirten bir indisi (subscript, index) mevcuttur. Örneğin, yukardaki x adlı dizi için
x[3] ifadesi bu dizinin 3 numaralı elemanını yani 22
değerini göstermektedir. Dizinin indisi Objective C dilinde daima köşeli parantez ile belirlenir:
x | [3] |
---|---|
Dizinin Adı | Dizinin indisi |
Swift dilinde bir dizinin ilk elemanının indisi daima 0’dır; son elemanın indisi ise diziye ayrılan yer sayısının 1 eksiğine eşittir. Yukarıdaki x dizisinin 6 elemanı vardır; ilk elemanının indisi 0 ve son elemanının indisi de 5’tir.
DİZİNİ TANIMLANMASI
5 elemanlı ve tam sayı elemanlara sahip bir dizi Swift’te;
var x : Int[] = [5,7,9,-2,11]
şeklinde tanımlanır.
Aşağıdaki Swift programı 5 elemanlı tam sayılardan oluşan bir dizinin elemanlarını yazdırmakta ve toplamlarını da hesaplamakta ve yazdırmaktadır:
var x : [Int] = [5,7,9,-2,11]
var s=0
for i in 0...5-1
{print("INDIS...\(i)...ELEMAN..\(x[i])")
s = s + x[i]
}
print("TOPLAM=\(s)")
PROGRAMIN ÇIKTISI:
INDIS...0...ELEMAN..5
INDIS...1...ELEMAN..7
INDIS...2...ELEMAN..9
INDIS...3...ELEMAN..-2
INDIS...4...ELEMAN..11
TOPLAM=30
Program ended with exit code: 0
DİZİ ELEMANLARINA ERİŞİM
Swift’te, bir dizinin elemanlarına iki farklı şekilde erişebilirsiniz:
I.Yukardaki örnekte gördüğünüz gibi, dizi indisini kullanmak:x[0],x[1],…x[5] gibi
II.Dizilerle ilişkili çeşitli metotları kullanmak
DİZİLERLE İLİŞKİLİ METOTLAR
isEmpty METODU
Bir dizi boş ise true değilse false değerini gönderir.
ÖRNEK:
var a:[Int]=[]
if a.isEmpty {print("DİZİ BOŞTUR...")} else {print("DİZİ DOLUDUR...")}
a.append(4)
a.append(7)
a.append(11)
if a.isEmpty {print("DİZİ BOŞTUR...")} else {print("DİZİ DOLUDUR...")}
print("a...DİZİSİ..\(a)")
PROGRAMIN ÇIKTISI
DİZİ BOŞTUR...
DİZİ DOLUDUR...
a...DİZİSİ..[4, 7, 11]
APPEND METODU
Mevcut bir dizinin sonuna belirtilen elemanı ekler.
a.append(4)
a.append(7)
a.append(11)
örneklerinde, başlangıçta dizi boşsa a[0]=4, a[1]=7, a[2]=11 olacaktır. Yukarıdaki örnek programda kullanılmıştır.
+= sembolü ile birden çok eleman eklenebilir:
var a:[Int]=[]
if a.isEmpty {print("DİZİ BOŞTUR...")} else {print("DİZİ DOLUDUR...")}
a+=[12,22,67,65,89,111]
if a.isEmpty {print("DİZİ BOŞTUR...")} else {print("DİZİ DOLUDUR...")}
print("a...DİZİSİ..\(a)")
Programın çıktısı:
DİZİ BOŞTUR...
DİZİ DOLUDUR...
a...DİZİSİ..[12, 22, 67, 65, 89, 111]