尝试调用库存对象上的closePrice方法时,没有任何内容正在打印出来。但是,当前评论的代码有效。我如何迭代StockList数组并调用我的Stock对象的closePrice方法?调用数组中对象的方法
class Stock
attr_reader :date, :open, :high, :low, :close, :adjClose, :volume
def initialize(date, open, high, low, close, adjClose, volume)
@date = date
@open = open
@high = high
@low = low
@close = close
@adjClose = adjClose
@volume = volume
end
def closePrice
"Close price: #{@close}"
end
end
class StockList < Array
def initialize()
@stockList = []
end
def addStock(stock)
@stockList.push(stock)
end
end
stocks = Array.new
stockList = StockList.new()
CSV.foreach(fileName) do |stock|
entry = Stock.new(stock[0], stock[1], stock[2], stock[3], stock[4], stock[5], stock[6])
stocks.push(entry)
stockList.addStock(entry)
end
# stocks.each do |stock|
# puts stock.closePrice
# end
stockList.each do |stock|
puts stock.closePrice
end
难道是缺少链接吗?只从Ruby开始。谢谢。
此代码应该工作。有一点需要注意的是,Ruby强烈建议您将变量和方法名称都命名为“close_price”。大写保留给常量和类/模块名称。另外,'new'方法需要一些荒谬的参数。你应该引导一个包含所有相关值的散列。 – tadman