Swift Dizileri: Nasıl Kullanılır ve Neden? (Örneklerle)

Bu eğitimde, diziler, onu oluşturma, bir dizinin değerlerine erişme ve dizideki bazı genel işlemler hakkında bilgi edineceksiniz.

Önceki Swift Veri Türleri makalesinde, tek bir değeri tutabilen bazı Veri Türlerinin değişkenlerini / sabitlerini oluşturmayı öğrendik.

Ancak, aynı veri türünün birden çok değerini saklamak istiyorsak ne olur? Swift'de Array adlı bir şey kullanıyoruz .

Dizi nedir?

Bir dizi, sıralı bir listede bir veri türünün birden çok verisini (değerini) tutabilen bir kaptır, yani öğeleri dizideki öğeleri tanımladığınız sırada elde edersiniz.

Bir dizi herhangi bir veri türü örneğin değerlerini saklayabilir Int, Stringsınıf vs.

Swift'de bir dizi nasıl ilan edilir?

Veri tipini köşeli parantez içinde belirterek boş bir dizi oluşturabilirsiniz ().

Unutmayın, türü köşeli parantez içine dahil etmeniz gerekir, aksi takdirde Swift bunu normal bir veri türü olarak değerlendirir ve içinde yalnızca tek bir değer saklayabilirsiniz.

Örnek 1: Boş bir dizi bildirmek

 let emptyIntArr:(Int) = () print(emptyIntArr) 

Programı çalıştırdığınızda, çıktı:

 ()

Yukarıdaki programda, tamsayı dizisini saklayabilen ve 0 değerleriyle başlatılan sabit bir emptyIntArr tanımladık.

VEYA

Ayrıca aşağıdaki gibi boş bir dizi de tanımlayabilirsiniz:

 let emptyIntArr:Array = Array() print(emptyIntArr) 

VEYA

Swift bir tür çıkarım dili olduğundan, Veri Türünü belirtmeden doğrudan dizi de oluşturabilirsiniz, ancak derleyicinin türünü şu şekilde çıkarabilmesi için bazı değerlerle başlatmanız gerekir:

Örnek 2: Bazı değerlerle bir dizi bildirme

 let someIntArr = (1, 2, 3, 4, 5, 6, 7, 8, 9) print(someIntArr) 

Programı çalıştırdığınızda, çıktı:

 (1, 2, 3, 4, 5, 6, 7, 8, 9)

Yukarıdaki programda, türü açıkça belirtmeden Tamsayı dizisini depolayabilen sabit bir someIntArr tanımladık. Ayrıca diziyi 1, 2, 3, 4, 5, 6, 7, 8, 9 değerleriyle başlattık .

Örnek 3: Belirtilen sayıda tekrarlanan tek bir değer içeren bir dizi bildirme

Ayrıca Swift'de bir dizi oluşturmak için bir değeri belirli sayıda tekrar edebilirsiniz. Bu, yinelenen ve sayan dizi başlatıcı kullanılarak yapılır.

 let arrWithRepeatingValues = Array(repeating: "Hello, World", count: 4) print(arrWithRepeatingValues) 

Programı çalıştırdığınızda, çıktı:

 ("Merhaba, Dünya", "Merhaba, Dünya", "Merhaba, Dünya", "Merhaba, Dünya")

Yukarıdaki programda, bir dizi Hello, World dizisini depolayan ve count'da belirtildiği gibi aynı değeri 4 kez tekrarlayan sabit bir arrWithRepeatingValues ​​tanımladık .

Not: Swift'de, diğer programlama dillerinde yaptığınız gibi sabit uzunlukta bir dizi oluşturamazsınız. Sabit uzunlukta dizi, dizinin başlatma sırasında tanımladığınızdan daha fazla öğeye sahip olamayacağı anlamına gelir.

Değerler dizide nasıl saklanır?

Dize dizisini aşağıdaki gibi saklayabilen bir sabitiniz olduğunu varsayalım:

 let intArr = (21, 34, 54, 12)

Değerlerin dizide nasıl saklandığının resimli temsili aşağıda gösterilebilir:

Oluşturduğunuz tüm diziler 0 diziniyle başlar. İlk öğe 0 dizininde, ikinci öğe sonraki dizinde (1) vb. Depolanır.

Swift'de dizi öğelerine nasıl erişilir?

Alt simge sözdizimini kullanarak bir dizinin öğelerine erişebilirsiniz, yani erişmek istediğiniz değerin dizinini, dizinin adından hemen sonra köşeli parantez içine eklemeniz gerekir.

Yukarıdaki gibi bir dizi intArr tanımladığınızı varsayalım. İlk öğe intArr (0), ikinci öğe intArr (1) vb.

Örnek 4: Bir dizinin öğelerine erişim

 let intArr = (21, 34, 54, 12) print(intArr(0)) print(intArr(1)) print(intArr(2)) print(intArr(3)) 

Programı çalıştırdığınızda, çıktı:

 21 34 54 12 

For-in döngülerini kullanarak bir dizinin öğelerine de erişebilirsiniz. Daha fazla bilgi edinmek için Swift Giriş döngüsüne bakın.

Swift'de dizi öğeleri nasıl değiştirilir / eklenir?

Alt simge sözdizimi ve atama operatörünü kullanarak bir dizinin öğelerini değiştirebilirsiniz; yani, güncellemek istediğiniz değerin dizinini, dizi adından sonra atama operatörü ve yeni değerden sonra köşeli parantez içine eklemeniz gerekir.

Örnek 5: Bir dizinin öğelerini değiştirme

 var intArr = (21, 34, 54, 12) intArr(0) = 12 intArr(1) = 42 intArr(2) = 45 intArr(3) = 21 print(intArr) 

