|
Nov
27
|
Los metodos son subrutinas asociadas a clases o objetos, ’similares’ a lo que se conoce como funciones en otros lenguajes.
Metodo simple sin parametros
La estructura es como sigue:
# codigo
end
nombre_metodo #Aqui estaria llamando el metodo
Por ejemplo:
puts 'Hola que tal'
end
saludar # no es obligacion usar parentesis, ej: saludar()
Hola que tal
Metodo simple con parametros
Se puede definir un metodo que acepte parametros de la siguiente forma:
puts "La suma es #{a + b}."
end
sumar(2, 3)
La suma es 5.
Aca tampoco son obligacion los parentesis tanto en la definicion del metodo como al llamarlo, se podria escribir:
puts "La suma es #{a + b}."
end
sumar 2, 3
Valor de retorno
Los metodos devuelven el valor de la ultima expresion evaluada, por ejemplo:
a + b
end
puts sumar(2, 3) # uso puts para mostrar el valor de retorno del metodo
var = sumar(5, 4) # var valdra 9
5
Es posible poner de forma explicita el retorno usando ‘return’:
return a + b
end
puts sumar(2, 4)
Incluso hacer que el metodo devuelva multiples valores,
suma = a + b
return a, b, suma
end
puts sumar(2, 4)
2 4 6
Uso de parentesis al utilizar el valor de retorno
Cuando queramos utilizar de inmediato el valor de retorno de un metodo, es necesario el uso de parentesis, por ejemplo:
"hola #{nombre}!"
end
puts saludar('visitante').upcase #aca upcase se aplica al resultado del metodo
HOLA VISITANTE!
Si no usara parentesis:
"hola #{nombre}!"
end
puts saludar 'visitante'.upcase #aca se aplica a 'visitante' y no al retorno
hola VISITANTE!
Definir valores por defecto
Podemos definir valores por defecto para algunos parametros:
puts "#{var1}, #{var2}, #{var3}"
end
mostrar('a', 'b', 'c') # paso todos los valores
mostrar('hola') # paso solo 1
a, b, c hola, valor2, valor3
Aquellos parametros que tengan valores por defecto deben ir todos a un mismo lado, en el ejemplo todos a la derecha.
Numero de argumentos variables
El ultimo (o unico) parametro de un metodo puede ir precedido de un asterisco(*) para indicar que mas parametros seran pasados. Estos parametros son almacenados en un array(lista), por ejemplo:
nums
end
p cuantos(38, 45, 23) # uso p en vez de puts para que se note el array
[38, 45, 23]
Otro ejemplo:
p otros
puts a, b, otros.size
end
cuantos(38, 45, 23, 12, 28, 34)
[12, 28, 34] 38 45 4
Si queremos pasar los valores de un array como parametros podemos hacerlo asi:
p a, b, otros
end
lista = [3, 4, 5, 6, 7, 8]
cuantos(*lista)
3 4 [5, 6, 7, 8]
Al usar el * delante del nombre del array este es expandido y sus valores son pasados como si estuvieran separados por una coma, de esta forma los dos primeros valores son asignados a ‘a’ y ‘b’ respectivamente y el resto a ‘otros’.
The end~




Ultimos comentarios