English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Métodos de Ruby

Los métodos Ruby son similares a las funciones en otros lenguajes de programación. Los métodos Ruby se utilizan para agrupar una o más instrucciones repetidas en una unidad.

El nombre del método debe comenzar con una letra minúscula. Si begins con una letra mayúscula, Ruby podría considerarlo como una constante, lo que podría llevar a una interpretación incorrecta de la llamada.

El método debe definirse antes de que se llame, de lo contrario Ruby generará una excepción de llamada de método no definido.

,...)Se prohíbe el alias. La reescritura de variables globales integradas puede causar problemas graves.

def method_name[(arg[= default]]...[, * arg[, &expr]])]
   expr..
end

Por lo tanto, puedes definir un método simple, como se muestra a continuación:

def method_name 
   expr..
end

Puedes definir un método que acepte parámetros, como se muestra a continuación:

def method_name(var1, var2)
   expr..
end

Puedes asignar valores predeterminados a los parámetros, y si no se pasan los parámetros necesarios al llamar al método, se usarán los valores predeterminados:

def method_name(var1=value1, var2=value2)
   expr..
end

Cuando llames a un método, solo necesitas usar el nombre del método, como se muestra a continuación:

method_name

Pero, cuando llamas a un método con parámetros, también debes incluir los parámetros en el nombre del método, por ejemplo:

method_name 25, 30

La mayor desventaja de usar métodos con parámetros es que al llamar al método es necesario recordar la cantidad de parámetros. Por ejemplo, si le pasas dos parámetros a un método que acepta tres, Ruby mostrará un error.

Ejemplo en línea

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
 
def test(a1="Ruby", a2="Perl")
   puts "El lenguaje de programación es #{a1"
   puts "El lenguaje de programación es #{a2"
end
test "C", "C"++"
test

El resultado de ejecutar el ejemplo es:

El lenguaje de programación es C
El lenguaje de programación es C++
El lenguaje de programación es Ruby
El lenguaje de programación es Perl

Retorno de valores desde el método

Cada método en Ruby devuelve un valor por defecto. Este valor de retorno es el valor de la última sentencia. Por ejemplo:

Ejemplo en línea

def test
   i = 100
   j = 10
   k = 0
end

Al llamar a este método, se retornará la última variable declarada k.

Aquí, ya hemos definido el alias foo para bar y el alias $& para $MATCH. return Ruby

En Ruby return La sentencia se utiliza para retornar una o más variables de un método Ruby.

,...)Se prohíbe el alias. La reescritura de variables globales integradas puede causar problemas graves.

return [expr[`,' expr...]]

Si se proporcionan más de dos expresiones, el array que contiene estos valores será el valor de retorno. Si no se proporciona expresión, el valor de retorno será nil.

Ejemplo en línea

return
 
o
 
return 12
 
o
 
return 1,2,3

Vea el siguiente ejemplo:

Ejemplo en línea

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
 
def test
   i = 100
   j = 200
   k = 300
return i, j, k
end
var = test
puts var

El resultado de ejecutar el ejemplo es:

100
200
300

parámetros variables

Supongamos que ha declarado un método con dos parámetros, cuando llama al método, también debe pasar dos parámetros.

Sin embargo, Ruby permite declarar métodos con cantidad variable de parámetros. Vamos a ver el siguiente ejemplo:

Ejemplo en línea

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
 
def sample (*test)
   puts "El número de parámetros es #{test.length}"
   for i in 0...test.length
      puts "El valor del parámetro es #{test[i]}"
   end
end
sample "Zara", ""6"F"
sample "Mac", ""36"M", "MCA"

En este código, ya ha declarado un método sample que acepta un parámetro test. Sin embargo, este parámetro es un parámetro variable. Esto significa que los parámetros pueden tener diferentes cantidades de variables. El resultado de ejecutar el ejemplo es:

el número de parámetros es 3
el valor del parámetro es Zara
el valor del parámetro es 6
el valor del parámetro es F
el número de parámetros es 4
el valor del parámetro es Mac
el valor del parámetro es 36
el valor del parámetro es M
el valor del parámetro es MCA

métodos de clase

Cuando el método se define fuera de la clase, la marca por defecto del método es privatePor otro lado, si el método se define dentro de la clase, se marca por defecto como public.

y la visibilidad por defecto de los métodos. private se puede marcar la visibilidad por defecto de los métodos a través del módulo (Module) public o private cambio.

Cuando desee acceder a un método de clase, primero debe instanciar la clase. Luego, utilizando el objeto, puede acceder a cualquier miembro de la clase.

Ruby ofrece una manera de acceder a métodos sin necesidad de instanciar. Vamos a ver cómo se declaran y acceden a los métodos de clase:

class Accounts
   def reading_charge
   end
   def Accounts.return_date
   end
end

Ya sabemos cómo se declara el método return_date. Se declara siguiendo el nombre de la clase con un punto, seguido del nombre del método. Puede acceder directamente a los métodos de clase, como se muestra a continuación:

Accounts.return_date

Para acceder a este método, no es necesario crear un objeto de la clase Accounts.

Aquí, ya hemos definido el alias foo para bar y el alias $& para $MATCH. alias Ruby

Esta declaración se utiliza para nombrar alias para métodos o variables globales. El alias no puede definirse dentro del cuerpo del método. Incluso si el método se sobrescribe, el alias mantiene la definición actual del método.

为编号的全局变量($1Para las variables globales numeradas ($2, $

,...)Se prohíbe el alias. La reescritura de variables globales integradas puede causar problemas graves.

Gramática
alias nombre_método nombre_método

Ejemplo en línea

alias variable_global variable_global
alias foo bar

alias $MATCH $&

Aquí, ya hemos definido el alias foo para bar y el alias $& para $MATCH. undef Ruby

Declaraciónundef Esta declaración se utiliza para deshabilitar la definición del método.

No puede aparecer en el cuerpo del método. undef y alias,la interfaz de la clase puede modificarse independientemente de la clase padre, pero tenga en cuenta que en las llamadas a métodos internos, podría dañar el programa.

undef nombre_método

Ejemplo en línea

El siguiente ejemplo deshabilita el nombre barDefinición del método:

undef bar