【问题标题】:Why am I not getting same output in Ruby为什么我在 Ruby 中没有得到相同的输出
【发布时间】:2018-06-26 17:08:25
【问题描述】:

在两种情况下我没有得到一致的输出:

场景一:

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

场景 2:

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

我在 irb 控制台中什么也看不到。谁能解释一下为什么会这样?

【问题讨论】:

    标签: ruby hashmap


    【解决方案1】:

    键是第二种情况下的符号 -

    {:hand=>1, :eye=>2, :head=>3, :hair=>4}
    

    internal 是一个字符串humen[internal] 期望分配给 internal 的字符串出现在哈希 humen 中,但事实并非如此。

    :hand != 'hand'

    您应该通过以下方式将字符串转换为符号:

    humen[internal.to_sym]
    

    String#to_sym 将字符串转换为符号。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-13
      • 1970-01-01
      • 2022-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多