Bird
Raised Fist0
Rubyprogramming~10 mins

Symbol type and immutability in Ruby - Interactive Code Practice

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

Complete the code to create a symbol named :apple.

Ruby
fruit = [1]
Drag options to blanks, or click blank then click option'
A'apple'
B:apple
Capple
D"apple"
Attempts:
3 left
💡 Hint
Common Mistakes
Using quotes creates a string, not a symbol.
Leaving out the colon creates a variable or method name.
2fill in blank
medium

Complete the code to check if two symbols are the same object.

Ruby
puts :cat.[1] :cat
Drag options to blanks, or click blank then click option'
A!=
B==
Ceql?
Dequal?
Attempts:
3 left
💡 Hint
Common Mistakes
Using == checks value equality but not object identity.
Using != is for inequality.
3fill in blank
hard

Fix the error in the code to convert a string to a symbol.

Ruby
sym = "dog".[1]
Drag options to blanks, or click blank then click option'
Ato_sym!
Bto_s
Cto_sym
Dto_str
Attempts:
3 left
💡 Hint
Common Mistakes
Using to_s returns a string, not a symbol.
There is no to_sym! method.
4fill in blank
hard

Fill both blanks to create a hash with symbol keys and access a value.

Ruby
person = { [1] => "Alice", [2] => 30 }
age = person[:age]
Drag options to blanks, or click blank then click option'
A:name
B:age
C"age"
D"name"
Attempts:
3 left
💡 Hint
Common Mistakes
Using strings as keys when symbols are expected.
Mixing symbol and string keys inconsistently.
5fill in blank
hard

Fill all three blanks to demonstrate symbol immutability and comparison.

Ruby
sym1 = :car
sym2 = :car
puts sym1 [1] sym2
puts sym1.object_id [2] sym2.object_id
# Trying to change symbol (will cause error)
sym3 = :bike
# sym3 [3] "cycle" # Uncommenting causes error
Drag options to blanks, or click blank then click option'
A==
B!=
D=
Attempts:
3 left
💡 Hint
Common Mistakes
Using inequality operators when equality is expected.
Trying to modify a symbol with methods like replace which do not exist.

Practice

(1/5)
1.

What is a key characteristic of a Ruby Symbol?

easy
A. It is immutable and unique for the same name
B. It can be changed after creation
C. It stores large amounts of data
D. It behaves like a string with spaces

Solution

  1. Step 1: Understand what a Symbol is

    A Symbol in Ruby is a name or label that is immutable, meaning it cannot be changed once created.
  2. Step 2: Recognize uniqueness of Symbols

    Two Symbols with the same name always refer to the same object, making them unique and memory efficient.
  3. Final Answer:

    It is immutable and unique for the same name -> Option A
  4. Quick Check:

    Symbol = immutable and unique [OK]
Hint: Symbols never change and are unique by name [OK]
Common Mistakes:
  • Thinking symbols can be modified like strings
  • Confusing symbols with regular strings
  • Assuming symbols store large data
  • Believing symbols allow spaces like strings
2.

Which of the following is the correct way to write a Ruby symbol?

?
easy
A. 'my_symbol'
B. "my_symbol"
C. my_symbol
D. :my_symbol

Solution

  1. Step 1: Identify symbol syntax in Ruby

    Symbols are written with a colon : followed by a name without quotes.
  2. Step 2: Compare options

    Only :my_symbol uses the correct symbol syntax; others are strings or invalid.
  3. Final Answer:

    :my_symbol -> Option D
  4. Quick Check:

    Symbol syntax = colon + name [OK]
Hint: Symbols start with a colon : followed by name [OK]
Common Mistakes:
  • Using quotes around symbols
  • Writing symbols without colon
  • Confusing symbols with strings
  • Using invalid characters in symbol names
3.

What will be the output of the following Ruby code?

sym1 = :apple
sym2 = :apple
puts sym1.object_id == sym2.object_id
medium
A. false
B. nil
C. true
D. SyntaxError

Solution

  1. Step 1: Understand symbol object identity

    Symbols with the same name share the same object_id because they are unique and immutable.
  2. Step 2: Compare object_ids of sym1 and sym2

    Both :apple symbols point to the same object, so their object_ids are equal, making the comparison true.
  3. Final Answer:

    true -> Option C
  4. Quick Check:

    Same symbol = same object_id [OK]
Hint: Same symbol names share object_id, so comparison is true [OK]
Common Mistakes:
  • Assuming different symbols have different object_ids
  • Confusing symbols with strings which differ
  • Expecting false because of separate variables
  • Thinking symbols are mutable objects
4.

Find the error in this Ruby code snippet:

sym = :hello
sym << " world"
puts sym
medium
A. Symbols can be changed with << operator
B. Symbols cannot be concatenated with <<
C. Syntax error in symbol declaration
D. Missing quotes around symbol

Solution

  1. Step 1: Check symbol mutability

    Symbols are immutable, so you cannot change them or add to them with operators like <<.
  2. Step 2: Identify the error in code

    The line sym << " world" tries to modify the symbol, which causes a runtime error.
  3. Final Answer:

    Symbols cannot be concatenated with << -> Option B
  4. Quick Check:

    Symbols are immutable, no << allowed [OK]
Hint: Symbols cannot be changed or concatenated [OK]
Common Mistakes:
  • Trying to modify symbols like strings
  • Assuming symbols can be concatenated
  • Confusing syntax errors with runtime errors
  • Using << operator on immutable objects
5.

Given the following code, what will be the output?

hash = { apple: 1, banana: 2 }
key = :apple
hash[key] = 3
puts hash[:apple]

Consider the immutability and identity of symbols in your answer.

hard
A. 3
B. 1
C. nil
D. KeyError

Solution

  1. Step 1: Understand symbol keys in hash

    Symbols used as keys are immutable and unique, so :apple and key (which is :apple) refer to the same key.
  2. Step 2: Update hash value for :apple

    Assigning hash[key] = 3 updates the value for the :apple key from 1 to 3.
  3. Step 3: Output the updated value

    puts hash[:apple] prints the updated value 3.
  4. Final Answer:

    3 -> Option A
  5. Quick Check:

    Symbol keys are unique, so value updates correctly [OK]
Hint: Symbol keys are unique; updating key changes value [OK]
Common Mistakes:
  • Thinking key is different because of variable
  • Expecting original value 1 instead of updated 3
  • Confusing symbols with strings as keys
  • Assuming symbols can be duplicated in hash keys
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