【问题标题】:What's the difference between methods and messages in Ruby? [closed]Ruby 中的方法和消息有什么区别? [关闭]
【发布时间】:2016-04-11 15:41:20
【问题描述】:

“幕后”的区别是什么?有什么实际区别?

从用户的角度来看有什么不同吗?

我知道你可以使用def 来定义一个方法,但是你能定义一个消息吗?

【问题讨论】:

  • “定义消息”是什么意思?从开发人员的角度来看有什么不同吗?没有。
  • @DaveNewton 我不确定“定义消息”是什么意思。
  • 因此,实际差异为零:本质上是概念性的,例如,stackoverflow.com/q/3562272/438992
  • 很高兴知道。谢谢@DaveNewton。
  • 很多年前我就知道方法是对象行为的具体实现,消息是请求这些行为的行为。我可以通过说my_obj.bibbitybobbityboo 向任何Ruby 对象发送消息bibbitybobbityboo。如果my_obj 有这样的方法,它会调用它。否则,my_obj 将默认以 NoMethodError: undefined method 'bibbitybobbityboo' for my_obj:My_Class 响应。

标签: ruby


【解决方案1】:

当您向对象发送消息时,该对象(通常)会通过执行与该消息同名的方法来响应。

您不能定义消息。您只需发送它们即可。

【讨论】:

  • 你说“通常”。它还能做什么?能举个例子吗?
  • 如何创建一个不调用关联函数的方式响应消息的异议?
  • 如果没有对应的方法,则改为发送method_missing消息。如果方法有别名,则方法的名称可能与消息不同。
猜你喜欢
  • 2010-12-16
  • 2011-04-03
  • 2010-11-14
  • 2020-06-16
  • 1970-01-01
  • 2012-04-28
  • 2010-10-11
  • 2013-03-14
  • 1970-01-01
相关资源
最近更新 更多