Tag: 式强制

在Ruby中,coerce()实际上是如何工作的?

据说,当我们有一个类的Point并知道如何执行point * 3如下所示: class Point def initialize(x,y) @x, @y = x, y end def *(c) Point.new(@x * c, @y * c) end end point = Point.new(1,2) p point p point * 3 输出: #<Point:0x336094 @x=1, @y=2> #<Point:0x335fa4 @x=3, @y=6> 但是之后, 3 * point 不明白: Point不能被强制转换成Fixnum ( TypeError ) 所以我们需要进一步定义一个实例方法coerce : class Point def coerce(something) [self, […]