1
A
回答
2
Dispatcher = Hash.new do |k, h| h[k] = instance_method "do_#{k}" end
0
%w[d a v e].each_with_object({}) do |a, o|
o[a] = instance_method("do_#{a}")
end
0
Dispatcher = {}
self.instance_methods.grep(/do_*/).each do |method|
Dispatcher[method.to_s.sub "do_", ""] = instance_method(method)
end
它通过匹配“的do_”前缀,并把它添加到Dispatcher
哈希,所有实例方法迭代。
+0
未成年人,但你不需要'self'。 – 2014-10-06 17:43:31
相关问题
- 1. 哈希码返回整数值
- 2. Sha256返回不正确的哈希值?
- 3. Ruby哈希返回不正确的值
- 4. 在redis中返回一个哈希存储区的值
- 5. 返回在哈希表中
- 6. 如何动态使用哈希值?
- 7. 我有一个方法来返回一个哈希映射,
- 8. CoffeeScript的动态哈希键
- 9. 独特价值哈希值=唯一哈希值?
- 10. Perl哈希对同一哈希值内的哈希值的引用
- 11. 动态返回一个ArrayList
- 12. 建立一个新的哈希值,通过迭代一个嵌套的哈希
- 13. Perl的愁楚 - 分配并返回一个哈希
- 14. 整个哈希被退回
- 15. 返回最大值的所有哈希键/值对
- 16. 通过红宝石模型属性到一个哈希和返回值
- 17. 如何实现动态哈希表的哈希函数?
- 18. 为整数设置一个哈希值?
- 19. 用Qt生成一个MD5哈希值
- 20. 传递一个哈希值到ActiveRecord#save
- 21. Ruby构建和返回哈希
- 22. 哈希表Get_Item返回空行 - Powershell
- 23. “模拟#to_hash应该返回哈希”
- 24. 返回支持哈希算法
- 25. JSON解析和返回哈希表
- 26. PowerShell的错误返回哈希表
- 27. 哈希具有多个值
- 28. 值内哈希
- 29. 静态哈希表
- 30. 在一个哈希动态循环Ruby on Rails
@sawa对不起,你已经删除了你的答案。 – pgblu 2014-10-06 17:10:00
我建议使用一种方法而不是散列:'class D; def dispatcher(m)send(“to _#{m}”)end; def to_a()将“hi”结束;结束; D.new.dispatcher(“a”)=>“hi”'。 – 2014-10-06 17:41:37
嗨@CarySwoveland - 问题被编辑,从而失去了一些上下文。我正在从以下页面获取此片段:[http://www.ruby-doc.org/core-2.1.3/Module.html#method-i-instance_method](http://www.ruby-doc .org/core-2.1.3/Module.html#method-i-instance_method),其中散列分配的优点是可以用其他方式扩展。 – pgblu 2014-10-06 17:48:43