📖 Scenario: You are creating a simple greeting card program that personalizes messages for different people.
🎯 Goal: Build a Ruby program that uses string interpolation with #{} to insert variables into strings.
📋 What You'll Learn
Create a variable with a person's name
Create a variable with a greeting message
Use string interpolation with #{} to combine the greeting and the name
Print the final personalized greeting
💡 Why This Matters
🌍 Real World
String interpolation is used in many programs to create dynamic messages, like emails, alerts, or reports personalized for each user.
💼 Career
Understanding string interpolation helps you write clear and efficient code for user interfaces, logging, and data display in software development jobs.
Progress0 / 4 steps
1
Create a variable with a person's name
Create a variable called name and set it to the string "Alice".
Ruby
Hint
Use = to assign the string "Alice" to the variable name.
2
Create a variable with a greeting message
Create a variable called greeting and set it to the string "Hello".
Ruby
Hint
Assign the string "Hello" to the variable greeting.
3
Use string interpolation to combine greeting and name
Create a variable called message and set it to a string that uses string interpolation with #{} to combine greeting and name with a space in between. For example: "Hello Alice".
Ruby
Hint
Use double quotes and #{} to insert variables inside the string.
4
Print the personalized greeting message
Write a puts statement to print the variable message.
Ruby
Hint
Use puts message to display the message on the screen.
Practice
(1/5)
1. What does the #{} syntax do inside a double-quoted string in Ruby?
easy
A. It inserts the value of the expression inside the braces into the string.
B. It comments out the code inside the braces.
C. It creates a new variable named after the expression inside the braces.
D. It escapes special characters inside the string.
Solution
Step 1: Understand string interpolation syntax
In Ruby, #{} inside double quotes allows inserting the value of Ruby expressions directly into the string.
Step 2: Recognize the purpose of #{}
This syntax evaluates the expression inside the braces and converts it to a string to include it in the larger string.
Final Answer:
It inserts the value of the expression inside the braces into the string. -> Option A
Quick Check:
#{expression} inserts value [OK]
Hint: Use #{ } inside double quotes to embed values [OK]
Common Mistakes:
Using #{ } inside single quotes expecting interpolation
Thinking #{ } comments out code
Confusing #{ } with variable declaration
2. Which of the following is the correct way to use string interpolation to insert the variable name into a string?
easy
A. "Hello, \#{name}!"
B. 'Hello, #{name}!'
C. "Hello, #{name}!"
D. "Hello, #name!"
Solution
Step 1: Identify correct string quotes for interpolation
Ruby only processes #{} interpolation inside double-quoted strings, not single-quoted.
Step 2: Check syntax correctness
"Hello, #{name}!" uses double quotes and #{name} correctly. 'Hello, #{name}!' uses single quotes, so no interpolation. "Hello, \#{name}!" escapes the #, so no interpolation. "Hello, #name!" misses braces, so no interpolation.
Final Answer:
"Hello, #{name}!" -> Option C
Quick Check:
Double quotes + #{variable} = interpolation [OK]
Hint: Use double quotes and #{variable} for interpolation [OK]
Common Mistakes:
Using single quotes which do not interpolate
Escaping # which disables interpolation
Omitting braces around variable
3. What is the output of the following Ruby code?
name = "Alice"
age = 30
puts "Name: #{name}, Age: #{age + 5}"
medium
A. Name: Alice, Age: age + 5
B. Name: Alice, Age: 30 + 5
C. Name: #{name}, Age: #{age + 5}
D. Name: Alice, Age: 35
Solution
Step 1: Evaluate expressions inside #{}
The variable name is "Alice" and age is 30. The expression age + 5 evaluates to 35.
Step 2: Construct the output string
The string becomes "Name: Alice, Age: 35" and is printed by puts.
Final Answer:
Name: Alice, Age: 35 -> Option D
Quick Check:
#{age + 5} calculates 35 [OK]
Hint: Expressions inside #{ } are evaluated before insertion [OK]
Common Mistakes:
Treating #{age + 5} as a string literal
Not evaluating arithmetic inside interpolation
Confusing output with raw code
4. Identify the error in this Ruby code snippet:
count = 10
puts "You have #{count messages}"
medium
A. Invalid expression inside #{}, spaces not allowed without operator
B. Missing operator inside #{}, should be #{count + ' messages'}
C. Syntax error due to missing closing brace
D. No error, code runs fine
Solution
Step 1: Analyze the expression inside #{}
The expression inside interpolation is count messages which is invalid syntax because Ruby expects a valid expression without spaces unless operators are used.
Step 2: Understand correct usage
To concatenate or combine, you need an operator like + or string interpolation with proper syntax, e.g., "#{count} messages".
Final Answer:
Invalid expression inside #{}, spaces not allowed without operator -> Option A
Quick Check:
#{expression} must be valid Ruby code [OK]
Hint: Expressions inside #{ } must be valid Ruby code without spaces [OK]
Common Mistakes:
Putting spaces without operators inside #{ }
Forgetting to close #{ } properly
Assuming interpolation works with invalid expressions
5. You want to create a greeting message that includes a user's name and the current year calculated dynamically. Which code correctly uses string interpolation to achieve this?
name = "Sam"
current_year = Time.now.year
# Choose the correct greeting message
hard
A. "Hello, #{name}! Welcome to current_year."
B. "Hello, #{name}! Welcome to #{current_year}."
C. 'Hello, #{name}! Welcome to #{current_year}.'
D. "Hello, name! Welcome to #{Time.now.year}."
Solution
Step 1: Check interpolation of variables
"Hello, #{name}! Welcome to #{current_year}." correctly uses double quotes and interpolates both name and current_year variables.
Step 2: Verify dynamic year calculation
"Hello, name! Welcome to #{Time.now.year}." uses Time.now.year inside interpolation but misses interpolating name properly (it's plain text). "Hello, #{name}! Welcome to current_year." treats current_year as plain text. 'Hello, #{name}! Welcome to #{current_year}.' uses single quotes, so no interpolation.
Final Answer:
"Hello, #{name}! Welcome to #{current_year}." -> Option B
Quick Check:
Double quotes + #{variable} for dynamic values [OK]
Hint: Use double quotes and #{variable} for dynamic strings [OK]
Common Mistakes:
Using single quotes which disable interpolation
Not interpolating variables properly
Confusing variable names with plain text
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.