English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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.
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.
#!/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
Cada método en Ruby devuelve un valor por defecto. Este valor de retorno es el valor de la última sentencia. Por ejemplo:
def test i = 100 j = 10 k = 0 end
Al llamar a este método, se retornará la última variable declarada k.
En Ruby return La sentencia se utiliza para retornar una o más variables de un método Ruby.
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.
return o return 12 o return 1,2,3
Vea el siguiente ejemplo:
#!/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
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:
#!/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
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.
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, $
Gramática alias nombre_método nombre_método
alias variable_global variable_global alias foo bar
alias $MATCH $&
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
El siguiente ejemplo deshabilita el nombre barDefinición del método:
undef bar