Bird
Raised Fist0
Rubyprogramming~10 mins

Why hashes are used everywhere in Ruby - Test Your Understanding

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to create a hash with a key 'name' and value 'Ruby'.

Ruby
person = { :name => [1] }
Drag options to blanks, or click blank then click option'
A"Ruby"
BRuby
C:Ruby
Dname
Attempts:
3 left
💡 Hint
Common Mistakes
Forgetting to put quotes around string values.
Using a symbol instead of a string for the value.
2fill in blank
medium

Complete the code to access the value of the key :age from the hash.

Ruby
person = { age: 25 }
age = person[[1]]
Drag options to blanks, or click blank then click option'
Aage
B"age"
C:age
D25
Attempts:
3 left
💡 Hint
Common Mistakes
Using a string "age" instead of symbol :age.
Using the value 25 instead of the key.
3fill in blank
hard

Fix the error in the code to add a new key-value pair :city => 'Tokyo' to the hash.

Ruby
person = { name: "Ruby" }
person[1] = "Tokyo"
Drag options to blanks, or click blank then click option'
A.city
B[:city]
Ccity
Attempts:
3 left
💡 Hint
Common Mistakes
Using dot notation which is invalid for hashes.
Using the key without brackets.
4fill in blank
hard

Fill both blanks to create a hash with keys :a and :b and values 1 and 2.

Ruby
numbers = { [1]: 1, [2]: 2 }
Drag options to blanks, or click blank then click option'
Aa
B1
Cb
D2
Attempts:
3 left
💡 Hint
Common Mistakes
Using numbers as keys instead of symbols.
Putting quotes around keys.
5fill in blank
hard

Fill all three blanks to create a hash with keys :x, :y and values 10, 20, and access the value of :y.

Ruby
coords = { [1]: [2], [3]: 20 }
y_value = coords[:y]
Drag options to blanks, or click blank then click option'
Ax
B10
Cy
D20
Attempts:
3 left
💡 Hint
Common Mistakes
Mixing up keys and values.
Using strings instead of symbols for keys.

Practice

(1/5)
1. Why are hashes used everywhere in Ruby?
easy
A. Because they only store numbers efficiently
B. Because they store data as key-value pairs for easy access
C. Because they are the only data structure in Ruby
D. Because they automatically sort data alphabetically

Solution

  1. Step 1: Understand what hashes store

    Hashes store data as pairs where each key points to a value, making it easy to find information.
  2. Step 2: Recognize why this is useful in Ruby

    This key-value structure helps organize data clearly and access it quickly, which is why hashes are popular.
  3. Final Answer:

    Because they store data as key-value pairs for easy access -> Option B
  4. Quick Check:

    Hashes = key-value pairs [OK]
Hint: Hashes connect keys to values for easy data lookup [OK]
Common Mistakes:
  • Thinking hashes only store numbers
  • Believing hashes are the only Ruby data structure
  • Assuming hashes sort data automatically
2. Which of the following is the correct syntax to create a hash in Ruby?
easy
A. my_hash = { name: 'Alice', age: 30 }
B. my_hash = [ 'name' => 'Alice', 'age' => 30 ]
C. my_hash = ( name: 'Alice', age: 30 )
D. my_hash = < name: 'Alice', age: 30 >

Solution

  1. Step 1: Identify Ruby hash syntax

    Ruby hashes use curly braces {} with key-value pairs separated by commas. Keys can be symbols like :name.
  2. Step 2: Check each option

    my_hash = { name: 'Alice', age: 30 } uses correct curly braces and symbol keys. Others use wrong brackets or invalid syntax.
  3. Final Answer:

    my_hash = { name: 'Alice', age: 30 } -> Option A
  4. Quick Check:

    Curly braces and symbol keys = correct hash syntax [OK]
Hint: Use curly braces and colons for keys in Ruby hashes [OK]
Common Mistakes:
  • Using square brackets instead of curly braces
  • Using parentheses instead of braces
  • Using angle brackets which are invalid
3. What will be the output of this Ruby code?
person = { name: 'Bob', age: 25 }
puts person[:name]
medium
A. 25
B. name
C. nil
D. Bob

Solution

  1. Step 1: Understand the hash and key access

    The hash stores :name with value 'Bob' and :age with 25. Accessing person[:name] retrieves 'Bob'.
  2. Step 2: Check the puts output

    puts prints the value of person[:name], which is 'Bob'.
  3. Final Answer:

    Bob -> Option D
  4. Quick Check:

    person[:name] = 'Bob' [OK]
Hint: Access hash values by keys with square brackets [OK]
Common Mistakes:
  • Confusing key with value
  • Using string keys instead of symbol keys
  • Expecting the key name to print
4. Find the error in this Ruby code using a hash:
settings = { theme: 'dark', font_size: 12 }
puts settings['theme']
medium
A. Missing comma between key-value pairs
B. Hash keys must be strings, not symbols
C. Using string key instead of symbol key causes nil output
D. Syntax error due to missing curly braces

Solution

  1. Step 1: Check hash keys and access method

    The hash uses symbol keys (:theme), but the code tries to access with a string key ('theme').
  2. Step 2: Understand the result of wrong key type

    Accessing with a string key returns nil because the keys don't match.
  3. Final Answer:

    Using string key instead of symbol key causes nil output -> Option C
  4. Quick Check:

    Symbol keys need symbol access [OK]
Hint: Match key types exactly when accessing hashes [OK]
Common Mistakes:
  • Mixing string and symbol keys
  • Assuming keys auto-convert types
  • Ignoring nil return on missing keys
5. You want to store user info with keys :name, :age, and :email. Which hash usage best supports easy updates and clear code?
hard
A. user = { name: 'Eve', age: 28, email: 'eve@example.com' }
B. user = [ 'name' => 'Eve', 'age' => 28, 'email' => 'eve@example.com' ]
C. user = { 'name', 'Eve', 'age', 28, 'email', 'eve@example.com' }
D. user = ( name: 'Eve', age: 28, email: 'eve@example.com' )

Solution

  1. Step 1: Identify correct hash syntax for storing key-value pairs

    user = { name: 'Eve', age: 28, email: 'eve@example.com' } uses a hash with symbol keys and values inside curly braces, which is clear and easy to update.
  2. Step 2: Evaluate other options for correctness and clarity

    user = [ 'name' => 'Eve', 'age' => 28, 'email' => 'eve@example.com' ] uses array syntax incorrectly, C is invalid syntax, and D uses parentheses which is not valid for hashes.
  3. Final Answer:

    user = { name: 'Eve', age: 28, email: 'eve@example.com' } -> Option A
  4. Quick Check:

    Curly braces with symbol keys = best practice [OK]
Hint: Use curly braces and symbol keys for clear, update-friendly hashes [OK]
Common Mistakes:
  • Using arrays instead of hashes
  • Incorrect syntax with parentheses
  • Mixing key-value pairs without proper separators
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