我有两个哈希,如下,
tcp://
我想迭代hash1和hash2并找到匹配的键及其值并在控制台上打印。 这里的示例应该返回输出“b”=> 2.不使用以下代码,
stream_socket_client()
我基本上来自C ++和Java背景,并且很容易使用for循环和迭代器,但是使用Ruby,这非常困难。
答案 0 :(得分:2)
hexasc:
andi $a0,$a0,0x0f
addi $v0,$zero,0x30
addi $t0,$zero,0x9
ble $a0,$t0,L1
nop
addi $v0,$v0,0x7
L1:
add $v0,$a0,$v0
jr $ra
nop
这使用Hash#merge的形式,它使用bock来确定合并的两个哈希中存在的键的值。有关详细信息,请参阅文档。
答案 1 :(得分:1)
您可能会写一些类似
的内容h1.each do |k,v|
if h2[k] == v
puts "matched key = #{k} and value = #{v}"
else
puts "NOT matched key = #{k} and value = #{v}"
end
end
输出
NOT matched key = a and value = 1
matched key = b and value = 2
NOT matched key = c and value = 3
答案 2 :(得分:1)
不需要第二个循环。
h1.each do |key1, value1|
if (h2.include? key1) and (h2[key1] == value1)
puts "Match #{key1} with value #{value1}"
else
puts "#{key1} does not match"
end
end
答案 3 :(得分:1)
如果结果是主要目标,那么选择也可以工作:
h1.select{|k,v| h2[k] == v }