Ruby 中的方法和消息有啥区别? [关闭]
Posted
技术标签:
【中文标题】Ruby 中的方法和消息有啥区别? [关闭]【英文标题】:What's the difference between methods and messages in Ruby? [closed]Ruby 中的方法和消息有什么区别? [关闭] 【发布时间】:2016-04-11 15:41:20 【问题描述】:“幕后”的区别是什么?有什么实际区别?
从用户的角度来看有什么不同吗?
我知道你可以使用def
来定义一个方法,但是你能定义一个消息吗?
【问题讨论】:
“定义消息”是什么意思?从开发人员的角度来看有什么不同吗?没有。 @DaveNewton 我不确定“定义消息”是什么意思。 因此,实际差异为零:本质上是概念性的,例如,***.com/q/3562272/438992 很高兴知道。谢谢@DaveNewton。 很多年前我就知道方法是对象行为的具体实现,消息是请求这些行为的行为。我可以通过说my_obj.bibbitybobbityboo
向任何Ruby 对象发送消息bibbitybobbityboo
。如果my_obj
有这样的方法,它会调用它。否则,my_obj
将默认以 NoMethodError: undefined method 'bibbitybobbityboo' for my_obj:My_Class
响应。
【参考方案1】:
当您向对象发送消息时,该对象(通常)会通过执行与该消息同名的方法来响应。
您不能定义消息。您只需发送它们即可。
【讨论】:
你说“通常”。它还能做什么?能举个例子吗? 如何创建一个不调用关联函数的方式响应消息的异议? 如果没有对应的方法,则改为发送method_missing
消息。如果方法有别名,则方法的名称可能与消息不同。以上是关于Ruby 中的方法和消息有啥区别? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
我正在评估 Google Pub/Sub 与 Kafka。有啥区别? [关闭]