Ruby 如何向字符串添加哈希键和值
我有一个杂烩Ruby 如何向字符串添加哈希键和值,ruby,hash,Ruby,Hash,我有一个杂烩 hash = {"a" => 100, "b" => 200, "c" => 300} 并希望将其键和值添加到字符串中 我有以下代码: result_string = '' hash.each do |key, value| result_string += 'key: ' result_string += key result_string += ', value: ' result_string += value re
hash = {"a" => 100, "b" => 200, "c" => 300}
并希望将其键和值添加到字符串中
我有以下代码:
result_string = ''
hash.each do |key, value|
result_string += 'key: '
result_string += key
result_string += ', value: '
result_string += value
result_string += ', '
end
结果将是:
"key: a, value: 100, key: b, value: 200, key: c, value: 300,"
此代码会将当前键添加到字符串中。但是,它不能将值
解析为它的值,我想知道这是为什么。有一种更简单的方法:
hash.map { |key, value| "key: #{key}, value: #{value}" }.join(', ')
#=> "key: a, value: 100, key: b, value: 200, key: c, value: 300"
有几十种方法可以实现这一点。这个怎么样。。。假设你有一个散列,那么你可以通过 在这种情况下,将生成您要查找的字符串数组:
[“key:foo,value:bar”,“key:batz,value:boo”]
回答您的问题:问题出在result\u string+=value
,不能用+
将整数添加到字符串中,它应该预先强制执行:
result_string += value.so_s
至于为什么你的代码不工作——如果你尝试运行它,你会得到
TypeError
:没有将Fixnum
隐式转换为String
这是因为您试图将数字(您的值)添加到字符串中。要修复它,可以显式地将键和值转换为字符串。所以
result_string += key
变成
result_string += key.to_s
result_string += value.to_s
及
变成
result_string += key.to_s
result_string += value.to_s
显然我需要的是
.map
。谢谢你!将添加到
也帮助我解决了这个问题。非常感谢。啊哈!这可能是我从您那里看到的可读性最低的代码@EricDuminil Honestly,我决定把它张贴在这里只是为了荣誉>代码> %W键:\Value:方法(:zip)< /代码>。不清楚你的代码的预期和结果是什么。如果你正在调试,请考虑<代码>哈希。检查< /代码>。同样为了调试,请尝试p hash
,这相当于放置hash.inspect
result_string += value.to_s