本文へスキップ
BecomeCoder

Rubyのエラー · エラー9

SyntaxError ― endの対応が取れていない

Ruby は defifclass などのブロックを end で閉じます。end の数が足りない、または多いとパース段階で止まります。波かっこを使う言語からの移行者が特につまずきやすいエラーです。

出るコード

def greet(name)
  if name
    puts "Hello, #{name}"
  # if の end が無い
end

エラーメッセージ

syntax error, unexpected end-of-input, expecting 'end'

直し方

defifclassdo などの開始1つにつき end を1つ、必ず対応させます。エディタの対応関係ハイライト機能を使うと見つけやすいです。

def greet(name)
  if name
    puts "Hello, #{name}"
  end
end