DEFINICIÓN DE MÉTODOS
El nombre deberá empezar por minúsculas.
Si el método actúa como:
–> consulta –> ? al final del nombre –> Ejemplo: is_valid?
–> peligrosos o modifican al receptor–> ! al final del nombre –> Ejemplo: chop! (modifica al receptor)
–> asignación –> = al final del nombre –> Ejemplo: apellido=
PARÁMETROS
Si el método no acepta ningún parámetro solo ponemos el nombre del método.
def saludar
print "Introduce tu nombre: "
nombre = gets.chomp
puts "Hola #{nombre}. Buenos dias!"
end
saludar
Si le mandamos parámetros por convención (aunque funciona sin paréntesis también), si ponemos los paréntesis.
def saludar(parametro)
puts "Hola #{parametro}. Buenos dias!"
end
saludar("Ruben")
Un ejemplo más completo
def saludar(parametro, saludo)
puts "Hola #{parametro}. #{saludo}!"
end
print "Introduce tu nombre: "
nombre = gets.chomp
saludar(nombre, "Buenos dias")
PARÁMETROS POR DEFECTO
Se le puede especificar parámetros por defecto a la función si no recibiera en la invocación.
def saludar(saludo="Hola", nombre="usuari@")
puts "#{saludo} #{nombre}!"
end
saludar #Hola usuari@!
saludar("Que paso","Antonio") #Que paso Antonio!
…proc &
Metodo con Return
def sumar(primerNumero, segundoNumero)
return primerNumero + segundoNumero
end
suma = sumar(5, 2)
puts "El resultado de la suma es #{suma}"
Devolucion de varios parametros
def get_personal_data return "Ruben","Tejera","Cordero","Calle El Medano","35010" end puts get_personal_data[0] # Ruben puts get_personal_data[1] # Tejera
Lista de Argumentos de Longitud Variable, Splat Operator
Con el * decimos que nos pueden llegar uno o varios parametros, los tratamos como un array.
saludar("Hey!!","Ruben","Carlos","Cristian","Jorge")
def saludar(saludo,*personas)
personas.each do |persona|
puts "#{mensaje} #{persona}, ¡Bienvenido!"
end
end
#Resultado:
# Hey!! Ruben, ¡Bienvenido!
# Hey!! Carlos, ¡Bienvenido!
# Hey!! Cristian, ¡Bienvenido!
# Hey!! Jorge, ¡Bienvenido!
def saludar(saludo, *nombre)
puts "#{saludo} #{nombre.join(", ")}!"
end
saludar("Que paso","Antonio","Pepe", "Juan") # Que paso Antonio, Pepe, Juan!
def saludar(mensaje, *personas)
personas.each do |persona|
puts "#{mensaje} #{persona}, ¡Bienvenido!"
end
end
saludar("Hey!!",["Ruben","Carlos","Cristian","Jorge"],"pepe")
#RESULT:
#Hey!! ["Ruben", "Carlos", "Cristian", "Jorge"], ¡Bienvenido!
#Hey!! pepe, ¡Bienvenido!
def saludar(mensaje, *personas)
personas.each do |persona|
puts "#{mensaje} #{persona}, ¡Bienvenido!"
end
end
saludar("Hey!!",*["Ruben","Carlos","Cristian","Jorge"],"pepe")
#RESULT:
# Hey!! Ruben, ¡Bienvenido!
# Hey!! Carlos, ¡Bienvenido!
# Hey!! Cristian, ¡Bienvenido!
# Hey!! Jorge, ¡Bienvenido!
# Hey!! Pepe, ¡Bienvenido!
