2

次のコードは、次のようなエラーを示しています。

"ruby -KU -- 'C:\Users\Ishmael\My Documents\Aptana Studio 3 Workspace\Simple\FirstFile'
C:/Users/Ishmael/My Documents/Aptana Studio 3 Workspace/Simple/FirstFile:55: syntax error, unexpected $end, expecting keyword_end"

余分な端と末尾の「。」を検索しましたが、無駄で、なぜそれが機能しないのか理解できません!

class Greeter
  attr_accessor :name

  def initialize(name="dudes")
    @name=name
  end

  def say_hi

    if @name.nil?
      puts "..."
    else if @name.respond_to?("each")

      @name.each do |name|
        puts "Hello #{name.capitalize}!"
      end

    else
      puts "Hi #{@name.capitalize}!"
    end

  end 

  def say_bye

    if @name.nil?
      puts "..."
    else if @name.respond_to?("join")
      puts 'Goodbye #{@name.join(", ").capitalize}! Come back soon!'
    else
      puts "Bye #{@name.capitalize}!"
    end

  end

end

if __FILE__ == $0

  greeter = Greeter.new
  greeter.say_hi
  greeter.say_bye

  greeter.name = "Ishmael"
  greeter.say_hi
  greeter.say_bye

  greeter.name = ["Albert", "Brenda", "Charles", "Dave", "Englebert"]
  greeter.say_hi
  greeter.say_bye

  greeter.name = nil
  greeter.say_hi
  greeter.say_bye
end
4

1 に答える 1

14

余分な について不平を言っているのではなくend、 が欠落しているため、ファイルの終了が早すぎますend。この場合、自分のif __FILE__ == $0パートの前にクラスを閉じるのを忘れています。

これはおそらく、まったく新しいブロックを作成する と混同elsifしたためです。else ifif

于 2012-11-21T19:23:21.537 に答える