Bird
Raised Fist0
Rubyprogramming~5 mins

Method naming conventions (? and ! suffixes) in Ruby - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does a method name ending with a ? usually indicate in Ruby?
It indicates that the method returns a boolean value (true or false), often used for predicate methods that ask a question about an object.
Click to reveal answer
beginner
What is the purpose of a method name ending with a ! in Ruby?
It signals that the method is "dangerous" or performs its action in a more surprising or destructive way, often modifying the object in place.
Click to reveal answer
intermediate
Can a method have both ? and ! suffixes in Ruby?
No, Ruby does not allow method names to end with both ? and ! at the same time.
Click to reveal answer
beginner
Why should you use ? suffix only for methods that return boolean values?
Because it helps other programmers understand that the method answers a yes/no question, improving code readability and intention clarity.
Click to reveal answer
intermediate
Give an example of a Ruby method with a ! suffix and explain its behavior.
Example: upcase! modifies the string in place to uppercase letters, unlike upcase which returns a new string without changing the original.
Click to reveal answer
What does a Ruby method ending with ? usually return?
AA boolean value (true or false)
BA modified object
CAn error message
DA string
What does the ! suffix in a Ruby method name usually warn about?
AThe method is slow
BThe method modifies the object or is dangerous
CThe method returns a boolean
DThe method is deprecated
Which of these is a valid Ruby method name?
Adangerous_method!
Bvalid_method?
Ccheck_method?!
Dmethod!?
Why is it important to follow the ? and ! naming conventions in Ruby?
ATo make code run faster
BTo make methods private
CTo improve code readability and communicate method behavior
DTo avoid syntax errors
What does the method empty? typically check in Ruby?
AIf a number is zero
BIf an object is nil
CIf a method is dangerous
DIf a collection or string has no elements or characters
Explain the difference between Ruby methods ending with ? and those ending with !.
Think about how these suffixes help communicate what the method does.
You got /4 concepts.
    Why is it helpful to use ? and ! suffixes in method names when writing Ruby code?
    Consider how naming conventions affect teamwork and maintenance.
    You got /4 concepts.

      Practice

      (1/5)
      1. Which method name follows Ruby convention for a method that returns a boolean value?
      ? is used at the end of method names that return true or false.
      easy
      A. save
      B. update!
      C. calculate
      D. valid?

      Solution

      1. Step 1: Understand the meaning of ? suffix

        In Ruby, methods ending with ? return true or false, indicating a boolean check.
      2. Step 2: Identify the method that returns a boolean

        Among the options, valid? clearly suggests a boolean check, while others do not.
      3. Final Answer:

        valid? -> Option D
      4. Quick Check:

        Boolean methods end with ? = valid? [OK]
      Hint: Boolean methods end with ? to show true/false result [OK]
      Common Mistakes:
      • Confusing ! with ? suffix
      • Using ? for methods that modify objects
      • Not using ? for boolean-returning methods
      2. Which of the following method names is correctly written to indicate it modifies the object in Ruby?
      easy
      A. delete
      B. delete!
      C. delete?
      D. deleted

      Solution

      1. Step 1: Understand the meaning of ! suffix

        In Ruby, methods ending with ! usually modify the object or perform a 'dangerous' action.
      2. Step 2: Identify the method that modifies the object

        delete! clearly indicates modification, while delete may not, and delete? suggests a boolean check.
      3. Final Answer:

        delete! -> Option B
      4. Quick Check:

        Modification methods end with ! = delete! [OK]
      Hint: Use ! for methods that change the object [OK]
      Common Mistakes:
      • Using ? instead of ! for modifying methods
      • Not adding ! for dangerous methods
      • Confusing method names without suffixes
      3. What will be the output of this Ruby code?
      class User
        def active?
          true
        end
      
        def deactivate!
          @active = false
          "User deactivated"
        end
      end
      
      user = User.new
      puts user.active?
      puts user.deactivate!
      puts user.active?
      medium
      A. true User deactivated true
      B. true User deactivated false
      C. false User deactivated false
      D. true User deactivated nil

      Solution

      1. Step 1: Analyze the active? method

        This method always returns true because it returns the literal true without checking any variable.
      2. Step 2: Analyze the deactivate! method and second active? call

        deactivate! sets @active = false but active? does not use @active, so it still returns true.
      3. Final Answer:

        true User deactivated true -> Option A
      4. Quick Check:

        active? returns true always = true User deactivated true [OK]
      Hint: Check if boolean method uses instance variables or fixed return [OK]
      Common Mistakes:
      • Assuming deactivate! changes active? output
      • Confusing method side effects
      • Ignoring method return values
      4. Identify the error in this Ruby method definition:
      def save?
        # saves the object
        puts "Saving..."
        true
      end

      What is wrong with this method name?
      medium
      A. Method name cannot contain ?
      B. Method should end with ! instead of ?
      C. Method ends with ? but performs an action, not a boolean check
      D. No error, method is correct

      Solution

      1. Step 1: Understand the meaning of ? suffix

        Methods ending with ? should return true or false and not perform side effects like saving.
      2. Step 2: Analyze the method behavior

        This method prints "Saving..." which is a side effect, so it should not end with ?.
      3. Final Answer:

        Method ends with ? but performs an action, not a boolean check -> Option C
      4. Quick Check:

        Methods with ? should not have side effects [OK]
      Hint: ? means boolean check, not side effects [OK]
      Common Mistakes:
      • Using ? for methods that change state
      • Ignoring method side effects
      • Confusing ! and ? suffix meanings
      5. You want to write a Ruby method that checks if a string is empty and also a method that clears the string content. Which method names follow Ruby conventions?
      hard
      A. empty? and clear!
      B. empty! and clear?
      C. empty and clear!
      D. empty? and clear

      Solution

      1. Step 1: Identify boolean check method

        The method checking if a string is empty should return true or false, so it should end with ?, e.g., empty?.
      2. Step 2: Identify modifying method

        The method that clears the string modifies it, so it should end with !, e.g., clear!.
      3. Final Answer:

        empty? and clear! -> Option A
      4. Quick Check:

        Boolean check ends with ?; modifying method ends with ! [OK]
      Hint: Boolean methods end with ?; modifying methods end with ! [OK]
      Common Mistakes:
      • Swapping ? and ! suffixes
      • Not using suffixes for clarity
      • Using no suffix for modifying methods
      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