2015-03-10 19 views
5

In Swift, sto cercando di capire se devo fareSwift standard industriale per le parentesi graffe

if(true) 
{ 
    //stuff 
} 
else 
{ 
    //other stuff 
} 

O

if(true){ 
    //stuff 
} else{ 
    //other stuff 
} 

so che tecnicamente non fa la differenza, ma Mi chiedevo quale fosse lo standard del settore e perché lo standard fosse ... lo standard.

+1

solo l'opinione di un uomo - noi ** molto fortemente ** insistiamo solo sul primo stile in ogni gruppo che ho. per me, questo è lo stile "nuovo-vecchio" della gestione delle parentesi graffe. la seconda opzione che elevi - anche se diffusa - è incredibilmente stupida e illogica - ** è la "nuova matematica" della formattazione ** - nessuno può spiegare perché è mai stata introdotta nel codice, e spero che andrà via in pochi anni come una cattiva idea. questo è un argomento controverso ed è difficile sapere cosa è meglio. criticamente, come dice Astro, è SEMPRE una buona idea "fare quello che fa Apple" per quanto riguarda tutti i problemi idiomatici. Ma non per noi! – Fattie

+1

tra l'altro per ogni giovane che legge. "New Math" era un'idea, sostanzialmente folle, introdotta da alcuni governi per insegnare matematica (intorno agli anni '70). era incredibilmente ridicolo e presto eliminato. – Fattie

+0

La documentazione di Swift raccomanda che la parentesi graffa di apertura segua la riga di codice precedente, mentre la documentazione oggettiva C incoraggia l'inserimento della parentesi graffa di apertura sulla linea seguendo la linea di codice precedente. – ScottyBlades

risposta

6

Lo stile del bracket è di solito una questione di opinione.

Tuttavia, in questo caso, lo è qualcosa da seguire. Apple utilizza la seconda sintassi fornita esclusivamente in tutta la sua documentazione, con una distinzione per Swift: parentesi.

Da The Swift Programming Language Guide – Control Flow:

Oltre a for-in loop, Swift supporti tradizionali in stile C for loop con una condizione e un incrementatore ...

Ecco la forma generale di questo formato ciclo:

for initialization; condition; increment { 
    statements 
} 

virgole separano le tre parti della definizione del ciclo, come in C. Tuttavia, a differenza di C, Swif t non ha bisogno di parentesi per l'intera inizializzazione di "; condizione; incrementare "il blocco.

In altre parole, non sono necessarie le parentesi attorno alle istruzioni condizionali (in qualsiasi tipo di ciclo o istruzione logica), e in genere ciò viene utilizzato da Apple nella documentazione.

Così, nel campione che ci ha fornito, Apple avrebbe usato questo stile (si noti la spaziatura tra le parentesi graffe pure):

if condition { 
    // Stuff 
} else { 
    // Other stuff 
} 

Alcuni altri esempi dalla documentazione:

// While loops 
while condition { 
    statements 
} 

// Do-while loops 
do { 
    statements 
} while condition 

// Switch statements 
switch some value to consider { 
case value 1: 
    respond to value 1 
case value 2, 
value 3: 
    respond to value 2 or 3 
default: 
    otherwise, do something else 
} 
+0

Grazie! Mi è sempre stato insegnato a farlo nel modo in cui è stato elencato, ma mi sono confuso guardando la documentazione di Apple. Sai perché Apple ha scelto questo formato? –

+0

@ DaniM.Smith È tutta una questione di stile e conta solo in alcune lingue (e anche con quelle solo con casi limite). Questo è lo stile che Apple ha scelto di utilizzare e che ovviamente applica il suo standard quando scrive la documentazione, ma non conosco le ragioni specifiche alla base della decisione. – AstroCB

+0

Grazie per le informazioni. –

2

Ho lavorato per diverse società e ognuna di esse utilizza regole di codifica/standard diverse.

Quando si tratta di Apple e guardando il loro Swift documentation, sembra che stiano usando la seconda opzione.

+1

Se si desidera codificare il sistema operativo Apple e i dispositivi Apple, è meglio seguire lo stile di Apple. (Opinione personale) –

Problemi correlati