написание метода сравнения - PullRequest
0 голосов
/ 03 октября 2011

я пытаюсь записать значение точки сравнения, например, 1,0 равно 1,0 (верно) это то, что я имею до сих пор. есть идеи?

class Point 

attr_reader :x, :y


    def initialize x,y
    @x =x
    @y =y
    end


def compare_point(x,y , a,b)   # used to compare points 

 if(x=a, y=b)

puts correct

else
puts wrong

 end
end

end


@current_location = Point.new 1,0


@start_location = Point.new 1,0

compare_point(@start_location,@current_location)

1 Ответ

3 голосов
/ 03 октября 2011
class Point
  attr_reader :x, :y

  def initialize(x, y)
    @x = x
    @y = y
  end

  def ==(another)
    [x, y] == [another.x, another.y]
  end
end

Point.new(1, 1) == Point.new(1, 1) #=> true
Point.new(1, 1) == Point.new(2, 1) #=> false

Обратите внимание, что если вы используете Struct , вы получите аксессоры и равенство бесплатно:

class Point < Struct.new(:x, :y)
  # other methods here
end
...