CODESCRIPT

Eşlemeler

11 işlev. Her kaydın ne aldığı, ne verdiği ve çalışan örneği.

mapClear(harita)

Değer döndürmez; haritadaki tüm çiftleri siler (harita yerinde boşalır).

harita
map
Boşaltılacak harita.
NOT

Aynı harita nesnesi korunur, yalnız içi boşaltılır; ona tutan başka değişkenler de boş görür.

CODESCRIPT
m = mapNew()
mapPut(m, "a", 1)
mapClear(m)
plot(mapSize(m))

Bir çift yazılıp harita boşaltılır; boyut 0 çizilir.

mapContains(harita, anahtar)

Anahtar haritada varsa true, yoksa false.

harita
map
Denetlenecek harita.
anahtar
any
Varlığı sorgulanan anahtar.
NOT

Değerin na olması ile anahtarın hiç olmaması farklıdır; bu fonksiyon yalnız anahtarın varlığına bakar.

CODESCRIPT
m = mapNew()
mapPut(m, "a", 1)
plot(iff(mapContains(m, "a"), 1, 0))

"a" anahtarı yazıldığı için 1 çizilir.

mapCopy(harita)

Aynı çiftleri taşıyan yeni ve bağımsız bir harita.

harita
map
Kopyalanacak harita.
NOT

Kopya bağımsızdır — kopyaya yazmak aslını etkilemez. Yeni bir durum dalı denemek için kullanışlıdır.

CODESCRIPT
a = mapNew()
mapPut(a, "x", 1)
b = mapCopy(a)
mapPut(b, "y", 2)
plot(mapSize(a))

Kopyaya yeni çift eklenir ama asıl harita bir çift tuttuğundan boyut 1 çizilir.

mapGet(harita, anahtar)

Anahtardaki değer; anahtar yoksa (ya da girdi harita değilse) na.

harita
map
Okunacak harita.
anahtar
any
Değeri istenen anahtar.
NOT

Var olmayan anahtar hata vermez, na döner — koşullar güvenle na üzerinde çalışır.

CODESCRIPT
m = mapNew()
mapPut(m, "tepe", highest(high, 20))
plot(mapGet(m, "tepe"))

20 barlık en yüksek seviyeyi "tepe" anahtarında saklar ve geri okuyup çizer.

mapKeys(harita)

Haritadaki anahtarları yazım sırasıyla taşıyan bir dizi.

harita
map
Anahtarları istenen harita.
NOT

Dizi eleman sayısını arraySize ile, elemanları dizi fonksiyonlarıyla dolaşabilirsin.

CODESCRIPT
m = mapNew()
mapPut(m, "a", 1)
mapPut(m, "b", 2)
plot(arraySize(mapKeys(m)))

İki anahtar yazılır; anahtar dizisinin uzunluğu 2 çizilir.

mapNew()

Boş bir harita (anahtar→değer). Anahtar metin, sayı ya da mantıksal olabilir.

NOT

Harita anahtar→değer eşlemesi tutar; aynı anahtar tekrar yazıldığında eski değer ezilir. Değer olarak sayı, metin, mantıksal ya da seri saklanabilir.

CODESCRIPT
m = mapNew()
mapPut(m, "esik", 42)
plot(iff(mapContains(m, "esik"), close, open))

Boş harita kurar, "esik" anahtarına 42 yazar; anahtar var olduğu için close çizilir.

mapPut(harita, anahtar, değer)

Anahtarda önceden duran değer; anahtar yoksa na. Harita yerinde değişir.

harita
map
İçine yazılacak harita.
anahtar
any
Değerin saklanacağı anahtar (metin/sayı/mantıksal).
değer
any
Saklanacak değer.
NOT

Anahtar zaten varsa değeri güncellenir ve eski değer döndürülür; yoksa yeni çift eklenir ve na döner.

CODESCRIPT
m = mapNew()
onceki = mapPut(m, "k", 10)
mapPut(m, "k", 20)
plot(mapGet(m, "k"))

"k" anahtarına önce 10, sonra 20 yazar; ilk yazımda önceki değer na'dır. Son değer 20 çizilir.

mapPutAll(harita1, harita2)

Değer döndürmez; harita2'deki tüm çiftleri harita1'e kopyalar (çakışan anahtarlar ezilir).

harita1
map
Hedef harita (üzerine yazılır).
harita2
map
Kaynak harita (okunur).
NOT

Yalnız hedef (harita1) değişir; kaynak (harita2) olduğu gibi kalır.

CODESCRIPT
a = mapNew()
mapPut(a, "x", 1)
b = mapNew()
mapPut(b, "y", 2)
mapPutAll(a, b)
plot(mapSize(a))

b'nin çifti a'ya eklenir; a artık iki çift tuttuğundan boyut 2 çizilir.

mapRemove(harita, anahtar)

Silinen anahtarın değeri; anahtar yoksa na. Harita yerinde değişir.

harita
map
İçinden silinecek harita.
anahtar
any
Silinecek anahtar.
NOT

Anahtar yoksa sessizce na döner, hata oluşmaz.

CODESCRIPT
m = mapNew()
mapPut(m, "a", 5)
mapRemove(m, "a")
plot(iff(mapContains(m, "a"), 1, 0))

"a" yazılıp hemen silinir; artık bulunmadığından 0 çizilir.

mapSize(harita)

Haritadaki anahtar-değer çifti sayısı; girdi harita değilse 0.

harita
map
Boyutu istenen harita.
NOT

Boş harita için 0 döner. Aynı anahtara tekrar yazmak boyutu artırmaz.

CODESCRIPT
m = mapNew()
mapPut(m, "a", 1)
mapPut(m, "b", 2)
plot(mapSize(m))

İki farklı anahtar yazılır; boyut 2 çizilir.

mapValues(harita)

Haritadaki değerleri anahtar yazım sırasıyla taşıyan bir dizi.

harita
map
Değerleri istenen harita.
NOT

Sayısal değerler için arraySum / arrayAvg gibi dizi fonksiyonlarıyla toplu işlem yapılabilir.

CODESCRIPT
m = mapNew()
mapPut(m, "a", 10)
mapPut(m, "b", 20)
plot(arraySum(mapValues(m)))

Değerler 10 ve 20; değer dizisinin toplamı 30 çizilir.