我有以下方法
def method(value)
hash = {a: 'abc', b: 'bde'}
get_value = hash.send(value)
end
如何将输入参数值与散列键进行比较,并将该键值分配给get_value
?
编辑:因此,如果输入值为a
,则将其值abc
与哈希值分配给get_value
答案 0 :(得分:2)
您可以使用哈希的普通#[]
方法来提取值,
def do_something(value)
hash = { a: 'abc', b: 'bde' }
get_value = hash[value]
end
如果您在传递错误密钥时想要出错,可以使用fetch
:
def do_something(value)
hash = { a: 'abc', b: 'bde' }
get_value = hash.fetch(value)
end
最后,如果找不到密钥,fetch
可以采用默认值,而不是错误输出:
def do_something(value)
hash = { a: 'abc', b: 'bde' }
get_value = hash.fetch(value, 'key not found')
end
在所有这些中,确保传入散列的确切键,在您的示例中,您的散列键是符号,因此您需要传入:
do_something(:a)
而不是
do_something('a')