1

私はプログラミングに比較的慣れておらず、Ruby にはさらに慣れていないため、repl.it Ruby インタープリターを使用してコードをテストしています。ただし、ループを含む複数の関数定義を入力しようとするたびに、同じ問題に何度も遭遇しました。必然的に次のようなエラー メッセージが表示されます。

(eval):350: (eval):350: コンパイル エラー (SyntaxError)

(eval):344: 構文エラー、予期しない kDO_COND、kEND が必要です

(eval):350: 構文エラー、予期しない kEND、$end が必要です

問題の内容とこれを回避する方法を知っている人はいますか? 私のコードは codepad で問題なく動作するように見えるので、それ自体はコード エラーのようには見えません。しかし、この特定のインタープリターを使用して、申請中のプログラムのコードをテストするように言われました。

これが私のコードです(文字列を逆にするために書いた2つの異なる方法をテストしています.1つはその場で、もう1つは新しい出力リストを使用しています):

def reverse(s)
    #start by breaking the string into words
    words = s.split
    #initialize an output list
    reversed = []
    # make a loop that executes until there are no more words to reverse
    until words.empty?
       reversed << words.pop.reverse 
    end
    # return a string of the reversed words joined by spaces
    return reversed = reversed.join(' ')
end

def reverse_string(s)
    # create an array of words and get the length of that array
    words = s.split
    count = words.count #note - must be .length for codepad's older Ruby version
    #For each word, pop it from the end and insert the reversed version at the beginning
    count.times do
        reverse_word = words.pop.reverse

        words.unshift(reverse_word)
    end
    #flip the resulting word list and convert it to a string 
    return words.reverse.join(' ') 
end

a = "This is an example string"

puts reverse(a)
puts reverse_string(a)
4

1 に答える 1