在Ruby中,方法是否为对象?我的朋友问了我这个问题。我在网站上阅读了相关信息,但仍然不理解。有人可以帮助我吗?
由于“方法”一词的歧义性,这里似乎存在混淆。在最普通的意义上,“方法”不是一个对象。在下面的例子中:
"foo".upcase
upcase
被应用于一个对象"foo"
时,upcase
并不是一个对象,因为它不能独立存在。upcase # => error
Method
的类,它的实例对应于方法,并且是对象。它们也可以被称为方法,但这不是术语“method”的正常用法。
while
、for
等等,毫无疑问还有其他的。 - Cary Swoveland"foo".upcase
将消息upcase
发送给对象"foo"
。如果"foo"
实现了同名的方法,它将被调用。 - StefanProc
对象中。将块传递到方法中比构造Proc
对象并将它们作为常规参数传递要快得多;这主要是因为块不需要处理面向对象的开销。同样,方法不是对象,但可以被包装在Method
和UnboundMethod
对象中。 - Amadan