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 sensata cuando no se proporciona un argumento. Los valores de parámetros predeterminados te permiten definir cuál debe ser el valor de un parámetro si quien realiza la llamada no lo especifica.
Para establecer un valor predeterminado, usa 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 reemplaza el valor predeterminado.
Puedes mezclar parámetros normales con parámetros con valores predeterminados, pero los parámetros con valores predeterminados 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. Los llamadores 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 predeterminado de 1. El método debe devolver el producto de a y b.
Lee dos números enteros de la entrada:
- El primer número (siempre se proporcionará)
- El segundo número (puede proporcionarse o no)
Si solo se proporciona una entrada, llama al método solo con ese argumento (usando el valor predeterminado 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:
48Pruébalo tú mismo
# Leer entrada
a = gets.chomp.to_i
b_input = gets.chomp
# TODO: Define el método multiply con el parámetro b teniendo un valor por defecto de 1
# TODO: Llama al método apropiadamente basándote en si b_input es "none" o un número
# Si b_input es "none", llama a multiply solo con a
# Si b_input es un número, llama a multiply con a y b
# Imprime 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 defectoPractica por tu cuenta: Compilador de Ruby online