Valores de Parâmetro Padrão
Parte da seção Fundamentos do Journey de Ruby da Coddy — lição 53 de 88.
Às vezes, você deseja que um método tenha um fallback sensato quando um argumento não é fornecido. Valores de parâmetros padrão permitem que você defina o que um parâmetro deve ser se o chamador não o especificar.
Para definir um valor padrão, use o sinal = após o nome do parâmetro:
def greet(name = "friend")
puts "Hello, #{name}!"
end
greet("Alice") # Saída: Hello, Alice!
greet # Saída: Hello, friend!Quando você chama greet sem um argumento, o Ruby usa "friend" como o padrão. Quando você fornece um argumento, ele sobrescreve o padrão.
Você pode misturar parâmetros regulares com parâmetros padrão, mas os parâmetros com valores padrão devem vir depois daqueles que não os possuem:
def power(base, exponent = 2)
base ** exponent
end
puts power(5) # Saídas: 25 (5 ao quadrado)
puts power(2, 3) # Saídas: 8 (2 ao cubo)Isso torna os métodos mais flexíveis. Os chamadores podem fornecer apenas as informações essenciais, enquanto os detalhes opcionais assumem valores padrão razoáveis.
Desafio
FácilDefina um método chamado multiply que recebe dois parâmetros: a e b. O parâmetro b deve ter um valor padrão de 1. O método deve retornar o produto de a e b.
Leia dois inteiros da entrada:
- O primeiro número (sempre será fornecido)
- O segundo número (pode ou não ser fornecido)
Se apenas uma entrada for fornecida, chame o método apenas com esse argumento (usando o valor padrão para b). Se duas entradas forem fornecidas, chame o método com ambos os argumentos.
Imprima o resultado da chamada do método.
O formato de entrada será:
- Primeira linha: o primeiro número
- Segunda linha: um número ou a palavra
none
Por exemplo, se as entradas forem 7 e 3:
21Se as entradas forem 5 e none:
5Se as entradas forem 12 e 4:
48Folha de consulta
Valores de parâmetros padrão fornecem valores de fallback quando os argumentos não são fornecidos. Use o sinal = após o nome do parâmetro para definir um padrão:
def greet(name = "friend")
puts "Hello, #{name}!"
end
greet("Alice") # Saída: Hello, Alice!
greet # Saída: Hello, friend!Parâmetros com padrões devem vir após os parâmetros sem padrões:
def power(base, exponent = 2)
base ** exponent
end
puts power(5) # Saída: 25 (5 ao quadrado)
puts power(2, 3) # Saída: 8 (2 ao cubo)Experimente você mesmo
# Ler a entrada
a = gets.chomp.to_i
b_input = gets.chomp
# TODO: Definir o método multiply com o parâmetro b tendo um valor padrão de 1
# TODO: Chamar o método apropriadamente com base se b_input é "none" ou um número
# Se b_input for "none", chamar multiply apenas com a
# Se b_input for um número, chamar multiply com ambos a e b
# Imprimir o resultado
puts resultEsta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentos
4Operadores Parte 2
Operadores Lógicos Parte 1Operadores Lógicos Parte 2Recapitulação - Lógica SimplesOperadores Lógicos Parte 3Operadores Lógicos Parte 47Calculadora de Divisão de Conta
Mensagem de Boas-vindasObtendo Entrada do Usuário10FizzBuzz com um Toque Especial
Visão Geral do JogoO Método FizzBuzz2Variáveis e Tipos de Dados
Números e VariáveisTipo de Dado StringTipo de Dado BooleanTipo de Dado SymbolVerificando Tipos de DadosConvenções de NomenclaturaRecapitulação - Criação de Variáveis5Tomada de Decisão
Instrução IfIf - ElseRecapitulação - Calculadora SimplesIf - Else AninhadoInstrução Unless8Laços de Repetição
Loop For com IntervalosLoop WhileBreakNextRecapitulação - FatorialLoop TimesLoop UntilLoops AninhadosRecapitulação - Entrada Dinâmica3Operadores Parte 1
Operadores AritméticosOperador de MóduloAtalhos AritméticosRecapitulação - Matemática SimplesOperadores de Comparação6IO Básico
Saída com putsSaída com print e pSaída com VariáveisEntrada com getsMétodo chompConversão de TiposRecapitulação - Calculadora de IdadeRecapitulação - Verdadeiro ou Falso9Métodos
Definindo um MétodoParâmetros de MétodoValores de RetornoRecapitulação - Método SigmaRecapitulação - Método de ValidaçãoValores de Parâmetro Padrão15Rastreador de Despesas Diárias
Visão Geral do ProjetoSair do Programa