Method Arguments
Default Arguments
Default argument values let callers omit common options.
default argument
A default argument is used when the caller does not provide a value for that parameter.
Default Arguments
default_arguments.rb
Replay: real traced execution (multi-file project)
def greeting(name, prefix = "Hello")
"#{prefix}, #{name}"
end
prefix = "Hello"
name = "Ruby"
default_message = greeting(name)
custom_message = greeting(name, prefix)
puts "default=#{default_message}"
puts "custom=#{custom_message}"
def greeting(name, prefix = "Hello")
"#{prefix}, #{name}"
end
prefix = "Hi"
name = "Ruby"
default_message = greeting(name)
custom_message = greeting(name, prefix)
puts "default=#{default_message}"
puts "custom=#{custom_message}"
def greeting(name, prefix = "Hello")
"#{prefix}, #{name}"
end
prefix = "Welcome"
name = "Ruby"
default_message = greeting(name)
custom_message = greeting(name, prefix)
puts "default=#{default_message}"
puts "custom=#{custom_message}"
prefix ← Hello, name ← Ruby, default_message ← Hello, Ruby, custom_message ← Hello, Ruby
5prefix→ Hello = "Hello" #@prefix="Hi", "Welcome"6name→ Ruby = "Ruby"78default_message→ Hello, Ruby = greeting(nameRuby)9custom_message→ Hello, Ruby = greeting(nameRuby, prefixHello)1011puts "default=#{default_messageHello, Ruby}"12puts "custom=#{custom_messageHello, Ruby}"outputdefault=Hello, Ruby custom=Hello, Ruby
prefix ← Hi, name ← Ruby, default_message ← Hello, Ruby, custom_message ← Hi, Ruby
5prefix→ Hi = "Hi"6name→ Ruby = "Ruby"78default_message→ Hello, Ruby = greeting(nameRuby)9custom_message→ Hi, Ruby = greeting(nameRuby, prefixHi)1011puts "default=#{default_messageHello, Ruby}"12puts "custom=#{custom_messageHi, Ruby}"outputdefault=Hello, Ruby custom=Hi, Ruby
prefix ← Welcome, name ← Ruby, default_message ← Hello, Ruby, custom_message ← Welcome, Ruby
5prefix→ Welcome = "Welcome"6name→ Ruby = "Ruby"78default_message→ Hello, Ruby = greeting(nameRuby)9custom_message→ Welcome, Ruby = greeting(nameRuby, prefixWelcome)1011puts "default=#{default_messageHello, Ruby}"12puts "custom=#{custom_messageWelcome, Ruby}"outputdefault=Hello, Ruby custom=Welcome, Ruby