Bird
Raised Fist0
Rubyprogramming~5 mins

Spaceship operator (<=>) in Ruby - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the spaceship operator (<=>) do in Ruby?
It compares two values and returns -1 if the left is less, 0 if equal, and 1 if the left is greater.
Click to reveal answer
beginner
What is the return value of 5 <=> 10 in Ruby?
It returns -1 because 5 is less than 10.
Click to reveal answer
intermediate
How can the spaceship operator help in sorting arrays?
It provides a simple way to define custom comparison logic for sorting by returning -1, 0, or 1.
Click to reveal answer
beginner
What will be the result of 'apple' <=> 'banana' in Ruby?
It returns -1 because 'apple' comes before 'banana' alphabetically.
Click to reveal answer
advanced
Can the spaceship operator be used with custom objects in Ruby?
Yes, by defining the <=> method inside the object's class to specify how to compare instances.
Click to reveal answer
What does the spaceship operator (<=>) return when the left value is greater than the right?
A0
B-1
Cnil
D1
Which of these is a valid use of the spaceship operator in Ruby?
A5 => 3
B5 <=> 3
C5 =< 3
D5 ==< 3
What does the spaceship operator return if two values are equal?
A0
B1
C-1
Dnil
How can the spaceship operator be used in sorting an array?
ABy replacing the sort method
BBy using it as a method to reverse the array
CBy providing a block that returns <=> between elements
DBy converting elements to strings
What happens if you use the spaceship operator on objects without defining <=> method?
AIt returns nil
BIt returns 0
CIt raises an error
DIt always returns 1
Explain how the spaceship operator (<=>) works in Ruby and give an example.
Think about how it tells if one value is less, equal, or greater than another.
You got /3 concepts.
    Describe how you can use the spaceship operator to sort an array with custom objects.
    Custom objects need a way to compare themselves for sorting.
    You got /3 concepts.

      Practice

      (1/5)
      1.

      What does the Ruby spaceship operator <=> return when comparing two values?

      easy
      A. true if left is smaller, false if equal, nil if left is bigger
      B. -1 if left is smaller, 0 if equal, 1 if left is bigger
      C. The sum of both values
      D. A boolean indicating if values are equal

      Solution

      1. Step 1: Understand the spaceship operator purpose

        The spaceship operator compares two values and returns an integer indicating their order.
      2. Step 2: Recall the return values

        It returns -1 if the left value is smaller, 0 if both are equal, and 1 if the left is bigger.
      3. Final Answer:

        -1 if left is smaller, 0 if equal, 1 if left is bigger -> Option B
      4. Quick Check:

        Spaceship operator returns -1, 0, or 1 [OK]
      Hint: Remember: -1 smaller, 0 equal, 1 bigger [OK]
      Common Mistakes:
      • Confusing return values with booleans
      • Thinking it returns a sum or boolean
      • Mixing up which side is compared
      2.

      Which of the following is the correct syntax to compare a and b using the spaceship operator in Ruby?

      ?
      easy
      A. a => b
      B. a =< b
      C. a <= b
      D. a <=> b

      Solution

      1. Step 1: Identify the spaceship operator syntax

        The spaceship operator is written as <=> between two values.
      2. Step 2: Match the correct syntax

        Only a <=> b uses the correct operator symbol and order.
      3. Final Answer:

        a <=> b -> Option D
      4. Quick Check:

        Correct operator is <=> [OK]
      Hint: Look for <=> exactly between variables [OK]
      Common Mistakes:
      • Using => which is a hash rocket
      • Using <= or =< which are comparison operators
      • Swapping operator symbols incorrectly
      3.

      What is the output of the following Ruby code?

      puts 5 <=> 10
      puts 10 <=> 10
      puts 15 <=> 10
      medium
      A. false true false
      B. 1 0 -1
      C. -1 0 1
      D. 10 10 10

      Solution

      1. Step 1: Evaluate each comparison

        5 <=> 10 returns -1 because 5 is smaller than 10.
        10 <=> 10 returns 0 because both are equal.
        15 <=> 10 returns 1 because 15 is bigger than 10.
      2. Step 2: Confirm output lines

        Each puts prints the result on a new line, so output is three lines: -1, 0, 1.
      3. Final Answer:

        -1 0 1 -> Option C
      4. Quick Check:

        5 < 10 = -1, equal = 0, 15 > 10 = 1 [OK]
      Hint: Remember: smaller = -1, equal = 0, bigger = 1 [OK]
      Common Mistakes:
      • Mixing up the order of output
      • Expecting boolean true/false instead of -1,0,1
      • Confusing <=> with < or > operators
      4.

      Identify the error in this Ruby code snippet using the spaceship operator:

      result = 7 <=>
      3
      puts result
      medium
      A. Syntax error due to line break in operator
      B. Returns nil because 7 and 3 are not comparable
      C. Returns 1 as expected
      D. Runtime error due to undefined variable

      Solution

      1. Step 1: Check operator usage across lines

        The spaceship operator <=> must be on the same line between operands; splitting it causes syntax error.
      2. Step 2: Understand Ruby syntax rules

        Ruby does not allow breaking operators across lines without proper continuation, so this code raises a syntax error.
      3. Final Answer:

        Syntax error due to line break in operator -> Option A
      4. Quick Check:

        Operators must not be split across lines [OK]
      Hint: Keep <=> on one line between values [OK]
      Common Mistakes:
      • Splitting operator across lines
      • Assuming nil return for invalid syntax
      • Confusing runtime errors with syntax errors
      5.

      Given the array arr = [3, 1, 4, 1, 5], which code snippet correctly sorts the array in descending order using the spaceship operator?

      hard
      A. arr.sort { |a, b| b <=> a }
      B. arr.sort { |a, b| a == b }
      C. arr.sort_by { |x| x <=> 0 }
      D. arr.sort { |a, b| a <=> b }

      Solution

      1. Step 1: Understand sorting with spaceship operator

        The block compares two elements a and b. To sort descending, compare b to a.
      2. Step 2: Analyze each option

        arr.sort { |a, b| a <=> b } sorts ascending (a <=> b).
        arr.sort { |a, b| b <=> a } sorts descending (b <=> a).
        arr.sort_by { |x| x <=> 0 } misuses sort_by with spaceship operator.
        arr.sort { |a, b| a == b } returns boolean, invalid for sorting.
      3. Final Answer:

        arr.sort { |a, b| b <=> a } -> Option A
      4. Quick Check:

        Reverse order uses b <=> a [OK]
      Hint: Reverse order: swap a and b in <=> [OK]
      Common Mistakes:
      • Using a <=> b for descending sort
      • Misusing sort_by with spaceship operator
      • Returning boolean instead of integer in block
      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