Programı çalıştırdığınızda, çıktı:

 (12, 42, 45, 21)

Ayrıca aşağıdaki gibi dizinin tüm öğelerini yeni değerlerle değiştirebilirsiniz:

Örnek 6: Bir diziyi bir bütün olarak değiştirme

 var intArr = (21, 34, 54, 12) intArr = (1,2,3) print(intArr) 

Programı çalıştırdığınızda, çıktı:

 (1, 2, 3)

Ancak, var olan bir diziye yeni bir öğe eklemek için alt simge sözdizimini kullanamazsınız. Bunu yaparsanız, bir hata ile sonuçlanırsınız. Böyle bir şey yapamazsınız:

Örnek 7: Alt simge sözdizimini kullanarak bir diziye yeni bir öğe ekleme (Çalışmıyor)

 var intArr = (21, 34, 54, 12) intArr(4) = 10 

Programı çalıştırdığınızda, çıktı:

 önemli hata: Endeks aralık dışı

Yukarıdaki program, intArr dizisine yeni bir eleman atarken hata veriyor. Bunun nedeni, intArr'ın dizin 4 için fazladan bellek ayırmaması ve verilen değeri saklayamamasıdır.

Bir diziye yeni bir elemanı doğru şekilde eklemek için dizinin append()yöntemini kullanırız. append()aşağıdaki bölümde açıklanmaktadır.

Dizi işlevlerinde ve özelliklerinde bazı yararlı yerleşik özellikler

1. isEmpty

Bu özellik, bir dizinin boş olup olmadığını belirler. Bu döner truebir dizi başka şekilde döner bir değer içermiyorsa false.

Örnek 8: isEmpty nasıl çalışır?

 let intArr = (21, 34, 54, 12) print(intArr.isEmpty) 

Programı çalıştırdığınızda, çıktı:

 yanlış

2. ilk

Bu özellik, bir dizinin ilk öğesine erişmek için kullanılır.

Örnek 9: İlk nasıl çalışır?

 let intArr = (21, 34, 54, 12) print(intArr.first) 

Programı çalıştırdığınızda, çıktı:

 İsteğe bağlı (21)

Benzer şekilde, lastbir dizinin son öğesine erişmek için özelliği kullanabilirsiniz .

3. ekle

Append işlevi, dizinin sonuna eleman eklemek / eklemek için kullanılır.

Örnek 10: Ekleme nasıl çalışır?

 var intArr = (21, 34, 54, 12) intArr.append(32) print(intArr) 

Programı çalıştırdığınızda, çıktı:

 (21, 34, 54, 12, 32)

Bir dizinin içeriğini başka bir diziye şu şekilde de ekleyebilirsiniz:

 var firstArr = (1,2,3,4) var secondArr = (5,6,7,8) firstArr.append(contentsOf: secondArr) print(firstArr) 

Programı çalıştırdığınızda, çıktı:

 (1, 2, 3, 4, 5, 6, 7, 8)

4. ekle

Bu işlev, dizinin belirli dizinine eleman eklemek / eklemek için kullanılır.

Örnek 11: Ekleme nasıl çalışır?

 var intArr = (21,34,54,12) intArr.insert(22, at: 1) print(intArr) 

Programı çalıştırdığınızda, çıktı:

 (21, 22, 34, 54, 12)

Benzer şekilde remove, belirtilen dizindeki öğeyi kaldırmak için özelliği de kullanabilirsiniz .

5. kaldır

Bu işlev, belirtilen konumda belirtilen değeri diziden kaldırır ve döndürür.

Örnek 12: Kaldırma nasıl çalışır?

 var strArr = ("ab","bc","cd","de") let removedVal = strArr.remove(at: 1) print("removed value is (removedVal)") print(strArr) 

Programı çalıştırdığınızda, çıktı:

 kaldırılan değer bc ("ab", "cd", "de") 

Benzer şekilde, removeFirstbir dizinin ilk öğesini kaldırmak, bir dizinin removeLastson öğesini kaldırmak ve bir diziyi removeAllboşaltmak gibi işlevleri de kullanabilirsiniz .

6. ters

Bu işlev, dizi öğelerini ters sırada döndürür.

Örnek 13: Reversed () nasıl çalışır?

 var intArr = (21,22,23,24) let reversedArr = Array(intArr.reversed()) print(reversedArr) 

Programı çalıştırdığınızda, çıktı:

 (24, 23, 22, 21)

7. say

Bu özellik, bir dizideki toplam öğe sayısını döndürür.

Örnek 14: sayma

 let floatArr = (10.2,21.3,32.0,41.3) print(floatArr.count) 

Programı çalıştırdığınızda, çıktı:

 4

Hatırlanacak şeyler

Swift'deki bir dizinin öğelerine erişmek için alt simge sözdizimini kullanırken, değerin dizinde olduğundan emin olmalısınız, aksi takdirde çalışma zamanı çökmesi yaşarsınız. Bunu bir örnek olarak görelim:

 let intArr = (21, 34, 54, 12) print(intArr(-1)) 

Programı çalıştırdığınızda, çıktı:

 önemli hata: Endeks aralık dışı

Yukarıdaki programda -1 indeksinde değer yoktur . Dolayısıyla, dizindeki değere erişmeye çalıştığınızda bir çalışma zamanı çökmesi yaşarsınız.

Bunu önlemek için önce kaldırmaya çalıştığınız öğenin dizinini bulun. Ve sonra indeksteki elemanı aşağıdaki gibi kaldırın:

 var intArr = (21, 34, 54, 12) if let index = intArr.index(of: 34) ( print("found index") let val = intArr.remove(at: index) print(val) ) 

Programı çalıştırdığınızda, çıktı:

 bulunan dizin 34 

Ilginç makaleler...