Open In App

Ruby | Symbol Class

Last Updated : 11 Jul, 2025
Suggest changes
Share
Like Article
Like
Report
The objects of the Symbol class represent the names present inside the Ruby interpreter. They are usually generated by using :name literal syntax or by using to_sym methods. The similar Symbol objects are created for a given name string for the duration of a program's execution, regardless of the content and meaning of the name. Example: Ruby
# Ruby program to illustrate  # Symbol objects # context 3 module Geeks1 class Max end $a1 = :Max end # context 1 module Geeks2 Max = 1 $a2 = :Max end # context 2 def Max() end $a3 = :Max puts $a1.object_id  puts $a2.object_id  puts $a3.object_id  
Output:
 1675428 1675428 1675428 
Explanation: If Max is a constant in context1, a method in context2, or class in the context3, then this :Max will be the same object in all given contexts.

Class Method

all_symbols : This method returns an array of symbols that currently present in the Ruby's symbol table.
Symbol.all_symbols
Example: Ruby
# Ruby program to illustrate  # the use of all_symbol method # Using all_symbol method puts Symbol.all_symbols.size  puts Symbol.all_symbols[1, 20] 
Output:
 3250 " # $ % & ' ( ) * + , - . / : ; < = > ? 

Instance Methods

  1. id2name : This method returns a string that is representation of sym.
    sym.id2name
    Example: Ruby
    # Ruby program to illustrate  # the use of id2name method # Using id2name method p :Geeks.id2name  p :"Welcome to GeeksforGeeks Portal".id2name 
    Output:
     "Geeks" "Welcome to GeeksforGeeks Portal" 
  2. inspect : This method return the representation of sym in the form of symbol literal.
    sym.inspect
    Example: Ruby
    # Ruby program to illustrate  # the use of inspect method # Using inspect method p :geeks.inspect p :"welcome to geeksforgeeks portal".inspect 
    Output:
     ":geeks" ":\"welcome to geeksforgeeks portal\"" 
  3. to_s : This method is similar to Symbol#id2name. This method returns the name or a string that corresponding to sym.
    sym.to_s
    Example: Ruby
    # Ruby program to illustrate  # the use of to_s method # Using to_s method p :geeks.to_s p :"welcome to geeksforgeeks portal".to_s 
    Output:
     "geeks" "welcome to geeksforgeeks portal" 
  4. <=> :It compares sym to other_sym after calling to_s. It returns -1 if sym is less than other_sym, it returns 0 if sym is equal to other_sym, or it returns +1 if sym is greater than other_sym.
    sym <=> other_sym 
    Example: Ruby
    # Ruby program to illustrate  # use of <=> # Using <=> a= :geeks b = :"welcome to geeksforgeeks portal" puts a<=>b c= :geeks puts a<=>c puts b<=>a 
    Output:
     -1 0 1 
  5. == : It returns true if the sym is equal to obj, otherwise it return false.
    sym== obj
    Example: Ruby
    # Ruby program to illustrate  # use of == # Using == a= :geeks b = :"welcome to geeksforgeeks portal" puts a==b c= :geeks puts a==c 
    Output:
     false true 
  6. [] : This method returns the value of sym.to_s[].
     sym[idx] --> char sym[b, n] --> string 
  7. capitalize : This method is similar to Symbol#to_s.
    sym.capitalize
  8. casecmp : This method is case-insensitive version of symbol <=$gt;. It will return -1, 0, 1, or nil. It is worked on A-Z/a-z, not on all Unicode. In this method nil is returned when the two symbols have incompatible encodings or if other_sym is not a symbol.
    sym.casecmp(other)
    Example: Ruby
    # Ruby program to illustrate  # use of casecmp method # Using casecmp method puts :GeeKs.casecmp(:geeks) puts :GeeKsGfg.casecmp(:geeksG) puts :GeeKsGfg.casecmp(:geeksGfgz) puts :GeeKsGfg.casecmp(3) 
    Output:
     0 1 -1 nil
  9. downcase : This method converts upper-case letters in lower-case.
    sym.downcase
    Example: Ruby
    # Ruby program to illustrate  # use of the downcase method # Using the downcase method puts :"WELCOME TO GEEKSFORGEEKS".downcase 
    Output:
    :"welcome to geeksforgeeks"
  10. length : This method returns the length of the given sym.
    sym.length
    Example: Ruby
    # Ruby program to illustrate  # use of length method # Using length method puts :GeeKsGfg.length 
    Output:
    8
  11. slice : This method is similar to Symbol#to_s. This method provides you character on the given index from the sym .
     sym.slice(index) sym.slice(b, n) 
    Example: Ruby
    # Ruby program to illustrate  # use of slice method # Using slice method p :GeeKsGfg.slice(3) p :GeeKsGfg.slice(6) 
    Output:
     "K" "f" 
  12. swapcase : This method interchange the case of the characters that present in sym. In other words, it converts lower-case into upper-case and upper-case into lower-case.
    sym.swapcase
    Example: Ruby
    # Ruby program to illustrate  # use of the swapcase method # Using swapcase method p "WELcome TO geeksFORGEEKS".swapcase 
    Output:
    "welCOME to GEEKSforgeeks"
  13. upcase : This method converts lower-case characters into upper-case.
    sym.upcase
    Example: Ruby
    # Ruby program to illustrate  # use of the upcase method # Using upcase method p "welcome to geeksforgeeks".upcase 
    Output:
    "WELCOME TO GEEKSFORGEEKS"
  14. to_proc : This method return a Proc object which answer to the given method by sym.
    sym.to_proc
    Example: Ruby
    # Ruby program to illustrate  # use of to_proc method # Using to_proc method p (1..5).collect(&:to_s) 
    Output:
     ["1", "2", "3", "4", "5"]
  15. to_sym This method returns a symbol that corresponding to an object. Here sym has been already a symbol, so in this case it returns it.
    sym.to_sym
Reference: https://ruby-doc.org/core-2.5.0/Symbol.html#method-i-5B-5D

Explore