Il metodo contains
Fa parte della sezione Fondamenti del percorso Swift di Coddy. Lezione 76 di 86.
Quando lavori con gli array, spesso devi verificare se un valore specifico esiste prima di eseguire un'azione. Swift fornisce il metodo contains() proprio a questo scopo. Restituisce true se l'elemento viene trovato e false altrimenti.
let fruits = ["apple", "banana", "orange"]
if fruits.contains("banana") {
print("We have bananas!")
}
// Abbiamo delle banane!È molto più pulito che scrivere un ciclo per cercare manualmente nell'array. Il metodo funziona con qualsiasi tipo di array, che contenga stringhe, numeri o altri valori:
let numbers = [10, 20, 30, 40, 50]
print(numbers.contains(30)) // true
print(numbers.contains(99)) // falseUn caso d'uso comune è convalidare l'input dell'utente rispetto a un elenco di valori consentiti:
let validOptions = ["yes", "no", "maybe"]
let userInput = "yes"
if validOptions.contains(userInput) {
print("Valid choice")
} else {
print("Invalid choice")
}
// Scelta validaIl metodo contains() funziona anche con le stringhe per verificare se una sottostringa è presente all’interno di una stringa più grande:
let message = "Hello, Swift!"
print(message.contains("Swift")) // trueSfida
FacileRiceverai due righe di input:
- Un elenco di nomi utente consentiti separati da virgole (ad es.,
admin,user,guest,moderator) - Un nome utente da verificare
Verifica se il nome utente è presente nell'elenco dei nomi consentiti. Se è presente, stampa Access granted. Se non è presente, stampa Access denied.
Passaggi:
- Leggi l'elenco separato da virgole e suddividilo in un array di stringhe
- Leggi il nome utente da verificare
- Usa il metodo
contains()per determinare se il nome utente è nell'elenco dei nomi consentiti - Stampa il messaggio appropriato in base al risultato
Suggerimento: Usa components(separatedBy:) per suddividere una stringa in un array. Ad esempio:
let text = "a,b,c"
let parts = text.components(separatedBy: ",")Provalo tu
// Leggi l'elenco dei nomi utente consentiti separati da virgole
let allowedList = readLine()!
// Leggi il nome utente da verificare
let username = readLine()!
// TODO: Scrivi il tuo codice qui sotto
// 1. Dividi allowedList in un array usando components(separatedBy:)
// 2. Usa contains() per verificare se username è nell'array
// 3. Stampa "Access granted" o "Access denied" in base al risultatoQuesta lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
4Operatori – Parte 1
Operatori aritmeticiOperatore moduloAssegnazione compostaRiepilogo - Matematica sempliceOperatori di confronto7I/O di base
Funzione printInterpolazione di stringheInput con ReadLineConversione di tipoRipasso - Fino a 120Ripasso - Vero o falso10Funzioni
Dichiarare una funzioneParametri e argomentiValori restituitiEtichette degli argomentiRiepilogo - Funzione SigmaRiepilogo - Funzione di validazioneValori predefiniti13Iterare sulle sequenze
Iterare sugli elementiIl metodo enumerateIterare sulle stringhe P1Iterare sulle stringhe P22Variabili
Let vs VarAnnotazioni di tipoNumeriStringaBooleanoConvenzioni di denominazioneRiepilogo - Inizializzare le variabili5Operatori Parte 2
Operatori logici Parte 1Operatori logici Parte 2Riepilogo - Logica sempliceOperatori logici Parte 3Operatore ternario8Calcolatore per dividere il conto
Messaggio di benvenutoAcquisire i dati11FizzBuzz con una variante
Panoramica del giocoLa funzione FizzBuzz14Array avanzati
Slicing degli array Parte 1Slicing degli array Parte 2Operatori di sequenzaIl metodo contains3Valori opzionali
Cosa sono i valori opzionaliEstrazione del valore con if letGuard letOperatore di coalescenza nilRiepilogo - Estrazione sicura del valore6Decisioni
Istruzione ifIf - ElseRipasso - Calcolatrice sempliceIstruzione switchSwitch con intervalli9Cicli
Ciclo for-inCiclo whileCiclo repeat-whileBreakContinueRipasso - FattorialeIntervalli nei cicliCiclo annidatoRipasso - Input dinamicoEsercitati da solo: Playground Swift