O Método Contains
Parte da seção Fundamentos do Journey de Swift da Coddy. Lição 76 de 86.
Ao trabalhar com arrays, muitas vezes você precisa verificar se um valor específico existe antes de executar uma ação. Swift fornece o método contains() exatamente para essa finalidade. Ele retorna true se o elemento for encontrado e false caso contrário.
let fruits = ["apple", "banana", "orange"]
if fruits.contains("banana") {
print("We have bananas!")
}
// Temos bananas!Isso é muito mais limpo do que escrever um loop para pesquisar manualmente na array. O método funciona com qualquer tipo de array, seja ela composta por strings, números ou outros valores:
let numbers = [10, 20, 30, 40, 50]
print(numbers.contains(30)) // true
print(numbers.contains(99)) // falseUm caso de uso comum é validar a entrada do usuário em relação a uma lista de valores permitidos:
let validOptions = ["yes", "no", "maybe"]
let userInput = "yes"
if validOptions.contains(userInput) {
print("Valid choice")
} else {
print("Invalid choice")
}
// Escolha válidaO método contains() também funciona com strings para verificar se uma substring existe dentro de uma string maior:
let message = "Hello, Swift!"
print(message.contains("Swift")) // trueDesafio
FácilVocê receberá duas linhas de entrada:
- Uma lista de nomes de usuário permitidos separados por vírgulas (por exemplo,
admin,user,guest,moderator) - Um nome de usuário para verificar
Verifique se o nome de usuário existe na lista de permitidos. Se existir, imprima Access granted. Se não existir, imprima Access denied.
Etapas:
- Leia a lista separada por vírgulas e divida-a em um array de strings
- Leia o nome de usuário a ser verificado
- Use o método
contains()para determinar se o nome de usuário está na lista de permitidos - Imprima a mensagem apropriada com base no resultado
Dica: Use components(separatedBy:) para dividir uma string em um array. Por exemplo:
let text = "a,b,c"
let parts = text.components(separatedBy: ",")Experimente você mesmo
// Leia a lista de nomes de usuário permitidos separados por vírgula
let allowedList = readLine()!
// Leia o nome de usuário a verificar
let username = readLine()!
// TODO: Escreva seu código abaixo
// 1. Divida o allowedList em um array usando components(separatedBy:)
// 2. Use contains() para verificar se username está no array
// 3. Print "Access granted" or "Access denied" based on the 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 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 FizzBuzz14Arrays Avançados
Fatiamento de Arrays - Parte 1Fatiamento de Arrays - Parte 2Operadores de SequênciaO Método Contains3Optionais
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