具有取决于键的默认值的散列
Hash with default value that depends on the key
我有一个字符串和一个散列,默认值为 "*"
:
my_string = "a b c d"
my_hash = Hash.new("*")
my_hash["a"] = 1
my_hash["b"] = 2
那我做
new_string = my_string.gsub(/[abcd]/, my_hash)
# => "1 2 * *"
如何使 new_string
也包括在 my_hash
中找不到的字符串并具有
new_string # => "1 2 *c *d"
好的,我明白了。
而不是使用
将 my_hash 的默认值设置为“*”
my_hash = Hash.new("*")
我愿意
my_hash = Hash.new{|h,k| h[k] = "*" + k}
所以现在,如果找到要替换的字符串但在 my_hash 中没有对应的键(在本例中为 "c" 和 "d"),我将其替换为默认值my_hash 值及其本身。
现在new_string是
"1 2 *c *d"
my_hash = Hash.new{|_, k| "*#{k}"}
my_hash["a"] = 1
my_hash["b"] = 2
my_string.gsub(/[abcd]/, my_hash)
# => "1 2 *c *d"
我有一个字符串和一个散列,默认值为 "*"
:
my_string = "a b c d"
my_hash = Hash.new("*")
my_hash["a"] = 1
my_hash["b"] = 2
那我做
new_string = my_string.gsub(/[abcd]/, my_hash)
# => "1 2 * *"
如何使 new_string
也包括在 my_hash
中找不到的字符串并具有
new_string # => "1 2 *c *d"
好的,我明白了。
而不是使用
将 my_hash 的默认值设置为“*”my_hash = Hash.new("*")
我愿意
my_hash = Hash.new{|h,k| h[k] = "*" + k}
所以现在,如果找到要替换的字符串但在 my_hash 中没有对应的键(在本例中为 "c" 和 "d"),我将其替换为默认值my_hash 值及其本身。
现在new_string是
"1 2 *c *d"
my_hash = Hash.new{|_, k| "*#{k}"}
my_hash["a"] = 1
my_hash["b"] = 2
my_string.gsub(/[abcd]/, my_hash)
# => "1 2 *c *d"