0
私はRubyクラスとattr_accessor
に付属の自動生成ゲッタとセッタを理解しようとしていました。下のコードはどうやって入手できますが、設定することはできません。さらに、後でコード内で私のstore
インスタンス変数の設定を行います(図示せず)。私はread hereから、それはattr_accessor
と思われます。私は読み書きするのが簡単です。何attr_accessorRubyクラスの変数設定のためにattr_accessorが機能しません
class HashMap
attr_accessor :store, :num_filled_buckets, :total_entries
def initialize(num_buckets=256)
@store = []
@num_filled_buckets = 0
@total_entries = 0
(0...num_buckets).each do |i|
@store.push([])
end
@store
end
def set(key, value)
bucket = get_bucket(key)
i, k, v = get_slot(key)
if i >= 0
bucket[i] = [key, value]
else
p num_filled_buckets # <- this works
num_filled_buckets = num_filled_buckets + 1 if i == -1 # this does not
# spits out NoMethodError: undefined method `+' for nil:NilClass
total_entries += 1
bucket.push([key, value])
end
end
...