Swift Sözlük (Örneklerle)

Bu eğitimde, sözlüğün ne olduğunu, sözlük oluşturmayı ve sözlükte bazı genel işlemleri öğreneceksiniz.

Önceki Swift Arrays makalesinde, birden çok değeri bir değişken / sabit içinde nasıl saklayabileceğimizi öğrendik. Bu yazıda, verileri / değerleri anahtar değer çiftleri olarak nasıl saklayabileceğimizi tartışacağız.

Sözlük nedir?

Sözlük, birden fazla veriyi anahtar-değer çifti olarak sırasız bir şekilde tutabilen bir kaptır.

Her değer benzersiz bir anahtarla ilişkilendirilir ve verileri Setlerden itibaren sırasız listede depolar, yani öğeleri sözlükte tanımladığınız sırada elde edemezsiniz.

Koleksiyonda bazı tanımlayıcılarla değer aramanız gerektiğinde dizi yerine sözlük kullanabilirsiniz. Varsayalım, ülkenin başkentini aramak isteyebilirsiniz. Bu durumda, anahtar ülke ve değer başkenti olan bir sözlük oluşturacaksınız. Şimdi, anahtar ülke ile arama yaparak koleksiyondan başkenti alıyorsunuz.

Basit bir ifadeyle, bir anahtarı bir değerle eşlersiniz. Yukarıdaki örnekte, bir ülkeyi başkentiyle eşleştirdik.

Swift'de sözlük nasıl ilan edilir?

key:valueVeri tipini köşeli parantez içinde belirterek boş bir sözlük oluşturabilirsiniz ().

Örnek 1: Boş bir sözlüğü ilan etmek

 let emptyDic:(Int:String) = (:) print(emptyDic) 

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

 (:)

VEYA

Ayrıca aşağıdaki gibi boş bir sözlük de tanımlayabilirsiniz:

 let emptyDic:Dictionary = (:) print(emptyDic) 

Yukarıdaki programda, türün anahtarı ve türünün Intdeğeri olan sabit bir emptyDic türü sözlüğü tanımladık Stringve onu 0 değerleri ile başlattık.

VEYA

Swift bir tür çıkarım dili olduğundan, Veri Türünü belirtmeden doğrudan sözlük de oluşturabilirsiniz, ancak bazı değerlerle başlatmanız gerekir, böylece derleyici türünü şu şekilde çıkarabilir:

Örnek 2: Bazı değerlere sahip bir sözlüğü ilan etmek

 let someDic = ("a":1, "b":2, "c":3, "d":4, "e":5, "f":6, "g":7, "h":8, "i":9) print(someDic) 

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

 ("b": 2, "a": 1, "i": 9, "c": 3, "e": 5, "f": 6, "g": 7, "d": 4, " h ": 8)

Yukarıdaki programda, türü açıkça tanımlamadan, ancak bazı varsayılan öğelerle başlatmadan bir sözlük bildirdik.

Öğe, anahtar türünde Stringve değerin türünde olduğu anahtar: değer çiftindedir Int. Sözlük sırasız bir liste olduğundan print(someDic), değerleri tanımlanandan farklı sırada verir.

Örnek 3: İki diziden sözlük oluşturma

Dizileri kullanarak bir sözlük de oluşturabiliriz.

 let customKeys = ("Facebook", "Google", "Amazon") let customValues = ("Mark", "Larry", "Jeff") let newDictionary = Dictionary(uniqueKeysWithValues: zip(customKeys,customValues)) print(newDictionary) 

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

 ("Amazon": "Jeff", "Google": "Larry", "Facebook": "Mark")

Yukarıdaki programda, zip(customKeys,customValues)customKeys ve customValues'ten gelen değeri temsil eden her bir öğe ile yeni bir demet dizisi oluşturur. Zip'in nasıl çalıştığı hakkında daha fazla bilgi edinmek için Swit zip adresini ziyaret edin.

Şimdi bu diziyi Dictionary(uniqueKeysWithValues:)başlatıcıya aktarabilir ve yeni bir Sözlük oluşturabiliriz. Bu nedenle, print(newDictionary)iki diziden öğeler içeren yeni bir Sözlük çıkarır.

Swift'de sözlük öğelerine nasıl erişilir?

Diziler olarak, alt simge sözdizimini kullanarak bir sözlüğün öğelerine erişebilirsiniz. Erişmek istediğiniz değerin anahtarını, sözlüğün adından hemen sonra köşeli parantez içine eklemeniz gerekir.

Örnek 4: Bir sözlüğün öğelerine erişim

 let someDic = ("a":1, "b":2, "c":3, "d":4, "e":5, "f":6, "g":7, "h":8, "i":9) print(someDic("a")) print(someDic("h")) 

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

 Opsiyonel (1) Opsiyonel (8) 

