Uso de if, elseif y else en PHP Tool para plugin External Tools de gedit – Ejecutar codigo Ruby
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:

def nombre_metodo
   # codigo
end
nombre_metodo #Aqui estaria llamando el metodo

Por ejemplo:

def saludar
   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:

def sumar(a, b)
   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:

def sumar a, b
   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:

def sumar(a, b)
   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’:

def sumar(a, b)
   return a + b
end
puts sumar(2, 4)

Incluso hacer que el metodo devuelva multiples valores,

def sumar(a, b)
   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:

def saludar(nombre)
   "hola #{nombre}!"
end
puts saludar('visitante').upcase #aca upcase se aplica al resultado del metodo
HOLA VISITANTE!

Si no usara parentesis:

def saludar(nombre)
   "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:

def mostrar(var1, var2 = 'valor2', var3 = 'valor3')
   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:

def cuantos(*nums)
   nums
end
p cuantos(38, 45, 23) # uso p en vez de puts para que se note el array
[38, 45, 23]

Otro ejemplo:

def cuantos(a, b, *otros)
   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:

def cuantos(a, b, *otros)
   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~


Dejar un comentario