Rótulos de Argumentos
Parte da seção Fundamentos do Journey de Swift da Coddy — lição 54 de 86.
O Swift oferece controle sobre como as chamadas de função são lidas usando rótulos de argumento. Um rótulo de argumento é o que você usa ao chamar a função, enquanto o nome do parâmetro é o que você usa dentro do corpo da função.
Você pode especificar ambos escrevendo o rótulo do argumento antes do nome do parâmetro:
func greet(to name: String) {
print("Hello, \(name)!")
}
greet(to: "Alice") // Saída: Hello, Alice!Aqui, to é o rótulo do argumento (usado ao chamar) e name é o nome do parâmetro (usado dentro da função). Isso faz com que a chamada seja lida de forma mais natural: "greet to Alice."
Às vezes, você deseja omitir o rótulo inteiramente para chamadas mais limpas. Use um sublinhado (_) como o rótulo do argumento:
func square(_ number: Int) -> Int {
return number * number
}
print(square(5)) // Saída: 25Sem o sublinhado, você teria que escrever square(number: 5). O sublinhado remove essa exigência, tornando a chamada mais simples quando o nome da função já deixa o propósito claro.
Desafio
FácilCrie duas funções que demonstrem diferentes técnicas de rótulos de argumentos:
Função 1: send
- Use o rótulo de argumento
messagecom o nome do parâmetrotext(tipoString) - Use o rótulo de argumento
tocom o nome do parâmetrorecipient(tipoString) - Retorne uma string no formato:
"Sending '[text]' to [recipient]"
Função 2: double
- Use um sublinhado
_para omitir o rótulo do argumento - Nome do parâmetro
number(tipoInt) - Retorne o número multiplicado por 2
Após definir ambas as funções, leia duas strings e um número inteiro da entrada, depois chame ambas as funções e imprima os resultados em linhas separadas.
Você receberá as seguintes entradas:
- Primeira linha: o texto da mensagem (ex:
"Hello") - Segunda linha: o nome do destinatário (ex:
"Alice") - Terceira linha: um número para dobrar (ex:
"7")
Por exemplo, se as entradas forem "Hello", "Alice", e "7", a saída deve ser:
Sending 'Hello' to Alice
14Folha de consulta
O Swift permite que você controle como as chamadas de função são lidas usando rótulos de argumento. Um rótulo de argumento é usado ao chamar a função, enquanto o nome do parâmetro é usado dentro do corpo da função.
Especifique ambos escrevendo o rótulo do argumento antes do nome do parâmetro:
func greet(to name: String) {
print("Hello, \(name)!")
}
greet(to: "Alice") // Saída: Hello, Alice!Aqui, to é o rótulo do argumento e name é o nome do parâmetro.
Para omitir o rótulo do argumento para chamadas mais limpas, use um sublinhado (_):
func square(_ number: Int) -> Int {
return number * number
}
print(square(5)) // Saída: 25Sem o sublinhado, você precisaria escrever square(number: 5).
Experimente você mesmo
// Ler entrada
let messageText = readLine()!
let recipientName = readLine()!
let numberToDouble = Int(readLine()!)!
// TODO: Escreva seu código abaixo
// Defina a função 'send' com rótulos de argumento 'message' e 'to'
// Defina a função 'double' com rótulo de argumento omitido usando '_'
// Chame ambas as funções e imprima os resultadosEsta 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