Los objetos de la clase Symbol representan los nombres presentes dentro del intérprete de Ruby. Por lo general, se generan usando la sintaxis literal :name o usando los métodos to_sym . Los objetos Symbol similares se crean para una string de nombre dada durante la ejecución de un programa, independientemente del contenido y el significado del nombre.
Ejemplo:
# 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
Producción:
1675428 1675428 1675428
Explicación: si Max es una constante en context1, un método en context2 o una clase en context3, entonces este :Max será el mismo objeto en todos los contextos dados.
Método de clase
all_symbols : este método devuelve una array de símbolos que actualmente están presentes en la tabla de símbolos de Ruby.
Symbol.all_symbols
Ejemplo:
# 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]
Producción:
3250 " # $ % & ' ( ) * + , - . / : ; < = > ?
Métodos de instancia
- id2name: este método devuelve una string que es una representación de sym .
sym.id2name
Ejemplo:
# Ruby program to illustrate
# the use of id2name method
# Using id2name method
p :Geeks.id2name
p :
"Welcome to GeeksforGeeks Portal"
.id2name
Producción:
"Geeks" "Welcome to GeeksforGeeks Portal"
- inspeccionar: este método devuelve la representación de sym en forma de símbolo literal.
sym.inspect
Ejemplo:
# Ruby program to illustrate
# the use of inspect method
# Using inspect method
p
:geeks
.inspect
p :
"welcome to geeksforgeeks portal"
.inspect
Producción:
":geeks" ":\"welcome to geeksforgeeks portal\""
- to_s : este método es similar a Symbol#id2name. Este método devuelve el nombre o una string que corresponde a sym .
sym.to_s
Ejemplo:
# 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
Producción:
"geeks" "welcome to geeksforgeeks portal"
- <=> : Compara sym con other_sym después de llamar a to_s. Devuelve -1 si sym es menor que other_sym , devuelve 0 si sym es igual a other_sym , o devuelve +1 si sym es mayor que other_sym .
sym <=> other_sym
Ejemplo:
# 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
Producción:
-1 0 1
- == : Devuelve verdadero si sym es igual a obj , de lo contrario devuelve falso.
sym== obj
Ejemplo:
# Ruby program to illustrate
# use of ==
# Using ==
a=
:geeks
b = :
"welcome to geeksforgeeks portal"
puts a==b
c=
:geeks
puts a==c
Producción:
false true
- []: este método devuelve el valor de sym.to_s[].
sym[idx] --> char sym[b, n] --> string
- capitalize : este método es similar a Symbol#to_s.
sym.capitalize
- casecmp : este método es una versión que no distingue entre mayúsculas y minúsculas del símbolo <=$gt;. Devolverá -1, 0, 1 o cero. Se trabaja en AZ/az, no en todos los Unicode. En este método, se devuelve nil cuando los dos símbolos tienen codificaciones incompatibles o si other_sym no es un símbolo.
sym.casecmp(other)
Ejemplo:
# 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
)
Producción:
0 1 -1 nil
- downcase: este método convierte las letras mayúsculas en minúsculas.
sym.downcase
Ejemplo:
# Ruby program to illustrate
# use of the downcase method
# Using the downcase method
puts :
"WELCOME TO GEEKSFORGEEKS"
.downcase
Producción:
:"welcome to geeksforgeeks"
- longitud: este método devuelve la longitud del símbolo dado .
sym.length
Ejemplo:
# Ruby program to illustrate
# use of length method
# Using length method
puts :GeeKsGfg.length
Producción:
8
- slice : este método es similar a Symbol#to_s . Este método le proporciona caracteres en el índice dado del sym .
sym.slice(index) sym.slice(b, n)
Ejemplo:
# Ruby program to illustrate
# use of slice method
# Using slice method
p :GeeKsGfg.slice(
3
)
p :GeeKsGfg.slice(
6
)
Producción:
"K" "f"
- swapcase: Este método intercambia las mayúsculas y minúsculas de los caracteres que se presentan en sym . En otras palabras, convierte minúsculas en mayúsculas y mayúsculas en minúsculas.
sym.swapcase
Ejemplo:
# Ruby program to illustrate
# use of the swapcase method
# Using swapcase method
p
"WELcome TO geeksFORGEEKS"
.swapcase
Producción:
"welCOME to GEEKSforgeeks"
- upcase : este método convierte los caracteres en minúsculas en mayúsculas.
sym.upcase
Ejemplo:
# Ruby program to illustrate
# use of the upcase method
# Using upcase method
p
"welcome to geeksforgeeks"
.upcase
Producción:
"WELCOME TO GEEKSFORGEEKS"
- to_proc: este método devuelve un objeto Proc que responde al método dado por sym .
sym.to_proc
Ejemplo:
# Ruby program to illustrate
# use of to_proc method
# Using to_proc method
p (
1
..
5
).collect(&
:to_s
)
Producción:
["1", "2", "3", "4", "5"]
- to_sym Este método devuelve un símbolo que corresponde a un objeto. Aquí sym ya ha sido un símbolo, por lo que en este caso lo devuelve.
sym.to_sym
Referencia: https://ruby-doc.org/core-2.5.0/Symbol.html#method-i-5B-5D
Publicación traducida automáticamente
Artículo escrito por ankita_saini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA