Hatena::Grouperlang

檜山正幸のErlang未確認情報 RSSフィード

 | 

2008-12-09 (火)

キー・値の操作

| 15:43

んもう、バーラバラなんだよなー。

作る 入れる 見つける 見つからん消す 全部消す
プロセス辞書なし put(Key,Val) get(Key)undefinederase(Key) erase()
リストlists なしkeystore(Key,N,TupleList,NewTuple) keysearch(Key,N,TupleList) falsekeydelete(Key,N,TupleList)なし
辞書dict new() store(Key,Val,Dict)find(Key,Dict)errorerase(Key,Dict) なし
属性リストproplistsなしなしget_value(Key, Proplist)undefineddelete(Key, List)なし

ETS, DETS, MNESIAはそのうち追加。


  1. lists:keydeleteは最初のエントリーを消す。
  2. proplists:deleteはすべてのエントリーを消す。
  3. lists:keysearchはvalue/false方式。
  4. lists:keystoreで、KeyとNewTupleが無関係でも特に問題はない。
  5. dict:findはok/error方式。
  6. dict:fetch(Key, Dict)もあり、こっちは裸の値と例外を返す。fetchのほうがいいと思う。
  7. dict:append(Key,Val,Dict)で追加もできるよ。ただし、値がリストのとき。
  8. proplists:get_value(Key, List, Default) もある。get_value/2はこれの特殊ケース。
  9. proplists:get_bool(Key, List) もある。要素がなければfalse。
  10. proplists:lookup(Key, List) -> none | tuple() はタプルをまるまる返す。
  11. proplists:lookup_all(Key,List) -> [tuple()] は、すべてのタプルを並べて返す。
  12. proplists:get_all_values(Key, List) -> [term()] は、すべての値を並べて返す。
  13. lists:keytake(Key, N, TupleList1)ってのもある。

VoluntasVoluntas2008/12/10 14:34キーの操作一覧はありがたいです ... これ悩むとこなんですよね ... 。

m-hiyamam-hiyama2008/12/10 15:27Voluntasさん、
悩むというか、この不統一さ加減はヒドイよねー。

 |