小编Mik*_*zko的帖子

Ruby中的双向哈希表

我需要Ruby中的双向哈希表.例如:

h = {:abc => 123, :xyz => 789, :qaz => 789, :wsx => [888, 999]}
h.fetch(:xyz) # => 789
h.rfetch(123) # => abc
h.rfetch(789) # => [:xyz, :qaz]
h.rfetch(888) # => :wsx
Run Code Online (Sandbox Code Playgroud)

方法rfetch意味着反向提取,只是我的建议.

注意三件事:

  1. 如果多个键映射到相同的值,则rfetch返回所有这些键,以数组形式打包.
  2. 如果value是一个数组,那么rfetch在数组的元素中查找它的参数.
  3. 双向哈希意味着这两个fetchrfetch在固定时间内应该执行.

Ruby中是否存在这种结构(包括外部库)?

我考虑过使用两个单向Hashes同步修改它们中的一个(并将其打包到类中以避免同步问题),但也许我可以使用已有的解决方案?

ruby hash bidirectional

9
推荐指数
2
解决办法
3609
查看次数

在Sinatra应用程序中绑定地址

我正在Sinatra中运行经典样式应用程序,我想获取应用程序绑定的URL.例如,如果我在开发环境中启动它,我希望得到:http://localhost:4567/在生产环境中,这将指向:http://example.com/ 我知道可以从请求中检索它.但是,我需要在配置块中.怎么做?

bind sinatra memory-address

2
推荐指数
1
解决办法
3505
查看次数

标签 统计

bidirectional ×1

bind ×1

hash ×1

memory-address ×1

ruby ×1

sinatra ×1