热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

为什么我没有在Ruby中获得相同的输出

如何解决《为什么我没有在Ruby中获得相同的输出》经验,为你挑选了1个好方法。

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

场景1:

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控制台中看不到任何东西.任何人都可以解释为什么会这样吗?



1> kiddorails..:

钥匙是第二种情况下的符号 -

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

而是internal一个字符串. humen[internal]期望分配给内部的字符串出现在散列中humen,而不是这种情况.

:hand != 'hand'

您应该将字符串转换为符号:

humen[internal.to_sym]

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


推荐阅读
author-avatar
陈翔_是学长
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有