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!