Bird
Raised Fist0
Rubyprogramming~5 mins

Block parameters in Ruby

Choose your learning style10 modes available
Introduction

Block parameters let you give names to values passed into a block. This helps you use those values inside the block easily.

When you want to work with each item in a list inside a block.
When you want to pass values from a method to a block and use them.
When you want to write reusable code that works with different inputs.
When you want to make your code clearer by naming the values inside a block.
Syntax
Ruby
collection.each do |parameter1, parameter2|
  # code using parameter1 and parameter2
end

Block parameters go between vertical bars | | right after do or {.

You can have one or more parameters separated by commas.

Examples
This example uses one block parameter num to double each number.
Ruby
numbers = [1, 2, 3]
numbers.each do |num|
  puts num * 2
end
This example uses two block parameters number and word to access each pair's elements.
Ruby
pairs = [[1, 'one'], [2, 'two']]
pairs.each do |number, word|
  puts "#{number} means #{word}"
end
Sample Program

This program prints a sentence for each fruit using a block parameter named fruit.

Ruby
fruits = ['apple', 'banana', 'cherry']
fruits.each do |fruit|
  puts "I like #{fruit}s"
end
OutputSuccess
Important Notes

If you forget block parameters, you can't access the values inside the block.

You can use either do |params| ... end or curly braces { |params| ... } for blocks.

Summary

Block parameters name the values passed into a block.

They go inside | | after do or {.

Use them to work with each item or value inside the block.

Practice

(1/5)
1.

What are block parameters in Ruby?

Choose the best description.

easy
A. Variables inside | | that receive values passed to the block.
B. Methods that define how a block works.
C. Special keywords to start a block.
D. Constants used only outside blocks.

Solution

  1. Step 1: Understand block parameters role

    Block parameters are variables placed inside | | after do or { to receive values passed into the block.
  2. Step 2: Compare options with definition

    Only Variables inside | | that receive values passed to the block. correctly describes block parameters as variables inside | | that get values passed to the block.
  3. Final Answer:

    Variables inside | | that receive values passed to the block. -> Option A
  4. Quick Check:

    Block parameters = variables inside | | [OK]
Hint: Block parameters are always inside | | after do or { [OK]
Common Mistakes:
  • Confusing block parameters with methods
  • Thinking block parameters are keywords
  • Assuming block parameters are constants
2.

Which of the following is the correct syntax for block parameters in Ruby?

array.each do ?
easy
A. [item] puts item
B. (item) puts item
C. |item| puts item
D. {item} puts item

Solution

  1. Step 1: Recall block parameter syntax

    Block parameters are placed inside vertical bars | | after do or {.
  2. Step 2: Match syntax with options

    Only |item| puts item uses |item| which is the correct syntax for block parameters.
  3. Final Answer:

    |item| puts item -> Option C
  4. Quick Check:

    Block parameters use | | [OK]
Hint: Block parameters always go inside | | after do or { [OK]
Common Mistakes:
  • Using parentheses () instead of | |
  • Using curly braces {} for parameters
  • Using square brackets [] for parameters
3.

What is the output of this Ruby code?

numbers = [1, 2, 3]
numbers.each do |n|
  puts n * 2
end
medium
A. 2 4 6
B. 1 2 3
C. Error: undefined variable n
D. nil

Solution

  1. Step 1: Understand the block parameter usage

    The block parameter n takes each element from the array numbers one by one.
  2. Step 2: Calculate output for each element

    For each n, the code prints n * 2. So outputs are 2, 4, and 6 on separate lines.
  3. Final Answer:

    2 4 6 -> Option A
  4. Quick Check:

    Each number doubled = 2,4,6 [OK]
Hint: Block parameter holds each item; multiply inside block [OK]
Common Mistakes:
  • Confusing block parameter with array variable
  • Expecting original numbers printed
  • Thinking block parameter is undefined
4.

Find the error in this Ruby code:

fruits = ['apple', 'banana']
fruits.each do fruit|
  puts fruit
end
medium
A. Block parameter should be in parentheses
B. Missing closing | after block parameter
C. No error, code runs fine
D. Missing opening | before block parameter

Solution

  1. Step 1: Check block parameter syntax

    Block parameters must be enclosed inside vertical bars | |. Here, only the closing bar is present.
  2. Step 2: Identify missing part

    The opening | before fruit is missing, causing a syntax error.
  3. Final Answer:

    Missing opening | before block parameter -> Option D
  4. Quick Check:

    Block parameters need both | | [OK]
Hint: Block parameters always need both | at start and end [OK]
Common Mistakes:
  • Forgetting the opening |
  • Using parentheses instead of | |
  • Assuming code runs without |
5.

Given this code, what will be the output?

pairs = [[1, 2], [3, 4], [5, 6]]
pairs.each do |a, b|
  puts a + b
end
hard
A. [1, 2] [3, 4] [5, 6]
B. 3 7 11
C. Error: wrong number of block parameters
D. 1 3 5

Solution

  1. Step 1: Understand multiple block parameters

    The block parameters a and b receive each inner array's two elements separately.
  2. Step 2: Calculate sum for each pair

    For each pair, the code prints the sum: 1+2=3, 3+4=7, 5+6=11.
  3. Final Answer:

    3 7 11 -> Option B
  4. Quick Check:

    Sum of pairs = 3,7,11 [OK]
Hint: Use multiple block parameters to unpack arrays inside each [OK]
Common Mistakes:
  • Expecting array printed instead of sum
  • Thinking block parameters can't unpack arrays
  • Assuming syntax error with two parameters
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