A parameter with a default value is a method parameter that has a preset value. If no argument is given when calling the method, Ruby uses this default value.
Click to reveal answer
beginner
How do you define a method with a default parameter in Ruby?
You assign a value to the parameter in the method definition, like def greet(name = "Friend"). If no argument is passed, "Friend" is used.
Click to reveal answer
beginner
What happens if you call a Ruby method with a default parameter and provide an argument?
The provided argument replaces the default value for that call. The method uses the argument you give instead of the default.
Click to reveal answer
intermediate
Can you mix parameters with and without default values in Ruby methods?
Yes, you can. Parameters without default values should come first, followed by those with default values to avoid errors.
Click to reveal answer
beginner
Example: What does this method print?
def say(message = "Hello")
puts message
end
say
say("Hi")
It prints:
Hello
Hi
First call uses the default "Hello". Second call uses the argument "Hi".
Click to reveal answer
In Ruby, how do you set a default value for a method parameter?
ABy setting the value inside the method body
BBy assigning a value in the method definition, like <code>def m(param = 5)</code>
CBy calling the method with no arguments
DBy using a global variable
✗ Incorrect
Default values are set by assigning them in the method definition parameters.
What happens if you call a Ruby method with a default parameter but provide an argument?
AThe default value is ignored and the argument is used
BAn error occurs
CThe method uses the default value anyway
DThe method ignores the argument
✗ Incorrect
The argument you provide replaces the default value for that call.
Which order should parameters be in when mixing default and non-default values in Ruby?
ADefault parameters first, then non-default
BOnly default parameters are allowed
COrder does not matter
DNon-default parameters first, then default parameters
✗ Incorrect
Non-default parameters must come before default parameters to avoid syntax errors.
What will this Ruby code print?
def greet(name = "Guest")
puts "Hi, #{name}!"
end
greet("Alice")
AHi, Alice!
BHi, Guest!
CHi, !
DError
✗ Incorrect
The argument "Alice" replaces the default "Guest".
Why are default parameters useful in Ruby methods?
AThey force all arguments to be provided
BThey make methods slower
CThey allow methods to be called with fewer arguments
DThey prevent method calls
✗ Incorrect
Default parameters let you skip arguments and still have meaningful values.
Explain how to use parameters with default values in Ruby methods and why they are helpful.
Think about how you can make a method flexible with fewer required inputs.
You got /4 concepts.
Describe the correct order of parameters when mixing default and non-default values in Ruby methods and why order matters.
Consider how Ruby matches arguments to parameters.
You got /4 concepts.
Practice
(1/5)
1. What does a default parameter value in a Ruby method do? def greet(name = "Guest")
easy
A. It causes a syntax error if the argument is missing.
B. It makes the parameter mandatory every time the method is called.
C. It changes the method name automatically.
D. It allows the method to be called without that argument, using the default instead.
Solution
Step 1: Understand default parameter purpose
Default parameters provide a fallback value if no argument is given.
Step 2: Apply to the example method
In def greet(name = "Guest"), if no name is passed, "Guest" is used.
Final Answer:
It allows the method to be called without that argument, using the default instead. -> Option D
Quick Check:
Default parameter = fallback value [OK]
Hint: Default means optional argument with fallback value [OK]
Common Mistakes:
Thinking default parameters are mandatory
Assuming missing arguments cause errors
Confusing default values with method overloading
2. Which of the following is the correct syntax to define a method with a default parameter in Ruby?
easy
A. def add(a, b = 5); a + b; end
B. def add(a =, b 5); a + b; end
C. def add(a, b: 5); a + b; end
D. def add(a, b); b = 5; a + b; end
Solution
Step 1: Review Ruby default parameter syntax
Default values are set with = value after the parameter name.
Step 2: Check each option
def add(a, b = 5); a + b; end uses b = 5 correctly. def add(a =, b 5); a + b; end has invalid syntax. def add(a, b: 5); a + b; end uses keyword argument style, not default parameter. def add(a, b); b = 5; a + b; end assigns inside method body, not default parameter.
Final Answer:
def add(a, b = 5); a + b; end -> Option A
Quick Check:
Default param syntax = param = value [OK]
Hint: Use = after parameter name for default values [OK]
Common Mistakes:
Using colon instead of equals for default values
Placing = before parameter name
Assigning default inside method body instead of parameter list
3. What is the output of this Ruby code?
def multiply(x, y = 2)
x * y
end
puts multiply(4)
puts multiply(4, 3)
medium
A. 8\n12
B. 4\n7
C. Error: missing argument
D. 6\n12
Solution
Step 1: Analyze method calls with default parameter
First call: multiply(4) uses default y=2, so 4*2=8. Second call: multiply(4,3) uses y=3, so 4*3=12.
Step 2: Determine output of puts statements
Outputs are printed on separate lines: 8 then 12.
Final Answer:
8
12 -> Option A
Quick Check:
Default param used when missing = 8, explicit param = 12 [OK]
Hint: Default used if argument missing, else given value [OK]
Common Mistakes:
Expecting error when argument is missing
Confusing default parameter with keyword arguments
Mixing up output values
4. Identify the error in this Ruby method definition:
def greet(name = "Guest", age)
"Hello #{name}, you are #{age} years old."
end
medium
A. Method name cannot be 'greet' with parameters.
B. Missing return statement causes error.
C. Default parameters must come after non-default parameters.
D. String interpolation syntax is incorrect.
Solution
Step 1: Check parameter order rules in Ruby
Parameters with default values must be placed after parameters without defaults.
Step 2: Analyze given method signature
Here, name has default, but age does not and comes after. This causes syntax error.
Final Answer:
Default parameters must come after non-default parameters. -> Option C
Quick Check:
Default params after required params [OK]
Hint: Put default params after required ones [OK]
Common Mistakes:
Placing default parameters before required ones
Assuming return statement is mandatory
Misreading string interpolation syntax
5. You want to define a method order that takes a product name and an optional quantity with default 1. Which is the best way to define it to allow calling order("apple") and order("apple", 5)?
hard
A. def order(product = "apple", quantity); "Order #{quantity} #{product}(s)"; end
B. def order(product, quantity = 1); "Order #{quantity} #{product}(s)"; end
C. def order(quantity = 1, product); "Order #{quantity} #{product}(s)"; end
D. def order(product, quantity); quantity ||= 1; "Order #{quantity} #{product}(s)"; end
Solution
Step 1: Identify correct parameter order and defaults
Required parameters come first, then optional with default values.
Step 2: Evaluate each option
def order(product, quantity = 1); "Order #{quantity} #{product}(s)"; end correctly places product first and quantity with default 1 second. def order(product = "apple", quantity); "Order #{quantity} #{product}(s)"; end has default before required, invalid. def order(quantity = 1, product); "Order #{quantity} #{product}(s)"; end swaps order incorrectly. def order(product, quantity); quantity ||= 1; "Order #{quantity} #{product}(s)"; end assigns default inside method but requires both arguments.
Final Answer:
def order(product, quantity = 1); "Order #{quantity} #{product}(s)"; end -> Option B
Quick Check:
Required first, default second = def order(product, quantity = 1); "Order #{quantity} #{product}(s)"; end [OK]
Hint: Put required params first, defaults after [OK]
Common Mistakes:
Placing default parameter before required
Assigning default inside method body instead of parameter list
Confusing parameter order
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.