我有一个哈希.其中,每个键的值都是一个数组.我想测试一个值是否在其中一个数组中,如果是,则测试它对应于哪个键.例如,假设我正在编写一个带有命令列表的命令行程序,并且每个命令都有一些昵称,如下所示:
commands = {
:exit => ['exit', 'ex'],
:start_car => ['start_engine', 'start'],
:accelerate => ['speed_up', 'accelerate'],
:help => ['help', '?']
}
Run Code Online (Sandbox Code Playgroud)
因此,如果我想要启动汽车,我可以进入任何一个start_engine
或start
两个都可以工作.
我们还要说我需要一个函数来测试给定的字符串是否是命令的名称.如果没有,请返回false
.如果是这样,返回命令的名称,如下所示:
def is_command? string
if # string is a nickname
# return the key to which it belongs, i.e. 'ex' to :exit
else
return false
end
end
Run Code Online (Sandbox Code Playgroud)
我试着浏览Hashes and Arrays的函数列表,但我找不到任何东西,我甚至无法开始考虑如何使用Google这样的东西.任何帮助都会非常受欢迎.
用途find
:
commands = {:exit => ['exit', 'ex'], :start_car => ['start_engine', 'start'], :accelerate => ['speed_up', 'accelerate'], :help => ['help', '?']}
commands.find { |key,value| value.include?( '?' ) }
> [:help, ["help", "?"]]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
52 次 |
最近记录: |