0Pricing
Swift Academy · Ders

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 hop

Sö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 items

Alt 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.

Koleksiyonlar — resim 22

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.

← Swift Academy Sayfasına Dön