Lorsque vous essayez d'appeler la méthode closePrice sur l'objet stock, rien n'est imprimé. Cependant, le code actuellement commenté fonctionne. Comment puis-je parcourir le tableau StockList et appeler la méthode closePrice de mes objets Stock?Méthode d'appel d'un objet dans un tableau
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
Pourrait-il y avoir des liens manquants? Seulement en commençant par Ruby. Merci.
Ce code devrait fonctionner. Une chose à noter est que Ruby vous encourage fortement à nommer les variables et les noms de méthodes en minuscules comme 'close_price'. Les majuscules sont réservées aux constantes et aux noms de classe/module. De plus, cette méthode 'new' prend un nombre absurde d'arguments. Vous devriez vous diriger vers un hachage qui a toutes les valeurs associées. – tadman