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 soe 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
14Experimente 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 móduloAtribuição compostaRecapitulação - Matemática simplesOperadores de comparação7Entrada e Saída Básicas
Função printInterpolação de stringsEntrada com readlineConversão de tiposRecapitulação - Até 120Recapitulação - Verdadeiro ou falso10Funções
Declare uma funçãoParâmetros e argumentosValores de retornoRótulos de argumentosRevisão - função SigmaRevisão - função de validaçãoValores padrão13Iterando sobre Sequências
Iterando sobre ElementosO Método EnumeradoIterando sobre Strings P1Iterando sobre Strings P22Variáveis
Let vs VarAnotações de tipoNúmerosStringBooleanoConvenções de nomenclaturaRecapitulação - Inicializar variáveis5Operadores — Parte 2
Operadores lógicos — Parte 1Operadores lógicos — Parte 2Revisão — Lógica simplesOperadores lógicos — Parte 3Operador ternário8Calculadora de Divisão da Conta
Mensagem de Boas-vindasObtendo Dados de Entrada11FizzBuzz com um Toque Especial
Visão Geral do JogoA Função FizzBuzz3Optionais
O que são OptionaisDesembrulhando com If LetGuard LetOperador de Coalescência de NilRecapitulação - Desembrulhamento Seguro6Tomada de Decisões
Instrução IfIf - ElseRecapitulação - Calculadora SimplesInstrução SwitchSwitch com Intervalos9Laços de Repetição
Laço For-InLaço WhileLaço Repeat-WhileBreakContinueRevisão - FatorialIntervalos em LaçosLaço AninhadoRevisão - Entrada Dinâmica12Fundamentos de Arrays
Declarando um ArrayAcessando ElementosModificando ArraysMétodos de ArrayRevisão - Lista de ProdutosRevisão - Array InvertidoTuplas15Rastreador de Despesas Diárias
Visão Geral do ProjetoSair do ProgramaPratique por conta própria: Playground de Swift