我正在阅读红宝石镐书,我对创建有理数的语法感到困惑。
Rational(3,4) * Rational(1,2)
生产
=> 3/8
为什么new不需要该方法Rational(我也注意到例如我可以在没有新方法的情况下创建一个字符串)?
我正在阅读红宝石镐书,我对创建有理数的语法感到困惑。
Rational(3,4) * Rational(1,2)
生产
=> 3/8
为什么new不需要该方法Rational(我也注意到例如我可以在没有新方法的情况下创建一个字符串)?
一方面,Ruby 没有new关键字。new是所有类都拥有的类方法(它们从 继承它Class),它创建该类的对象。当你看到类似的东西时Rational(3,4),Rational实际上只是Object(定义在Kernel)的一个私有方法,它使得创建有理数更容易。有关这些构造方法的更多信息,请参阅我的答案:https ://stackoverflow.com/a/9677125/1008938
这是一个恰好与类同名的方法。这是 Ruby 中常见的转换习语。