ストックオブジェクトの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