Ruby | Symbol Class

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:

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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 

chevron_right


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:

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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]

chevron_right


Output:

3250
"
#
$
%
&
'
(
)
*
+
,
-
.
/
:
;
<
=
>
?

Instance Methods

  1. id2name : This method returns a string that is representation of sym.
    sym.id2name

    Example:

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    # Ruby program to illustrate 
    # the use of id2name method
      
    # Using id2name method
    p :Geeks.id2name 
    p :"Welcome to GeeksforGeeks Portal".id2name

    chevron_right

    
    

    Output:

    "Geeks"
    "Welcome to GeeksforGeeks Portal"
    
  2. inspect : This method return the representation of sym in the form of symbol literal.
    sym.inspect

    Example:

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    # Ruby program to illustrate 
    # the use of inspect method
      
    # Using inspect method
    p :geeks.inspect
    p :"welcome to geeksforgeeks portal".inspect

    chevron_right

    
    

    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:

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    # 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

    chevron_right

    
    

    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:

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    # 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

    chevron_right

    
    

    Output:

    -1
    0
    1
    
  5. == : It returns true if the sym is equal to obj, otherwise it return false.
    sym== obj

    Example:

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    # Ruby program to illustrate 
    # use of ==
      
    # Using ==
    a= :geeks
    b = :"welcome to geeksforgeeks portal"
    puts a==b
    c= :geeks
    puts a==c

    chevron_right

    
    

    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:

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    # 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)

    chevron_right

    
    

    Output:

    0
    1
    -1
    nil
  9. downcase : This method converts upper-case letters in lower-case.
    sym.downcase

    Example:

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    # Ruby program to illustrate 
    # use of the downcase method
      
    # Using the downcase method
    puts :"WELCOME TO GEEKSFORGEEKS".downcase

    chevron_right

    
    

    Output:

    :"welcome to geeksforgeeks"
  10. length : This method returns the length of the given sym.
    sym.length

    Example:

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    # Ruby program to illustrate 
    # use of length method
      
    # Using length method
    puts :GeeKsGfg.length

    chevron_right

    
    

    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:

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    # Ruby program to illustrate 
    # use of slice method
      
    # Using slice method
    p :GeeKsGfg.slice(3)
    p :GeeKsGfg.slice(6)

    chevron_right

    
    

    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:

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    # Ruby program to illustrate 
    # use of the swapcase method
      
    # Using swapcase method
    p "WELcome TO geeksFORGEEKS".swapcase

    chevron_right

    
    

    Output:

    "welCOME to GEEKSforgeeks"
  13. upcase : This method converts lower-case characters into upper-case.
    sym.upcase

    Example:

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    # Ruby program to illustrate 
    # use of the upcase method
      
    # Using upcase method
    p "welcome to geeksforgeeks".upcase

    chevron_right

    
    

    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:

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    # Ruby program to illustrate 
    # use of to_proc method
      
    # Using to_proc method
    p (1..5).collect(&:to_s)

    chevron_right

    
    

    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



My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.



Improved By : nidhi_biet



Article Tags :

Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.