このコード スニペットがあります。この場合のバケットは、より大きな配列内の単なる配列です。
def Dict.get_slot(aDict, key, default=nil)
# Returns the index, key, and value of a slot found in a bucket.
bucket = Dict.get_bucket(aDict, key)
bucket.each_with_index do |kv, i|
k, v = kv
if key == k
return i, k, v
end
end
return -1, key, default
end
k と v という 2 つの変数は、kv の内容に設定されます。しかし、kv が一度に 1 つの値しか含まない場合、これはどのように機能するのでしょうか?
これを別のファイルに書きました:
bucket = ['key', 'value']
key = 'key'
bucket.each_with_index do |kv, i|
k, v = kv
if key == k
puts k, v, i
end
end
そして、 v 変数は空でした:
key
0
私の質問は、最初の例では複数の割り当てが機能するのに、2 番目の例では機能しないのはなぜですか?