Conversione di tipo
Fa parte della sezione Fondamenti del percorso Swift di Coddy. Lezione 34 di 86.
Poiché readLine() restituisce un String?, spesso dovrai convertire quella stringa in un numero per eseguire calcoli. Swift richiede una conversione di tipo esplicita. Non convertirà automaticamente una stringa in un intero o in un numero double.
Per convertire una stringa in un numero intero, usa l'inizializzatore Int(). Poiché la conversione potrebbe non riuscire (la stringa potrebbe contenere lettere invece di cifre), restituisce un valore opzionale:
let input = "42"
if let number = Int(input) {
print(number + 10) // Risultato: 52
}Per i numeri decimali, usa Double():
let priceString = "19.99"
if let price = Double(priceString) {
print(price * 2) // Risultato: 39.98
}Questo è particolarmente utile quando combini readLine() con operazioni numeriche. Puoi concatenare le operazioni di rimozione dell'involucro:
if let input = readLine(), let age = Int(input) {
print("Next year you'll be \(age + 1)")
}La virgola nell'istruzione if let significa che entrambe le condizioni devono essere soddisfatte: l'input deve esistere e deve poter essere convertito in un intero.
Sfida
FacileLeggi due input: un numero decimale come stringa e un intero come stringa. Convertili nei rispettivi tipi numerici e calcolane il prodotto.
Riceverai i seguenti input:
- Prima riga: un numero decimale (ad es.,
"3.5") - Seconda riga: un intero (ad es.,
"4")
Usa readLine() per leggere entrambi gli input. Converti il primo input in un Double e il secondo in un Int. Poi moltiplicali e stampa il risultato.
Usa if let con il concatenamento del binding opzionale per estrarre in modo sicuro sia l’input sia il valore convertito.
Stampa: Il prodotto dei due numeri come Double
Provalo tu
// Leggi il numero decimale come stringa
if let decimalString = readLine() {
// Leggi il numero intero come stringa
if let intString = readLine() {
// TODO: Scrivi il tuo codice qui sotto
// Converti decimalString in Double e intString in Int usando if let
// Poi calcola e stampa il loro prodotto
}
}Questa 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 FizzBuzz3Valori 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