ごとけんです
ごそごそと訂正に来ました ^^;;
In message "[ruby-list:17839] Re: instead of assoc method"
on 99/10/20, GOTO Kentaro <gotoken / math.sci.hokudai.ac.jp> writes:
>メインの部分はこんな感じ:
>
> require "dbm"
> DBNAME = "hoge" # prefix of db file
>
> votes = ["aaa", "bbb"]
>
> db = DBM.open(DBNAME)
> begin
> db["aaa"] = 3
> db["ccc"] = 2
>
> votes.each do |v|
> db[v] = "0" unless db.has_key?[v] # 不要かも
うえでは = 3 とかしておきながらここで = "0" はナニですね。
DBM#[]= は代入前に to_s してくれるようです。
それから has_key?[v] ではなく has_key?(0) です。
また、現状では登録されてないキーの参照は nil が返り、かつ
nil.to_i == 0 なので、やっぱり、
db[v] = "0" unless db.has_key?(v)
は不要です。
ただ nil.to_i == 0 という仕様が将来どうなるかは分かりません。
-- gotoken