map
; bir değerden başka bir değere eşlemeleri ifade eden anahtar-değer çiftlerinin yer aldığı bir kapsayıcı türüdür. Bir haritadaki öğeler, haritayı oluşturduğunda anahtar-değer çiftlerinin sırasına göre düzenlenir ve haritadaki öğelere, tanımladığın benzersiz anahtarları kullanarak erişirsin.
Örneğin, bir sözcükle kaç kez karşılaştığının kaydını tutmak istersen sözcüğü anahtar, sayısını ise değer olarak kullanarak bir harita oluşturabilirsin.
WordCount : [string]int = map{"apple" => 11, "pear" => 7}
Büyütmek için görsele tıkla.
Bir haritayı başlatırken aynı anahtarı birden çok kez kullanırsan harita yalnızca o anahtar için sağlanan son değeri tutacaktır. Aşağıdaki örnekte WordCount
yalnızca "apple" => 2
anahtar-değer çiftine sahip olacaktır. "apple" => 0
ve "apple" => 1
çiftleri atlanır.
WordCount : [string]int = map{"apple" => 0, "apple" => 1, "apple" => 2}
Desteklenen Anahtar Türleri
Anahtar-değer çiftleri, anahtar-değer çifti karşılaştırılabilir oldukça herhangi bir türde olabilir çünkü bir harita için anahtarın zaten mevcut olup olmadığını kontrol etmenin bir yolu olması gerekir.
Aşağıdaki türler anahtar olarak kullanılabilir:
- logic(mantık)
- int(tamsayı)
- float(kayan sayı)
- char
- string(dize)
- enum(numaralandırma)
- Karşılaştırılabilir nitelikteyse class(sınıf)
- Öğe türü karşılaştırılabilir ise option(seçenek)
- Öğe türü karşılaştırılabilir ise array(dizi)
- Hem anahtar hem de değer türleri karşılaştırılabilir ise harita
- Demetteki tüm öğeler karşılaştırılabilir ise tuple(demet)
Harita Uzunluğu
Harita üzerindeki Length
alanına erişerek bir haritadaki anahtar-değer çiftlerinin sayısını elde edebilirsin. Örneğin, map{"a" => "apple", "b" => "bear", "c" => "candy"}.Length
3 değerini döndürür.
Bir Haritadaki Öğelere Erişme
Haritadaki bir öğeye WordCount["apple"]
gibi bir anahtar kullanarak erişebilirsin.
Haritadaki bir öğeye erişmek, bir başarısız olabilir ifadedir ve yalnızca if
ifadesi gibi bir hata bağlamında kullanılabilir. Örneğin:
ExampleMap : [string]string = map{"a" => "apple", "b" => "bear", "c" => "candy"}
for (Key->Value : ExampleMap):
Print("{Value} değeri ExampleMap içerisinde {Key} anahtarında")
Anahtar | "a" | "b" | "c" |
Değer | "apple" | "bear" | "candy" |
Bir Haritaya Öğe Ekleme ve Öğeleri Değiştirme
Bir haritadaki anahtarı belirli bir değere ayarlayarak bir harita değişkenine öğeler ekleyebilirsin. Örneğin set ExampleMap["d"] = 4
. Mevcut anahtar-değer çiftleri, haritada zaten mevcut olan bir anahtara benzer şekilde değer atanarak güncellenebilir.
Haritaya bir öğe eklemek, bir başarısız olabilir ifadedir ve yalnızca if
ifadesi gibi bir hata bağlamında kullanılabilir. Örneğin:
var ExampleMap : [string]int = map{"a" => 1, "b" => 2, "c" => 3}
# Mevcut bir öğeyi değiştirme
if (set ExampleMap["b"] = 3, ValueOfB := ExampleMap["b"]):
Print("ExampleMap içerisideki anahtar b {ValueOfB} değerine güncellendi")
# Yeni bir öğe ekleme
if (set ExampleMap["d"] = 4, ValueOfD := ExampleMap["d"]):
Print("Yeni bir anahtar-değer çifti {ValueOfD} değeriyle ExampleMap'e eklendi")
Haritadan Öğeleri Kaldırma
Kaldırmak istediğin anahtarı içermeyen yeni bir harita oluşturarak bir harita değişkeninden öğeleri kaldırabilirsin. Aşağıda, [string]int
haritalarından öğe kaldırmayı sağlayan bir fonksiyon örneği veriliyor.
# Belirtilen haritadan bir öğeyi kaldırır ve o öğeyi içermeyen yeni bir harita döndürür
RemoveKeyFromMap(ExampleMap:[string]int, ElementToRemove:string):[string]int=
var NewMap:[string]int = map{}
# ElementToRemove öğesini dışlayarak ExampleMap haritasındaki Anahtarları NewMap haritasıyla birleştirir
for (Key -> Value : ExampleMap, Key <> ElementToRemove):
set NewMap = ConcatenateMaps(NewMap, map{Key => Value})
return NewMap