Rubyでオブジェクトを生成した時に実行されるinitializeについて

他の言語でのコンストラクタに相当するinitializeは、newによってオブジェクトを生成する時に実行される。

class Message
def initialize
@name = "Tom"
end
def hello
puts "Hello #{@name}"
end
end
msg = Message.new
msg.hello
# Hello Tom

initializeで引数を受け取ることもできる

class Message
def initialize(name)
@name = name
end
def hello
puts "Hello #{@name}"
end
end
msg = Message.new("Jane")
msg.hello
# Hello Jane

引数を忘れるとこのようにエラーが発生する

msg = Message.new()
msg.hello
# example.rb:3:in `initialize': wrong number of arguments (0 for 1) (ArgumentError)
#   from example.rb:12:in `new'
#   from example.rb:12:in `<main>'

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA