Ruby 连接字符串以使其成为formua[原文如此]
我正在尝试将范围和数组结合起来:Ruby 连接字符串以使其成为formua[原文如此],ruby,hash,Ruby,Hash,我正在尝试将范围和数组结合起来: letters = "a".."c" code = ["..--", "--..", "----"] 要填充哈希字母\u代码。它应该是这样的: {"a" => "..--", "b" => "--..", "c" => "----"} 这是我的代码: 字母=“a”.“c” 代码=[“.-”、“-…”、“----”] 字母_代码={} x=0 while x < letters.to_a.length "letter_code[ #
letters = "a".."c"
code = ["..--", "--..", "----"]
要填充哈希字母\u代码
。它应该是这样的:
{"a" => "..--", "b" => "--..", "c" => "----"}
这是我的代码:
字母=“a”.“c”
代码=[“.-”、“-…”、“----”]
字母_代码={}
x=0
while x < letters.to_a.length
"letter_code[ #{letters.to_a[x]} ]=#{code[x]}"
x += 1
end
puts "#{letter_code}"
而x
为什么连接返回空字符串?您的代码不起作用,因为字符串插值或字符串连接生成字符串。它不会神奇地计算创建的字符串 我会这样做:
letters = "a".."c"
code = ["..--", "--..", "----"]
Hash[letters.zip(code)]
#>= { "a" => "..--", "b" => "--..", "c" => "----" }
因为
"letter_code[ #{letters.to_a[x]} ]=#{code[x]}"
没有对字母\u code
执行任何操作。它只计算字母。到a[x]和code[x]
,并将它们插入字符串中。因此,字母\u code
保持为{}
,而{}.to\u s
是一个空字符串,由放置
调用
如果要按该行更改字母代码,请将其更改为:
letter_code[letters.to_a[x]] = code[x]
尽管这仍然是一个糟糕的代码。您可能误解了“连接”这个词。@sawa
将“{letter\u code}”放入“
打印一个空字符串。:)@SergioTulentsev谢谢,我现在知道了。OP离开了{}
,令人困惑。“福尔摩斯”是什么?另外,您谈论的是字符串,但您的代码使用散列。是哪一个?