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。有啥区别? [关闭]

FCM(Firebase云消息)中的服务器密钥和旧服务器密钥有啥区别

Firebase 云消息传递令牌和服务器密钥有啥区别?

Ruby中的类和该类的单例有啥区别?

从延迟和安全角度来看,Firebase 云消息传递类型之间有啥区别?