Valores de parámetros por defecto
Parte de la sección Fundamentos del Journey de Ruby de Coddy — lección 53 de 88.
A veces quieres que un método tenga una alternativa razonable cuando no se proporciona un argumento. Los valores de parámetros por defecto te permiten definir qué debe ser un parámetro si el llamador no lo especifica.
Para establecer un valor predeterminado, utiliza el signo = después del nombre del parámetro:
def greet(name = "friend")
puts "Hello, #{name}!"
end
greet("Alice") # Salida: Hello, Alice!
greet # Salida: Hello, friend!Cuando llamas a greet sin un argumento, Ruby usa "friend" como valor predeterminado. Cuando proporcionas un argumento, este anula el valor predeterminado.
Puedes mezclar parámetros regulares con parámetros por defecto, pero los parámetros con valores por defecto deben ir después de los que no los tienen:
def power(base, exponent = 2)
base ** exponent
end
puts power(5) # Salida: 25 (5 al cuadrado)
puts power(2, 3) # Salida: 8 (2 al cubo)Esto hace que los métodos sean más flexibles. Quienes realizan las llamadas pueden proporcionar solo la información esencial, mientras que los detalles opcionales recurren a valores predeterminados razonables.
Desafío
FácilDefine un método llamado multiply que acepte dos parámetros: a y b. El parámetro b debe tener un valor por defecto de 1. El método debe devolver el producto de a y b.
Lee dos enteros de la entrada:
- El primer número (siempre se proporcionará)
- El segundo número (puede o no proporcionarse)
Si solo se proporciona una entrada, llama al método solo con ese argumento (usando el valor por defecto para b). Si se proporcionan dos entradas, llama al método con ambos argumentos.
Imprime el resultado de la llamada al método.
El formato de entrada será:
- Primera línea: el primer número
- Segunda línea: un número o la palabra
none
Por ejemplo, si las entradas son 7 y 3:
21Si las entradas son 5 y none:
5Si las entradas son 12 y 4:
48Hoja de referencia
Los valores de parámetros por defecto proporcionan valores de respaldo cuando no se proporcionan argumentos. Usa el signo = después del nombre del parámetro para establecer un valor por defecto:
def greet(name = "friend")
puts "Hello, #{name}!"
end
greet("Alice") # Salida: Hello, Alice!
greet # Salida: Hello, friend!Los parámetros con valores por defecto deben ir después de los parámetros sin valores por defecto:
def power(base, exponent = 2)
base ** exponent
end
puts power(5) # Salida: 25 (5 al cuadrado)
puts power(2, 3) # Salida: 8 (2 al cubo)Pruébalo tú mismo
# Leer entrada
a = gets.chomp.to_i
b_input = gets.chomp
# TODO: Definir el método multiply con el parámetro b teniendo un valor por defecto de 1
# TODO: Llamar al método apropiadamente basándose en si b_input es "none" o un número
# Si b_input es "none", llamar a multiply solo con a
# Si b_input es un número, llamar a multiply con a y b
# Imprimir el resultado
puts resultEsta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Operadores Parte 2
Operadores lógicos Parte 1Operadores lógicos Parte 2Repaso - Lógica simpleOperadores lógicos Parte 3Operadores lógicos Parte 47Calculadora para dividir la cuenta
Mensaje de bienvenidaObtener la entrada del usuario10FizzBuzz con un giro
Descripción general del juegoEl método FizzBuzz2Variables y tipos de datos
Números y variablesTipo de dato StringTipo de dato BooleanTipo de dato SymbolComprobación de tipos de datosConvenciones de nomenclaturaResumen: Creación de variables5Toma de decisiones
Sentencia IfIf - ElseRepaso - Calculadora simpleIf - Else anidadosSentencia Unless8Bucles
Bucle For con rangosBucle WhileBreakNextRepaso - FactorialBucle TimesBucle UntilBucles anidadosRepaso - Entrada dinámica3Operadores Parte 1
Operadores aritméticosOperador móduloAtajos aritméticosResumen - Matemáticas simplesOperadores de comparación6Entrada y Salida Básica
Salida con putsSalida con print y pSalida con variablesEntrada con getsMétodo chompConversión de tiposResumen - Calculadora de edadResumen - Verdadero o falso9Métodos
Definir un métodoParámetros de un métodoValores de retornoRepaso - Método SigmaRepaso - Método de validaciónValores de parámetros por defecto