For-in döngülerini kullanarak bir sözlüğün öğelerine de erişebilirsiniz.

Örnek 5: For-in döngüsü ile bir sözlüğün öğelerine erişim

 let someDic = ("a":1, "b":2, "c":3, "d":4, "e":5, "f":6, "g":7, "h":8, "i":9) for (key,value) in someDic ( print("key:(key) value:(value)") ) 

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

 anahtar: b değer: 2 anahtar: bir değer: 1 anahtar: i değer: 9 anahtar: c değer: 3 anahtar: e değer: 5 anahtar: f değer: 6 anahtar: g değer: 7 

Swift'de sözlük öğeleri nasıl değiştirilir?

Alt simge sözdizimini kullanarak sözlüğe öğelerini ekleyebilirsiniz. Alt simge dizini olarak yeni anahtarı eklemeniz ve Sözlük'ten itibaren türden yeni bir değer atamanız gerekir.

Örnek 6: Bir sözlükteki öğeleri ayarlama

 var someDictionary = ("Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi") someDictionary("Japan") = "Tokyo" print(someDictionary) 

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

 ("Japan": "Tokyo", "China": "Beijing", "India": "NewDelhi", "Nepal": "Kathmandu")

In the above example, we've created a new key-value pair "Japan": "Tokyo" in the given dictionary by using the subscript syntax.

You can also use subscript syntax to change the value associated with a particular key as:

Example 7: Changing elements of a dictionary

 var someDictionary = ("Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi") someDictionary("Nepal") = "KATHMANDU" print(someDictionary) 

When you run the program, the output will be:

 ("China": "Beijing", "India": "NewDelhi", "Nepal": "KATHMANDU")

Some helpful built-in Dictionary functions & properties

1. isEmpty

This property determines if an dictionary is empty or not. It returns true if a dictionary does not contain any value otherwise returns false.

Example 8: How isEmpty works?

 let someDictionary = ("Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi") print(someDictionary.isEmpty) 

When you run the program, the output will be:

 false

2. first

This property is used to access the first element of a dictionary.

Example 9: How first works?

 let someDictionary = ("Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi") print(someDictionary.first) 

When you run the program, the output will be:

 Optional((key: "China", value: "Beijing"))

3. count

This property returns the total number of elements (key-value pair) in a dictionary.

Example 10: How count works?

 let someDictionary = ("Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi") print(someDictionary.count) 

When you run the program, the output will be:

 3

4. keys

This property returns all the keys inside the dictionary.

Example 11: How keys works?

 var someDictionary = ("Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi") let dictKeys = Array(someDictionary.keys) print(dictKeys) 

When you run the program, the output will be:

 ("China", "India", "Nepal")

Similarly, you can use values to get all the values inside the dictionary.

5. removeValue

This function removes and returns the value specified with the key from the dictionary. Both key value pair will be removed from the dictionary.

Example 12: How removeValue() works?

 var someDictionary = ("Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi") let val = someDictionary.removeValue(forKey: "Nepal") print(val) print(someDictionary) 

When you run the program, the output will be:

 Optional("Kathmandu") ("India": "NewDelhi", "China": "Beijing") 

Similarly, you can also use removeAll function to empty an dictionary.

Things to Remember

1. While using subscript syntax to access elements of an dictionary in Swift, you must be sure the key lies in the index otherwise you will get a nil value. Let's see this in example:

Example 13: Key must be present

 var someDictionary = ("Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi") let val = someDictionary("Japan") print(val) 

When you run the program, the output will be:

 nil

In the above program, there is no key Japan. So when you try to access the value of the key "Japan", you will get a nil value.

2. Likewise, key-values are case-sensitive in Swift, so you must make sure the correct cased key/value is used. Otherwise, you will get a nil value. Let's see this in example:

Example 14: Keys are case-sensitive

 var someDictionary = ("Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi") let val = someDictionary("nepal") print(val) 

When you run the program, the output will be:

 nil

In the above program, there is no key nepal. So when you try to access the value of the key "nepal", you will get a nil value.

3. There is also a way to provide a default value if the value for a given key does not exist. Let's see this in example:

Example 12: Default value for non-existent key

 var someDictionary = ("Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi") let val = someDictionary("nepal", default:"Not Found") print(val) 

When you run the program, the output will be:

 Not Found

Yukarıdaki programda sözlüğe erişirken varsayılan parametrede Bulunamadı değerini belirledik . Anahtar için değer yoksa, varsayılan değer döndürülür, aksi takdirde değer döndürülür.

Bizim durumumuzda, "nepal" anahtarı mevcut olmadığından program Bulunamadı döndürür .

Ilginç makaleler...