我在大学上课,要求学生学习三种语言 一个学期。就像一个来自真正古老的语言,如Haskell,另一个应该来自翻译语言。
所以,现在我必须学习Ruby,我需要帮助。让我们说有课有
class Help
@@array = Array.new
@@count = 0
@store
@chocolate
@candy
@store_code
让我们考虑一下add
函数并将其调用两次
def add (s, i, i, i)
array = [s, i, i, i]
count += 1
end
store_a = Help.new
store_a.add (A, 20, 1, 100)
store_b = Help.new
store_b.add (B, 50, 1, 100)
无论如何,store_a巧克力价格是20
store_b巧克力价格现在是50
如何在课堂内制作计算巧克力价格平均值的功能? (我为此制作了计数变量,但我不知道我是否需要它。)
答案 0 :(得分:1)
这可以重构并缩短,也可以使用类似于你在问题中提到的类变量使用" @@",但我的目标是保持基本,这样你才能开始抓住它并慢慢转向更先进的技术和设计:
class Warehouse
attr_accessor :products_stores
def initialize
@products_stores = []
end
def add_product(args)
@products_stores << args
end
def product_price_avg
avg = 0
@products_stores.each do |o|
avg += o[:product].price
end
avg / @products_stores.count
end
end
class Store
attr_accessor :code
def initialize(code)
@code = code
end
end
class Chocolate
attr_accessor :price
def initialize(price)
@price = price
end
end
store_a = Store.new(100)
store_b = Store.new(200)
cheap_chocolate = Chocolate.new(20)
expensive_chocolate = Chocolate.new(50)
warehouse = Warehouse.new
warehouse.add_product({store: store_a, product: cheap_chocolate})
warehouse.add_product({store: store_b, product: expensive_chocolate})
puts warehouse.product_price_avg