2015-10-13 2 views
6

Non penso che sia interamente una cosa Swift/Xcode, come ho visto anche in altre lingue/IDE.Perché il 'caso' all'interno di un'istruzione switch è rientrato in negativo?

Perché "caso" all'interno di un'istruzione switch con rientro negativo (non sono sicuro che sia il modo corretto di esprimere il testo)?

mi aspetterei un un'istruzione switch per guardare qualcosa di simile

switch(type) { 
    case 1: 
     // do something 
    break; 
    case 2: 
     // do something else 
    break; 
    default: 
     // default 
    break; 
} 

Ma Xcode insiste su questo

switch(type) { 
case 1: 
    // do something 
    break; 
case 2: 
    // do something else 
    break; 
default: 
    // default 
    break; 
} 

Questo è un bug, o c'è una ragione per questo? Se è così, che cosa è? È qualcosa che mi ha infastidito per parecchio tempo.

+0

Grazie @BSMP, non ho visto questo. –

risposta

6

Bene, direi che l'istruzione break appartiene alla "sezione" nella clausola case. E come ogni altra affermazione, è indentata rispetto allo case. Per quanto riguarda lo case relativo a switch - beh, non lo so.

Ma io sono completamente con voi - e la formattazione è comunque una questione di preferenze personali. Dal momento che le regole di formattazione in Xcode non sono esplicitamente definiti - non può essere un bug;)

FWIW, che preferisco questo stile

switch x { 
    case 1: 
     // do something 
     break 
    case 2: 
     // do something else 
     break 
    default: 
     // default 
     break 
} 
+0

Sì, preferisco anche questo stile, ma Xcode ha un grosso problema: sono anni di funzionalità rispetto agli altri IDE. – Sulthan

+3

A proposito, in Swift, non è necessario alcun 'break' in un' switch'. È implicito. Hai l'istruzione 'fallthrough' se vuoi forzare una caduta attraverso i casi – BPCorp

+0

@BPCorp Hai ragione. Ma una clausola caso dovrebbe avere almeno una dichiarazione _one_ in Swift. – CouchDeveloper