ruby 矩形的对角线

ruby diagonal of a rectangle

我正在尝试创建一种方法,将 returns 对角线的长度 rectangle/square 作为浮点数。但是,我的方法 diagonal 似乎没有按预期工作。我想我遇到了障碍,想看看你们中是否有人对我如何解决这个问题有想法。

class Rectangle

  def initialize(width, length)
    @width  = width
    @length = length
  end

  def perimeter
    2*(@length + @width)
  end

  def area
      @length * @width
  end

  def diagonal
    # measure = Math.hypot(@length, @width)
    measure = (@length.to_f ** 2) + (@width.to_f ** 2)
    measure.hypot(@length, @width)
  end

end

问题好像出在这里:

def diagonal
    # measure = Math.hypot(@length, @width)
    measure = (@length.to_f ** 2) + (@width.to_f ** 2)
    measure.hypot(@length, @width)
end

您似乎开始尝试使用毕达哥拉斯的方法自己计算长度,但随后尝试对浮点数调用 hypot 方法。您有两个选择:

def diagonal
  Math.hypot(@length, @width)
end

def diagonal
    Math.sqrt((@length.to_f ** 2) + (@width.to_f ** 2))
end