Valores Padrão
Parte da seção Fundamentos do Journey de Swift da Coddy — lição 57 de 86.
Às vezes, um parâmetro possui um valor que é usado na maior parte do tempo. Em vez de exigir que quem chama o forneça todas as vezes, você pode atribuir um valor padrão a esse parâmetro.
Para definir um valor padrão, use o operador de atribuição (=) após o tipo do parâmetro:
func greet(name: String, greeting: String = "Hello") {
print("\(greeting), \(name)!")
}
greet(name: "Alice") // Saída: Hello, Alice!
greet(name: "Bob", greeting: "Hi") // Saída: Hi, Bob!Ao chamar a função, você pode omitir parâmetros que possuem valores padrão. O Swift usará o padrão automaticamente. Mas se você precisar de um valor diferente, ainda poderá fornecer um explicitamente.
Parâmetros com valores padrão devem ser colocados ao final da lista de parâmetros. Isso mantém as chamadas de função limpas e legíveis:
func calculatePrice(base: Double, taxRate: Double = 0.1) -> Double {
return base + (base * taxRate)
}
print(calculatePrice(base: 100)) // Saída: 110.0
print(calculatePrice(base: 100, taxRate: 0.2)) // Saída: 120.0Valores padrão tornam suas funções mais flexíveis — elas funcionam de forma simples para casos comuns, ao mesmo tempo em que permitem a personalização quando necessário.
Desafio
FácilEscreva uma função formatGreeting que receba name, greeting e repeatCount e retorne uma mensagem de saudação formatada.
A função deve usar valores padrão para os parâmetros opcionais:
greetingdeve ter como padrão"Hello"repeatCountdeve ter como padrão1
Construa uma string que repita o padrão de saudação o número especificado de vezes, separada por espaços.
Parâmetros:
name(String): O nome da pessoa (obrigatório)greeting(String): A palavra de saudação (padrão:"Hello")repeatCount(Int): Quantas vezes repetir a saudação (padrão:1)
Retorno: Uma string com o padrão de saudação repetido. Formato: "[greeting], [name]!" repetido repeatCount vezes, separado por um único espaço (String)
Por exemplo, se name for "Alice", greeting for "Hi" e repeatCount for 2, a função retorna "Hi, Alice! Hi, Alice!".
Se chamada apenas com name como "Bob" (usando os padrões), ela retorna "Hello, Bob!".
Folha de consulta
Para definir um valor padrão para um parâmetro, use o operador de atribuição (=) após o tipo do parâmetro:
func greet(name: String, greeting: String = "Hello") {
print("\(greeting), \(name)!")
}
greet(name: "Alice") // Saída: Hello, Alice!
greet(name: "Bob", greeting: "Hi") // Saída: Hi, Bob!Ao chamar uma função, você pode omitir parâmetros que possuem valores padrão. O Swift usará o padrão automaticamente, mas você ainda pode fornecer um valor diferente explicitamente, se necessário.
Parâmetros com valores padrão devem ser colocados ao final da lista de parâmetros:
func calculatePrice(base: Double, taxRate: Double = 0.1) -> Double {
return base + (base * taxRate)
}
print(calculatePrice(base: 100)) // Saída: 110.0
print(calculatePrice(base: 100, taxRate: 0.2)) // Saída: 120.0Experimente você mesmo
func formatGreeting(name: String, greeting: String, repeatCount: Int) -> String {
// Escreva o código aqui
}
Esta 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 1
Operadores AritméticosOperador de MóduloAtribuição CompostaRecapitulação - Matemática SimplesOperadores de Comparação7IO Básico
Função PrintInterpolação de StringsEntrada ReadLineConversão de TiposRecapitulação - Até 120Recapitulação - Verdadeiro ou Falso10Funções
Declarar uma FunçãoParâmetros e ArgumentosValores de RetornoRótulos de ArgumentosRecapitulação - Função SigmaRecapitulação - Função de ValidaçãoValores Padrão13Iterando sobre Sequências
Iterando sobre ElementosO Método EnumeratedIterando sobre Strings P1Iterando sobre Strings P22Variáveis
Let vs VarAnotações de TipoNúmerosStringBooleanosConvenções de NomenclaturaRecapitulação - Inicializar Variáveis5Operadores Parte 2
Operadores Lógicos Parte 1Operadores Lógicos Parte 2Recapitulação - Lógica SimplesOperadores Lógicos Parte 3Operador Ternário8Calculadora de Divisão de Conta
Mensagem de Boas-vindasObtendo Entrada11FizzBuzz com um Diferencial
Visão Geral do JogoA Função FizzBuzz3Opcionais
O que são OpcionaisDesembrulhando com If LetGuard LetOperador de Coalescência NulaRecapitulação - Desembrulho Seguro6Tomada de Decisão
Estrutura IfIf - ElseRecapitulação - Calculadora SimplesEstrutura SwitchSwitch com Intervalos9Loops
Loop For-InLoop WhileLoop Repeat-WhileBreakContinueRecapitulação - FatorialIntervalos em LoopsLoop AninhadoRecapitulação - Entrada Dinâmica12Fundamentos de Arrays
Declarando um ArrayAcessando ElementosModificando ArraysMétodos de ArrayRecapitulação - Lista de ProdutosRecapitulação - Array InvertidoTuplas15Rastreador de Despesas Diárias
Visão Geral do ProjetoSair do Programa