test = "a"
test.class_eval do
# what is going on here???
end
1
A
回答
3
ActiveSupport将class_eval
添加到Object,因此它可以用于任何事物,而不仅仅是类。
在您的例子,它的作用是等价的:
test = "a"
class << test
# do stuff
end
的实际执行情况的Rails 2.3的是在这里:http://github.com/rails/rails/blob/2-3-stable/activesupport/lib/active_support/core_ext/object/singleton_class.rb
2
好了,我的电脑上,你会得到一个NoMethodError因为String类没有class_eval
方法:)
2
我认为,在香草红宝石,这是非法的。例如,如果你在irb中尝试它,你会得到一个NoMethodError。
在rails控制台中,可能会添加额外的方法,导致字符串的行为与类相似。
相关问题
- 1. 当你运行一个程序时会发生什么?
- 2. 当没有东西可以返回时返回的对象会发生什么?
- 3. 当你不加入你的主题时会发生什么?
- 4. 当你JAR而不是WAR时,会发生什么情况
- 5. 当你逻辑不是浮动时会发生什么?
- 6. 当发生javascript运行时错误时会发生什么?
- 7. 当程序运行时发生事件时会发生什么
- 8. 当发生器运行的值不足以产生时会发生什么?
- 9. 当你在Bash中执行“ls”时会发生什么
- 10. 我可以从iPhone获得什么东西,当你开发
- 11. 当你在Git仓库中运行`git add .git`时会发生什么?
- 12. 当你产生一个循环时会发生什么?
- 13. 什么是H.450.2?当它不存在时会发生什么?
- 14. 当executorservice关闭时,运行/阻塞的runnables会发生什么()
- 15. 当我运行下面的命令时会发生什么?
- 16. 当你同时触摸两个按钮时会发生什么
- 17. 与KleisliFunctor类似的东西是什么?
- 18. 当你调用新的Object()时会发生什么?
- 19. 当你调用UItableview的重装两次时会发生什么
- 20. Erlang:当你f()中的一个Pid时会发生什么?
- 21. 当我运行bundle exec黄瓜时,幕后会发生什么?
- 22. 当两个类创建对象时会发生什么?
- 23. 当你rm文件时会发生什么?
- 24. 当你在列表中调用`append`时会发生什么?
- 25. 当你从C启动A到B时会发生什么?
- 26. 当你绑定到ItemSource时会发生什么?
- 27. 当你在android中调用getSystemService(WIFI_SERVICE)时会发生什么?
- 28. 当你输入12ab到scanf(“%d”,&argu)时,会发生什么?
- 29. 当你增加数组时,会发生什么。 {A [in.nextInt()] ++;}
- 30. 当你停止VS调试器时会发生什么?