为什么 Ruby 使用 respond_to?而不是responds_to?

发布于 2024-10-21 06:32:04 字数 175 浏览 1 评论 0原文

我很好奇为什么 Ruby 用于检查对象是否响应方法的内省相关方法是 respond_to? 而不是 responds_to?

这对我来说总是很尴尬,但也许那是因为我我习惯了 Objective-C 中的 respondsToSelector

I'm curious why Ruby's introspection related method to check if an object responds to a method is respond_to? instead of responds_to?

It always seems awkward to me but maybe that's because I'm used to respondsToSelector in objective-c.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

痞味浪人 2024-10-28 06:32:04

Matz 更喜欢第二人称单数或第三人称人称复数:

“回应?”可能会赚更多
对说英语的人来说比
“响应?”。

也许吧。但我是日本人。红宝石不是
英语。这是基本的命名规则
避免第三人称单数形式
标准库。

 你 = Human.new
  如果你.respond_to?(:knock)
    ...
  结尾

Matz prefers second person singular or third person plural:

"responds_to?" probably makes more
sense to English speakers than
"respond_to?".

Maybe. But I'm Japanese. Ruby is not
English. It's the basic naming rule
to avoid third person singular form in
the standard libraries.

  you = Human.new
  if you.respond_to?(:knock)
    ...
  end
离旧人 2024-10-28 06:32:04

你怎么知道接收者总是第三人称单数?接收者可能是我们他们,或者其他代表的东西复数。那么,您还会说 responds_to?respond_to? 更自然吗?为了保持通用性,最好以尽可能通用的形式命名方法。与其以第三人称单数命名方法,不如以默认的、to-less 不定式形式命名更有意义,这种形式也在字典中使用。

How do you know that the receiver is always third person singular? It is possible that the receiver be I, we, you, or they, or some other thing that represents plurality. In that case, will you still say that responds_to? is more natural than respond_to?? In order to preserve generality, it is better to name a method in a form as general as possible. Rather than naming a method in third person singular, it makes more sense to name it in the default, to-less infinitive form, which is also used in dictionaries.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文