事例:演算 ()
VDM++ での演算 () に準拠した事例(演算子 [])を紹介します。
m = VDM_Map({"A":1,"B":2,"C":3})
d = "C"
print ">>> %s(%s)"%(m,d)
X = m[d]
print X; assert X == 3
写像 m において、指定したキー d に対応する値を得るには、演算子 [] を利用します。このコードを実行すると、
>>> {'A' |-> 1, 'C' |-> 3, 'B' |-> 2}('C')
3
キー 'C' に対応する値は 3 になります。
m = VDM_Map({"A":1,"B":2,"C":3})
d = "@"
print ">>> %s('%s')"%(m,d)
try:
X = m[d]
except AssertionError,name:
print name
指定したキーが定義域に含まれないなら、この演算を利用できません。このコードを実行すると、
>>> {'A' |-> 1, 'C' |-> 3, 'B' |-> 2}('@')
- : {'A' |-> 1, 'C' |-> 3, 'B' |-> 2}('@')
- : (>>'@'<<) in {'A', 'B', 'C'}
- : m(d): d must be in the domain of m
例外を生成して、エラーメッセージが表示されます。なぜなら、指定したキー '@' が、定義域 {'A', 'B', 'C'} に含まれないからです。