Ruby Métodos

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 declaraciones repetidas en una unidad.

Los nombres de los métodos deben comenzar con una letra minúscula. Si comienza con una letra mayúscula, Ruby puede tratarlo como una constante, lo que provocará un análisis incorrecto de la llamada.

Los métodos deben definirse antes de llamarse; de lo contrario, Ruby generará una excepción de llamada a un método no definido.

Sintaxis

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

Por lo tanto, puede definir un método simple de la siguiente manera:

def method_name expr.. end

Puede definir un método que acepte parámetros de la siguiente manera:

def method_name (var1, var2) expr.. end

Puede establecer valores predeterminados para los parámetros. Si no se pasan los parámetros requeridos al llamar al método, se utilizan los valores predeterminados:

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

Cuando desee llamar a un método, solo necesita usar el nombre del método, de la siguiente manera:

method_name

Sin embargo, cuando llama a un método con parámetros, también debe incluir los parámetros al escribir el nombre del método, por ejemplo:

method_name 25, 30

La mayor desventaja de usar métodos con parámetros es que necesita recordar el número de parámetros al llamar al método. Por ejemplo, si solo pasa dos parámetros a un método que acepta tres, Ruby mostrará un error.

Ejemplo

#!/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

Pruébalo »

El resultado de ejecutar el ejemplo anterior es:

编程语言为 C
编程语言为 C++
编程语言为 Ruby
编程语言为 Perl

Valor de retorno de un método

Cada método en Ruby devuelve un valor de forma predeterminada. El valor devuelto es el valor de la última declaración. Por ejemplo:

Ejemplo

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

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

Ruby returnSentencia

En Ruby, lareturnsentencia

Sintaxis

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

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

Ejemplo

returnoreturn 12oreturn 1,2,3

Observe el siguiente ejemplo:

Ejemplo

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

Pruébalo »

El resultado de ejecutar el ejemplo anterior es:

100
200
300

Número variable de parámetros

Supongamos que declara un método con dos parámetros. Cuando llama a ese método, también debe pasar dos parámetros.

Sin embargo, Ruby le permite declarar métodos con un número variable de parámetros. Veamos el siguiente ejemplo:

Ejemplo

#!/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"

Pruébalo »

En este código, 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 el parámetro puede tener un número variable de variables. El resultado de ejecutar el ejemplo anterior es:

参数个数为 3
参数值为 Zara
参数值为 6
参数值为 F
参数个数为 4
参数值为 Mac
参数值为 36
参数值为 M
参数值为 MCA

Métodos de clase

Cuando un método se define fuera de una clase, por defecto se marca comoprivate. Por otro lado, si el método se define dentro de la clase, por defecto se marca como public.

La visibilidad predeterminada de los métodos yprivateel marcado se puede modificar mediante el módulo (Module)publicoprivatecambio.

Cuando quiera acceder a los métodos de una clase, primero debe instanciar la clase. Luego, usando el objeto, puede acceder a cualquier miembro de la clase.

Ruby proporciona una forma de acceder a los métodos sin instanciar. Veamos cómo declarar y acceder 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 colocando un punto después del nombre de la clase, seguido del nombre del método. Puede acceder directamente a los métodos de clase de la siguiente manera:

Accounts.return_date

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

Ruby aliasSentencia

Esta sentencia se utiliza para crear un alias de un método o variable global. El alias no puede definirse dentro del cuerpo de un método. Incluso si el método se sobrescribe, el alias del método conserva la definición actual del método.

Está prohibido crear alias para las variables globales numeradas ($1, $2,...). Sobrescribir las variables globales integradas puede causar problemas graves.

Sintaxis

aliasnombre_método nombre_métodoaliasvariable_global variable_global

Ejemplo

alias foo bar alias $MATCH $&

Aquí, hemos definido foo como alias de bar, y $MATCH como alias de $&.

Ruby undefSentencia

Esta sentencia se utiliza para cancelar la definición de un método.undefNo puede aparecer dentro del cuerpo de un método.

Mediante el uso deundefyalias, la interfaz de la clase puede modificarse independientemente de la clase padre, pero tenga en cuenta que puede romper el programa al llamar a métodos dentro de sí misma.

undefnombre_método

Ejemplo

El siguiente ejemplo elimina el método llamadobarla definición del método:

undef bar
Otras extensiones