Koleksiyonlar
Koleksiyonlar
Koleksiyonlar, CoddyKit'te ücretsiz bir Swift Academy dersidir. Bu, 1 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Swift Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Swift Academy kursu toplamda 1 dersten oluşur.
Giriş
Merhaba,
Bu derste en önemli konulardan biri olan Swift'teki koleksiyon türlerini öğreneceğiz.
Öyleyse başlayalım.
Swift'te 3 koleksiyon türü vardır.
Array → Sıralı koleksiyon türleri.
Set → Sırasız ve benzersiz koleksiyon türleri.
Dictionary → Sırası olmayan ve anahtar-değer çiftlerinden oluşan koleksiyon türleri.
değiştirilebilir - değiştirilemez
Koleksiyon türlerimizin değiştirilemez veya değiştirilebilir olması, tanımımıza göre belirlenir.
Bir tanımı let ifadesiyle yaparsak değiştirilemez, var ile yaparsak değiştirilebilir olur.
Tanımladığımız değer daha sonra değişmeyecekse let kullanmak, derleyicinin daha iyileştirilmiş şekilde çalışması açısından performans avantajı sağlar.
Dizi
Dizi
Dizi, verileri sıralı şekilde tutmak için kullanılan koleksiyon türüdür. Swift 3 sürümüyle birlikte, dizideki tüm öğelerin aynı türde olması gerekmez.
Basit bir dizi tanımlamanın sözdizimi aşağıdaki örnekte gösterilmiştir.
// Let's create an empty array.
var someInts = [Int]()
print("someInts is of type [Int] with \(someInts.count) items.")
// Prints "someInts is of type [Int] with 0 items."Varsayılan değerle dizi oluşturma
Varsayılan değerle dizi oluşturma
Bazı durumlarda varsayılan bir değere ve belirli bir boyuta sahip bir dizi oluşturmak isteyebiliriz. Bunun için Dizi oluşturucusuna iki bağımsız değişken vermemiz gerekir.
Bu bağımsız değişkenler varsayılan değerin ne olduğunu ve dizinin kaç öğe içereceğini belirtir.
var threeDoubles = Array(repeating: 0.0, count: 3)
print(threeDoubles)
// threeDoubles is of type [Double], and equals [0.0, 0.0, 0.0]
var anotherThreeDoubles = Array(repeating: 2.5, count: 3)
// anotherThreeDoubles is of type [Double], and equals [2.5, 2.5, 2.5]
print(anotherThreeDoubles)
var sixDoubles = threeDoubles + anotherThreeDoubles
print(sixDoubles)
// sixDoubles is inferred as [Double], and equals [0.0, 0.0, 0.0, 2.5, 2.5, 2.5]Dizi Değişmezi Kullanarak Dizi Oluşturma
Dizi Değişmezi Kullanarak Dizi Oluşturma
Önceki örneğimizde boş bir dizinin nasıl oluşturulduğunu öğrendik. Ancak bazı durumlarda bir dizi değişmezi kullanarak dizi oluşturmak isteyebiliriz.
Kullanımını örnek üzerinden öğrenelim.
/*
We have defined a variable named catList,
and with the [String] statement we specified
that its type is an Array containing String elements.
*/
var catList: [String] = ["Garfield", "Tom"]
print(catList)
/*
It will understand that the array is an Array containing
String statements, since we assign a value that
defines the variable. (Swift type inference)
*/
var shoppingList = ["Eggs", "Milk"]
print(shoppingList)Dizi değerine erişme
Dizinin değerine erişme
Bir dizideki belirli bir dizin öğesine ulaşmak istediğimizde, aşağıdaki sözdizimiyle çağırmamız yeterlidir.
myArray [index]
Örneğe bakalım.
// We have defined an array with 3 elements of type Int.
var numbers:[Int] = [1, 5, 21]
// Arrays start from Index 0. For example, in order to reach the value 5, which is the 2nd element, we need to access the 1st index.
var a = numbers[1]
print( "Value of numbers at index 1 is \(a)" )Diziye yeni öğeler ekleme
Diziye yeni öğeler ekleme
Diziye yeni bir öğe ekleyebiliriz.
Aşağıdaki örnekte catList adlı bir dizi tanımlanmıştır. Sonraki adımda append yöntemiyle bu diziye yeni bir öğe eklenmiştir.
// The Array named catList was defined with 1 initial element.
var catList = ["Tom"]
/*
We are adding a new item with a Garfield
value using the append method.
*/
catList.append("Garfield")
// Our array will now have 2 elements.
/*
With the + = operator, we can do the
work that the append method does.
*/
catList += ["Sylvester"]
Dizide belirli bir dizine veri ekleme
Dizide belirli bir dizine veri ekleme
Önceki örneğimizde append yöntemiyle eklediğim değer dizinin sonuna eklenir. Ancak bazen bu değeri belirli bir dizine eklemek isteyebiliriz. Bunun için insert yöntemini kullanacağız.
Sözdizimi şöyle olacaktır.
myArr.insert ("The data to add", at: index);
Bir örnekle öğrenelim.
var catList = ["Tom"]
catList.insert("Garfield", at: 1)
print(catList)
Dizide belirli bir öğeyi silme
Dizide belirli bir öğeyi silme
Bir dizideki belirli bir dizinde bulunan öğeyi silmek için remove yöntemi kullanılır.
var shoppingList = ["Apple", "Cherry", "Cheese"]
let shoppingListOne = shoppingList.remove(at: 0)
// the item that was at index 0 has just been removed
// the mapleSyrup constant is now equal to the removed "Maple Syrup" string
let shoppingListTwo = shoppingList.removeLast()
// the last item in the array has just been removed
print(shoppingListTwo)Dizi üzerinde yineleme
for-in kullanarak elimizdeki bir dizi üzerinde yineleme yapabiliriz.
Örneğe göz atalım.
var shoppingList = ["Banana", "Orange", "Milk"]
for item in shoppingList {
print(item)
}
// Six eggs
// Milk
// Flour
// Baking Powder
// Bananas
for (index, value) in shoppingList.enumerated() {
print("Item \(index + 1): \(value)")
}
// Item 1: Six eggs
// Item 2: Milk
// Item 3: Flour
// Item 4: Baking Powder
// Item 5: Bananas
Kümeler
Kümeler
Aynı türdeki koleksiyonları sıralama olmadan bir arada tutmak için kullanılır.
Adından da anlaşılacağı üzere bunlar kümelerdir. Kümede aynı değere sahip iki öğe bulunamaz.
Boş küme oluşturma
Boş bir küme oluşturmak için aşağıdaki örneği kullanırız.
var catSet = Set<Character>()Dizi değişmezi kullanarak küme oluşturma
Dizi değişmezi kullanarak küme oluşturma
Dizi değişmezi, küme oluşturmak için kullanılabilir. Burada atanan değer bir dizi gibi görünse de değişkenin türü Set <String> olur.
var favoriteGenres: Set<String> = ["Rock", "Classical", "Hip hop"]Uyarı
Dizi değişmezi kullanıldığında, tür tanımlamadan küme oluşturmak mümkün değildir. Bu durum Dizi ile karışıklığa neden olabilir. Bu nedenle türü tanımlamamız gerekir.
En azından aşağıdaki şekilde kullanmalıyız.
var favoriteGenres: Set = ["Rock", "Classical", "Hip hop"]Küme yöntemleri
Küme yöntemleri
Örneğe göz atalım.
var favoriteGenres = ["Funk"]
print("I have \(favoriteGenres.count) favorite music genres.")
if favoriteGenres.isEmpty {
print("favoriteGenres is empty")
} else {
print("I have particular music preferences.")
}
if favoriteGenres.contains("Funk") {
print("Funk")
} Küme üzerinde yineleme
Küme üzerinde yineleme
Swift'teki Set türünde sıralama yoktur. Ancak küme değeri üzerinde yineleme yaparken sorted yöntemi kullanılabilir. Bu yöntem, kümenin öğelerini bir dizi olarak sıralar.
let favoriteGenres = ["Classical","Jazz", "Hip hop"]
for genre in favoriteGenres {
print("\(genre)")
}
// Classical
// Jazz
// Hip hopSözlük
Sözlük
Sözlük değerlerini anahtar-değer çiftleri olarak tutan ve herhangi bir sıralama içermeyen koleksiyon türleridir.
Her değer benzersiz bir anahtarla tutulur. Bu, sözlükteki o değerin ID'sini temsil eder. Dizilerdeki gibi bir sıra içermez. Gerçek dünyadaki bir sözlük gibi düşünebiliriz.
Bu nedenle her değerin kimliği, sıralamasından daha önemlidir.
Sözlük türü, kısaltılmış [Key: Value] türüyle tanımlanabilir. Kısaltılmış kullanım daha çok tercih edilir.
var namesOfIntegers = [Int: String]()
// namesOfIntegers is an empty [Int: String] dictionary
namesOfIntegers[16] = "sixteen"
// namesOfIntegers now contains 1 key-value pair
namesOfIntegers = [:]
// namesOfIntegers is once again an empty dictionary of type [Int: String]Sözlüğe erişim yöntemleri
Bir sözlüğün kaç öğe içerdiğini öğe sayısını veren yöntemle öğrenebiliriz.
Ayrıca, isEmpty yöntemiyle sözlüğün boş olup olmadığını kontrol edebiliriz.
Bu yöntemlerle ilgili birkaç örnek yapalım.
var airports = ["LHR": "London", "IST": "Istanbul"]
print("The airports dictionary contains \(airports.count) items.")
// Prints "The airports dictionary contains 2 items."
if airports.isEmpty {
print("The airports dictionary is empty.")
} else {
print("The airports dictionary is not empty.")
}
// Prints "The airports dictionary is not empty."
airports["LHR"] = "London"
// the airports dictionary now contains 3 itemsAlt simge
Alt simge kullanarak değer alma işlemi şöyledir. Sonuç isteğe bağlı olarak döner.
var airports = ["DUB":"Dublin"]
if let airportName = airports["DUB"] {
print("The name of the airport is \(airportName).")
} else {
print("That airport is not in the airports dictionary.")
}
// Prints "The name of the airport is Dublin Airport."
//Deletion
airports["APL"] = nil
if let removedValue = airports.removeValue(forKey: "DUB") {
print("The removed airport's name is \(removedValue).")
} else {
print("The airports dictionary does not contain a value for DUB.")
}
// Prints "The removed airport's name is Dublin Airport."
Sözlüğü güncelleme
Yukarıda kullanılan alt simgeye ek olarak sözlüğü güncellemek için bir yöntem daha vardır.
Bu yöntemin özelliği, güncelleme gerçekleştirildikten sonra güncellenmeden önceki eski değeri döndürmesidir.
var airports = ["DUB": "Dublin"]
if let oldValue = airports.updateValue("Dublin Airport", forKey: "DUB") {
print("The old value for DUB was \(oldValue).")
}
// Prints "The old value for DUB was Dublin."
Sözlükten diziye dönüştürme örneği aşağıdadır
Sözlükten diziye dönüştürme örneği aşağıdadır.
let airports = ["IST":"Istanbul Airport", "DUB":"Dublin Airport"]
let airportCodes = [String](airports.keys)
print(airportCodes)
let airportNames = [String](airports.values)
print(airportNames)Tebrikler
Tebrikler 🎉
Bu derste Swift'te koleksiyonların nasıl kullanılacağını öğrendik.
Bir sonraki derste görüşmek üzere.

Sıkça Sorulan Sorular
“Koleksiyonlar” dersi ücretsiz mi?
Evet — “Koleksiyonlar” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Swift Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Swift Academy kursu toplamda 1 dersten oluşur.
“Koleksiyonlar” dersinde ne öğreneceğim?
Koleksiyonlar Swift Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Swift Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Swift Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 1 dersinin 1. dersidir.
“Koleksiyonlar” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Swift Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Swift Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.