在两种情况下,我没有获得一致的输出:
humen = {"hand" => 1, "eye" => 2, "head" => 3, "hair"=>4}
puts "enter any body part name"
internal = gets.chomp.downcase.to_s
body = humen[internal]
puts body
#if input is "eye", it comes out 2
Run Code Online (Sandbox Code Playgroud)
humen = {hand:1, eye:2, head:3, hair:4}
puts "enter any body part name"
internal = gets.chomp.downcase.to_s
body = humen[internal]
puts body
Run Code Online (Sandbox Code Playgroud)
我在irb控制台中看不到任何东西.任何人都可以解释为什么会这样吗?
钥匙是第二种情况下的符号 -
{:hand=>1, :eye=>2, :head=>3, :hair=>4}
Run Code Online (Sandbox Code Playgroud)
而是internal一个字符串.
humen[internal]期望分配给内部的字符串出现在散列中humen,而不是这种情况.
:hand != 'hand'
您应该将字符串转换为符号:
humen[internal.to_sym]
Run Code Online (Sandbox Code Playgroud)
String#to_sym 将字符串转换为符号.
| 归档时间: |
|
| 查看次数: |
40 次 |
| 最近记录: |