我正在解析看起来像Key: Value
的代码行,并将Key
和Value
元素插入到数组中。然后我迭代遍历该数组并尝试将这些值存储到哈希中。我希望它像:"Host => "localhost"
和"Content-Length" => "17"
。
我试图关注this example:
def parse_headers
@headers = {}
while ! (line = next_line).empty?
header_elements = line.split(': ')
header_elements.each do |key, val|
@headers[key] = val
end
parse_header(line)
end
puts @headers
end
我认为我的语法错了。当我打印哈希时,只有键,所有值都是nil
。
如果有人可以提供帮助,我会非常感激。
答案 0 :(得分:2)
您是否注意到生成的哈希还包含应该是值的键?那是因为header_elements
是一个数组,你试图将它作为一个哈希(它不是)进行迭代。实际上,您不需要迭代它。
key, val = line.split(': ')
@headers[key] = val
答案 1 :(得分:0)
这一点与Sergio的答案相同,但您不必使用两个变量。为安全起见,您可以添加参数2
。
@headers.store(*line.split(': ', 2))