0

誰かがこのコードが機能しない理由を説明してもらえますか? Rubyについてはまだよく知らないので、助けていただければ幸いです。に構文エラーがあると表示されますputs multi[is]:

syntax error, unexpected tIDENTIFIER, expecting keyword_do or '{' or '<' puts multi[is]

コードは次のとおりです。

        # multi = Array.new
        # multi[0] = Array.new(2, 'hello') 
        # # multi[1] = Array.new(2, 'world')
        # puts(multi[0])
        # puts(multi[1])

        multi = ['hest','hund','kat','fugl'] # names of animals
        for i in multi # convert to 
          is = i.to_i
          is++
          # puts(i. inspect
          puts multi[is]   # her i have error says  syntax error, unexpected tIDENTIFIER, expecting keyword_do or '{' or '<' puts
          multi[is]
        end


        food = Array.new # a new arry

        # 0 milk  names for food
        # 1 ost
        # 2 kod
        # 3 ris
4

2 に答える 2

3

is++エラーの原因はあなたです。それを書くだけis+=1です。Ruby には--or++ 演算子はありません。

ドキュメントから直接:

Ruby には前後のインクリメント/デクリメント演算子はありません。たとえば、x++ または x-- は解析に失敗します。さらに重要なことに、++x または --x は何もしません! 実際、これらは複数の単項前置演算子として動作します: -x == ---x == -----x == ...... 数値をインクリメントするには、単純に x += 1 と記述します。

私はいくつかの変更を加えてあなたのコードを書き直しました:

multi = ['hest','hund','kat','fugl'] # names of animals
index=-1
for name in multi
  p "#{name} at #{index+=1}"
end
# >> "hest at 0"
# >> "hund at 1"
# >> "kat at 2"
# >> "fugl at 3"
于 2013-10-20T19:02:07.600 に答える