Bird
Raised Fist0
Rubyprogramming~5 mins

Keyword arguments in Ruby - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What are keyword arguments in Ruby?
Keyword arguments are a way to pass arguments to a method by explicitly naming them, making the code easier to read and arguments easier to manage.
Click to reveal answer
beginner
How do you define a method with keyword arguments in Ruby?
You define keyword arguments by listing them with colons in the method parameters, like def greet(name:, age:).
Click to reveal answer
intermediate
What happens if you call a method with keyword arguments but omit one required keyword?
Ruby raises an ArgumentError because the method expects all required keyword arguments to be provided.
Click to reveal answer
intermediate
How can you provide default values for keyword arguments in Ruby?
You assign a default value in the method definition like def greet(name:, age: 18). If the caller omits age, it uses 18.
Click to reveal answer
beginner
What is the benefit of using keyword arguments over positional arguments?
Keyword arguments improve code readability and reduce errors by clearly naming each argument, so the order does not matter.
Click to reveal answer
How do you call a Ruby method def order(item:, quantity:) with keyword arguments?
Aorder('apple', 3)
Border(item: 'apple', quantity: 3)
Corder('item' => 'apple', 'quantity' => 3)
Dorder(item = 'apple', quantity = 3)
What error occurs if a required keyword argument is missing when calling a method?
ATypeError
BNoMethodError
CSyntaxError
DArgumentError
How do you set a default value for a keyword argument in Ruby?
Adef method(arg: 5)
Bdef method(arg:)
Cdef method(arg => 5)
Ddef method(arg = 5)
Which is a benefit of keyword arguments?
AThey allow arguments to be passed in any order.
BThey require fewer lines of code.
CThey automatically convert types.
DThey make methods run faster.
What is the correct way to define a method with two required keyword arguments name and age?
Adef method(name, age)
Bdef method(name =, age =)
Cdef method(name:, age:)
Ddef method(name =>, age =>)
Explain how keyword arguments improve method calls in Ruby.
Think about how naming each argument helps when calling methods.
You got /4 concepts.
    Describe how to define keyword arguments with default values and what happens if you omit them when calling the method.
    Look at how to assign values in the method definition.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the purpose of keyword arguments in Ruby methods?
      easy
      A. To convert all arguments into strings automatically
      B. To force all arguments to be passed in order
      C. To make arguments optional without default values
      D. To allow passing arguments by name for clarity and flexibility

      Solution

      1. Step 1: Understand keyword arguments

        Keyword arguments let you pass values to a method by naming them, not just by position.
      2. Step 2: Identify the benefit

        This makes code clearer and lets you skip or reorder arguments easily.
      3. Final Answer:

        To allow passing arguments by name for clarity and flexibility -> Option D
      4. Quick Check:

        Keyword arguments = named, clear, flexible [OK]
      Hint: Keyword arguments are named for clarity and order freedom [OK]
      Common Mistakes:
      • Thinking keyword arguments force order
      • Confusing keyword arguments with positional arguments
      • Assuming keyword arguments convert types automatically
      2. Which of the following is the correct syntax to define a method with keyword arguments in Ruby?
      easy
      A. def greet(name =>, age =>); puts "Hello #{name}, you are #{age}"; end
      B. def greet(name, age); puts "Hello #{name}, you are #{age}"; end
      C. def greet(name:, age:); puts "Hello #{name}, you are #{age}"; end
      D. def greet(name =:, age =:); puts "Hello #{name}, you are #{age}"; end

      Solution

      1. Step 1: Review Ruby keyword argument syntax

        Keyword arguments are defined with a colon after the argument name, like name:.
      2. Step 2: Check each option

        def greet(name:, age:); puts "Hello #{name}, you are #{age}"; end uses correct syntax with name: and age:. Others use invalid symbols or positional arguments.
      3. Final Answer:

        def greet(name:, age:); puts "Hello #{name}, you are #{age}"; end -> Option C
      4. Quick Check:

        Keyword args use colon after name [OK]
      Hint: Keyword args end with colon in method definition [OK]
      Common Mistakes:
      • Using => instead of : for keyword arguments
      • Defining keyword arguments without colons
      • Confusing positional and keyword argument syntax
      3. What will be the output of the following Ruby code?
      def info(name:, age: 30)
        "Name: #{name}, Age: #{age}"
      end
      
      puts info(name: "Alice")
      medium
      A. Name: Alice, Age: 30
      B. Name: Alice, Age:
      C. ArgumentError: missing keyword: age
      D. Name: , Age: 30

      Solution

      1. Step 1: Analyze method parameters

        The method info has a required keyword argument name: and an optional keyword argument age: with default 30.
      2. Step 2: Check method call

        The call passes name: "Alice" but no age, so default 30 is used.
      3. Final Answer:

        Name: Alice, Age: 30 -> Option A
      4. Quick Check:

        Default keyword argument used when missing [OK]
      Hint: Missing keyword uses default if provided [OK]
      Common Mistakes:
      • Expecting error when optional keyword is missing
      • Confusing positional defaults with keyword defaults
      • Ignoring default values in keyword arguments
      4. Identify the error in the following Ruby method call:
      def order(item:, quantity:)
        "Order: #{quantity} x #{item}"
      end
      
      puts order(quantity: 3, "apple")
      medium
      A. ArgumentError: missing keyword: item
      B. SyntaxError due to positional argument after keyword argument
      C. No error, prints 'Order: 3 x apple'
      D. TypeError: wrong argument type String (expected Symbol)

      Solution

      1. Step 1: Examine method call arguments

        The call uses quantity: 3 (keyword) then "apple" (positional).
      2. Step 2: Understand Ruby argument rules

        In Ruby, positional arguments cannot come after keyword arguments in a call; this causes a syntax error.
      3. Final Answer:

        SyntaxError due to positional argument after keyword argument -> Option B
      4. Quick Check:

        Positional args must come before keyword args [OK]
      Hint: Positional args cannot follow keyword args in calls [OK]
      Common Mistakes:
      • Passing positional argument after keyword argument
      • Assuming Ruby allows mixed order without error
      • Confusing missing keyword with syntax error
      5. Given this method:
      <pre>def build_profile(name:, age:, city: "Unknown", **extras) profile = {name: name, age: age, city: city} profile.merge!(extras) profile end What will be the result of build_profile(name: "Bob", age: 25, hobby: "guitar", pet: "dog")?
      hard
      A. {:name=>"Bob", :age=>25, :city=>"Unknown", :hobby=>"guitar", :pet=>"dog"}
      B. {:name=>"Bob", :age=>25, :city=>"Unknown"}
      C. ArgumentError: unknown keyword: hobby
      D. {:name=>"Bob", :age=>25, :city=>"Unknown", :extras=>{:hobby=>"guitar", :pet=>"dog"}}

      Solution

      1. Step 1: Understand method parameters

        The method requires name and age, has optional city with default, and collects extra keyword arguments into extras.
      2. Step 2: Analyze method call

        The call passes name, age, and extra keywords hobby and pet. These extras are merged into the profile hash.
      3. Step 3: Determine final hash

        The returned hash includes all keys: name, age, default city, plus hobby and pet from extras.
      4. Final Answer:

        {:name=>"Bob", :age=>25, :city=>"Unknown", :hobby=>"guitar", :pet=>"dog"} -> Option A
      5. Quick Check:

        Extras merged into hash with defaults [OK]
      Hint: Use **extras to capture and merge extra keyword args [OK]
      Common Mistakes:
      • Expecting error on unknown keywords with **extras
      • Forgetting to merge extras into profile
      • Assuming extras stored under :extras key
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard