遇到Array.each时遇到以下错误:'语法错误,意外的keyword_end,期望输入结束'

时间:2016-01-18 16:27:51

标签: arrays ruby syntax each keyword

我对Ruby很新,因为我正在学习它作为Stockfighter计划的一部分(https://www.stockfighter.io)。我正在尝试将它们与那里的API联系起来,过去我对此没有任何问题,所以我认为我的问题与我的getAverage函数有关,该函数应该是值数组,将值加在一起,然后除以数组的长度,这样我就可以得到这个模拟股票市场的每股平均价格。具体来说,我遇到了这样的错误:

/Users/Kai/Dropbox/Kai/Stockfighter/level_three_selling.rb:41: syntax error, unexpected keyword_do_block, expecting keyword_end
        averageArr.each do |i|
                          ^
/Users/Kai/Dropbox/Kai/Stockfighter/level_three_selling.rb:51: warning: else without rescue is useless
/Users/Kai/Dropbox/Kai/Stockfighter/level_three_selling.rb:53: syntax error, unexpected keyword_end, expecting end-of-input

我查看了我的代码中的错误,但找不到任何错误。我想我只需要第二双眼睛就能找到遗漏的东西。也许我在某个地方错过end或者我的语法错了。我以前从来没有遇到过这个问题,而且我已经在StackOverflow和其他地方挖了一些,但是大多数其他与我类似的错误给出了令人困惑的答案,这对我这样的新手来说毫无意义。

require 'rubygems'
require 'httparty'
require 'json'

apikey = 'MY_KEY_IS_HERE'
venue = "VENUEX"
stock = "FOOBAR"

base_url = "https://api.stockfighter.io/ob/api"

account = "MY_ACCOUNT_IS_HERE"

averageArr = []

counter = 0


def getQuote(stock, venue, account)

    response = HTTParty.get("https://api.stockfighter.io/ob/api/venues/#{venue}/stocks/#{stock}/quote")

    orderbook = response.parsed_response

    puts orderbook["ok"]

    return orderbook["last"]
    puts orderbook["lastTrade"]

end


def getAverage(stock, venue, account)

    averageArr.push(getQuote(stock, venue, account))
    counter ++

    if counter >= 5

        sum = 0

        #FIRST ERROR POINTS TO HERE
        averageArr.each do |i|
            sum += i
        end

        return sum/5

    else

        return 'WAITING'

    #SECOND ERROR POINTS HERE
    end
#THIRD ERROR POINTS HERE
end

1 个答案:

答案 0 :(得分:0)

++不是Ruby运算符。你应该使用

counter += 1

getAverage方法的第二行。