【问题标题】:Why is the new method not needed for creating Rational in ruby [duplicate]为什么在 ruby​​ 中创建 Rational 不需要新方法 [重复]
【发布时间】:2012-06-27 00:28:48
【问题描述】:

可能重复:
Ruby syntax question: Rational(a, b) and Rational.new!(a, b)

我正在阅读红宝石镐书,我对创建有理数的语法感到困惑。

Rational(3,4) * Rational(1,2)

生产

=> 3/8

为什么Rational 不需要new 方法(我还注意到,例如我可以在没有新方法的情况下创建字符串)?

【问题讨论】:

  • 啊,是的,我没有看到那个副本。你是对的。

标签: ruby keyword rational-numbers


【解决方案1】:

一方面,Ruby 没有new 关键字。 new 是所有类都有的类方法(它们从Class 继承它),它创建该类的对象。当你看到Rational(3,4) 之类的东西时,Rational 实际上只是Object(在Kernel 中定义)的一个私有方法,它使得创建有理数更容易。有关这些构造方法的更多信息,请参阅我的答案:https://stackoverflow.com/a/9677125/1008938

【讨论】:

  • 谢谢,是的,对不起,我的意思是新方法。
  • @JeffStorey:哦。但其余的答案仍然成立。看看那个链接。
  • @JeffStorey:很高兴我能帮上忙。
【解决方案2】:

这是一个恰好与类同名的方法。这是 Ruby 中常见的 conversion idiom

【讨论】:

  • 谢谢。在我学习的过程中学习这些常见的 ruby​​ 习语很不错,而不仅仅是学习语法。
猜你喜欢
  • 2013-10-05
  • 1970-01-01
  • 2020-09-02
  • 1970-01-01
  • 2021-05-16
  • 1970-01-01
  • 2017-09-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多