Java.use(better);

前の記事次の記事
Java.use(better);


Episode#05

Map の効能 -- 配列と別れる50の方法


《関連記事》

Jython:dict

配列の添字に(整数だけはなく)任意のオブジェクトを指定できると便利です。たとえば、

  map["key"]

配列の添字に文字列を指定すると、次のメソッド呼び出しに還元されます。

  map.get("key")

Jython には、言語に組み込みの機能として、連想配列に匹敵する dict を持ちます。これを利用すると、

>>> m = dict()
>>> for e in "ABC": m[e] = ord(e)
... 
>>> m
{'C': 67, 'B': 66, 'A': 65}
    
67
67
dict は、文字列を添字に指定できる配列に相当するのが分ります。 次の事例は、作為的なものですが、特殊メソッド __getitem__ の端的な効果を示します。
>>> class X:
...   def __getitem__(self,index):
...     return index*2
... 
>>> m = X()
>>> m[3]
6
>>> m.__getitem__(3)
6
特殊メソッド __getitem__ は(整数/文字列に限らず)任意のオブジェクトを添字に指定して情報を得る手段を提供します。その結果は、添字演算子 を伴う式に反映されます。このとき、特殊メソッド __getitem__ は、引数 index の種別に依存しないので「ポリモフィズム」を体現しているのが分ります。つまり、添字演算子 にもポリモフィズムの概念を適用できます。

 ↑ TOP

》作業中です《
update*13/01/25 20:53:23