2015-03-26 11 views
10

Nella sezione Basic Operators, la guida di Swift Programming Language afferma che ++ è un operatore valido:L'uso dell'operatore di incremento dà errore di compilazione "l'operatore unario rapido '++' non può essere applicato a un operando di tipo 'Int'"

“altri esempi includono il complesso operatore logico AND & & (come nel caso enteredDoorCode & & passedRetinaScan) e l'operatore incremento ++ i, che è una scorciatoia per aumentare il valore di i di 1. "

Estratto da: Apple Inc." The Swift Programming Language. "IBooks. https://itun.es/gb/jEUH0.l

Tuttavia, quando si tenta questo in un parco giochi;

import UIKit 

let i = 0 
i++ 

un errore di generazione mostra:

rapida operatore unario '++' non può essere applicato ad un operando di tipo 'int'

Perché?

+0

grazie per le risposte. Speriamo che questo salverà gli altri da pochi minuti di grattacapo e incredulità! –

risposta

13

Sì, non è l'errore del compilatore migliore.

Il problema è che hai dichiarato i utilizzando let. Poiché gli interi sono tipi di valore, ciò significa che i è immutabile: non può essere modificato una volta assegnato un valore.

Se si dichiara i come var i = 0 il codice viene compilato.

3

È stato definito i come immutabile con let. Prova invece a var i = 0.

3

Inoltre, se si modifica il valore della variabile di un tipo di valore (strutture o enumerazioni) all'interno di uno dei suoi metodi, è necessario definire tale metodo come mutante:

mutating func modify() { 
    ++i 
} 
Problemi correlati