Recapitulação - Desembrulho Seguro
Parte da seção Fundamentos do Journey de Swift da Coddy — lição 15 de 86.
Desafio
FácilEscreva uma função formatPlayerInfo que receba o name, score e level de um jogador como strings e retorne um resumo formatado do jogador.
Use todas as três técnicas de desembrulho (unwrapping) que você aprendeu para lidar com valores potencialmente ausentes:
- Use
guard letpara verificar se o nome é válido (não vazio). Se o nome estiver vazio, retorne"Unknown player"imediatamente. - Use
??(nil coalescing) para fornecer um score padrão de"0"se o score estiver vazio. - Use
if letpara verificar se o nível é válido (não vazio). Se ele tiver um valor, inclua-o na saída; caso contrário, omita a parte do nível.
Formato de Saída:
- Se o nível for fornecido:
"[name] - Score: [score], Level: [level]" - Se o nível estiver vazio:
"[name] - Score: [score]"
Parâmetros:
name(String): Nome do jogador (string vazia representa nil)score(String): Pontuação do jogador (string vazia representa nil)level(String): Nível do jogador (string vazia representa nil)
Retorno: Uma string formatada com as informações do jogador, ou "Unknown player" se o nome estiver vazio.
Dica: Converta strings vazias para opcionais dentro da sua função, verificando se elas estão vazias e atribuindo nil caso estejam.
Experimente você mesmo
func formatPlayerInfo(name: String, score: String, level: String) -> String {
// Escreva o código aqui
}
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