Slovníkové výrazy¤
Slovník (dict) uchovává kolekci dvojic (klíč, hodnota) tak, že každý možný klíč se v kolekci vyskytuje nejvýše jednou. Klíče ve slovníku musí být stejného typu, stejně jako hodnoty.
Položka je dvojice (klíč, hodnota) reprezentovaná jako tuple.
Nápověda
Tuto strukturu můžete znát pod alternativními názvy "asociativní pole" nebo "mapa".
!DICT
: Dictionary¤
Typ: Mapping
!DICT
with:
<key1>: <value1>
<key2>: <value2>
<key3>: <value3>
...
Nápověda
Pro zjištění počtu položek ve slovníku použijte !COUNT
.
Příklad
V jazyce SP-Lang lze slovník zadat několika způsoby:
!DICT
with:
key1: "One"
key2: "Two"
key3: "Three"
Implicitně zadaný slovník:
---
key1: "One"
key2: "Two"
key3: "Three"
```"Three"
Slovník zadaný zkráceně využívaje !!dict
a flow stylu v YAML:
!!dict {key1: "One", key2: "Two", key3: "Three"}
Specifikace typu¤
Typ slovníku se označuje jako {Tk:Tv}
, kde Tk
je typ klíče a Tv
je typ hodnoty.
Další informace o typu slovníku naleznete v příslušné kapitole v typovém systému.
Slovník se pokusí odvodit svůj typ na základě přidaných položek.
Typ první položky pravděpodobně poskytne typ klíče Tk
a typ hodnoty Tv
.
Pokud je slovník prázdný, jeho odvozený typ je {str:si64}
.
Toto lze přepsat pomocí explicitní specifikace typu:
!DICT
type: "{str:any}"
with:
<key1>: <value1>
<key2>: <value2>
<key3>: <value3>
...
type
je nepovinný argument obsahující řetězec se signaturou slovníku, která bude použita namísto odvozování typu z následníků.
Ve výše uvedeném příkladu je typ slovníku {str:any}
, typ klíče je str
a typ hodnot je any
.
!GET
: Získá hodnotu ze slovníku¤
Typ: Mapping.
!GET
what: <key>
from: <dict>
default: <value>
Získá hodnotu ze slovníku dict
(slovník) identifikovaného pomocí key
.
Pokud klíč
není nalezen, vrátí default
nebo chybu, pokud default
není zadán.
default
je nepovinné.
Příklad
!GET
what: 3
from:
!DICT
with:
1: "One"
2: "Two"
3: "Three"
Returns Three
.
!IN
: Test výskytu¤
Typ: Mapping.
!IN
what: <key>
where: <dict>
Zkontroluje, zda je key
přítomen v dict
.
Poznámka
Výraz !IN
je popsán v kapitole Porovnávací výrazy.
Příklad
!IN
what: 3
where:
!DICT
with:
1: "One"
2: "Two"
3: "Three"