gpt4 book ai didi

ruby-on-rails - 如何使用 Ruby 访问多态性中的变量?

转载 作者:数据小太阳 更新时间:2023-10-29 08:25:49 29 4
gpt4 key购买 nike

我正在尝试访问每个多态方法中的 size 变量。当我运行代码时,出现以下错误:

examples.rb:181:in `calculate_area': undefined method `/' for nil:NilClass (NoMethodError)
from examples.rb:175:in `calculate_area'
from examples.rb:199:in `<main>'

我已经尝试过无数次黑客攻击,但还没有想出一个好的解决方案。这是下面的代码。

class Shape    

attr_accessor :size

def calculate_area(shape_type)
shape_type.calculate_area
end
end

class Circle < Shape
def calculate_area
return Math::PI * (size / 2) * (size / 2)
end
end

class Square < Shape
def calculate_area
return size * size
end
end

class Triangle < Shape
def calculate_area
return 0.5 * (size * 2) * size
end
end

shape = Shape.new
shape.size = 5
puts shape.calculate_area(Circle.new)
puts shape.calculate_area(Square.new)
puts shape.calculate_area(Triangle.new)

最佳答案

您以错误的方式运行它。您应该创建具体形状的实例,然后调用它们的方法:

[8] pry(main)> circle = Circle.new
=> #<Circle:0x0000563ed7328770>
[9] pry(main)> circle.size = 5
=> 5
[10] pry(main)> circle.calculate_area
=> 12.566370614359172

关于ruby-on-rails - 如何使用 Ruby 访问多态性中的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56932538/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com