Qual è il tuo metodo per non dimenticare le parentesi, tra parentesi

7

disclaimer: per ragioni di semplicità, le parentesi si riferiscono a parentesi, parentesi, virgolette e parentesi nella domanda di questa domanda. Continua.

Quando scrivi il codice, di solito scrivo prima l'elemento iniziale e quello finale, quindi torno indietro e digito le cose interne. Questo diventa molto backspacing, specialmente quando si fa qualcosa con molti elementi annidati come:

jQuery(function($){$('#element[input="file"]').hover(function(){$(this).fadeOut();}));

C'è un modo più efficiente di ricordare quante parentesi hai aperto?

Oppure un secondo esempio con citazioni:

<?php echo '<input value="'.$_POST['name'].'" />"; ?>
    
posta JakeParis 03.01.2011 - 18:14
fonte

9 risposte

22

Comincio in questo modo {} , quindi di solito li riempiono di qualcosa. Ogni volta che digiti { , digita un } corrispondente e incollalo su una nuova riga. La cosa peggiore che devi fare in quel caso è correggere l'indentazione prima di iniziare.

Gli evidenziatori di sintassi

Good spesso ti avvisano di un problema, ma non sempre. Il mio editor preferito KATE, ad esempio, si è soffocato su una stringa di argomenti variadici in stile "printf style" JSON.

Non fidarti dell'evidenziazione tra parentesi quadre e parentesi! Chiudi sempre ciò che apri subito dopo averlo aperto e quindi riempi gli spazi vuoti.

    
risposta data 03.01.2011 - 18:18
fonte
35

indentazione

Le one-liner di questo genere introducono un po 'di rischio in termini di mantenere le parentesi correttamente abbinate. La maggior parte degli editor decenti abbinerà visivamente le parentesi per aiutare, ma è più semplice espanderla.

(function($) {
    $('#element[input="file"]').hover(function() {
        $(this).fadeOut();
    }, function() {
        $(this).fadeIn();
    });
})(jQuery);

Nota che il tuo esempio non corrisponde correttamente.

    
risposta data 03.01.2011 - 18:20
fonte
6

Ogni volta che digito una parentesi graffa, il mio editor (Visual Studio con Visual Assist) inserisce per me quello di chiusura. Molto più facile ...

    
risposta data 03.01.2011 - 19:04
fonte
4

Usa un editor di testo che mette in evidenza i parents abbinati durante la digitazione. Una certa quantità di conteggi lungo la linea, +1 per open, -1 per close, check si termina a zero si verificherà ad un certo punto, ma molto raramente se hai un buon editor di testo.

Alcuni prompt della riga di comando probabilmente eseguono un'evidenziazione paren simile, se li configuri per questo, sebbene il mio rapido esperimento bash-in-konsole non sembrasse farlo per impostazione predefinita.

In passato, ero solito digitare ogni coppia abbinata in una sola volta, quindi tornare indietro sul paren di chiusura. Ancora un po 'per abitudine. Questo suona come quello che descrivi, ma non c'è backspacing, solo cursore-sinistra in parens, e cursore-destra per uscire indietro.

    
risposta data 03.01.2011 - 18:25
fonte
2

Quando uso un editor che non chiude automaticamente le parentesi graffe / parentesi, li creo entrambi contemporaneamente. Quindi spostali nella loro posizione finale. Questo è conveniente quando hai uno schema di codifica in cui ti sei sistemato. Anche se il tuo allineatore, creando contemporaneamente parentesi di apertura e chiusura non farà male. Io uso la stessa pratica con JavaScript, C # e Ruby. Provalo.

per es.

Passaggio 1

if(true)

Passaggio 2

if(true){}

Passaggio 3

if(true)
{
    //Put your code here
}
    
risposta data 03.01.2011 - 21:09
fonte
2

Non mi dimentico quasi mai di chiudere le mie parentesi. Immagino che ci sia una miscela al lavoro.

  • Codice in piccoli pezzi. Cerco di evitare metodi più lunghi di uno schermo. Utilizzare invece i submethods.
  • L'indentazione aiuta, se non sono sicuro, se devo chiudere qualcosa
  • compilazione. Sì, uso un linguaggio che mi avvisa se ho dimenticato una parentesi. Ma ricevo raramente avvertimenti.
risposta data 21.02.2011 - 19:24
fonte
1

Un editor con una buona evidenziazione della sintassi aiuta molto.

Uso Vim, ad esempio, che per impostazione predefinita (poiché 7.0, penso) evidenzia il paren / parentesi / parentesi corrispondente durante la digitazione o quando il cursore si trova su uno di essi. Evidenzia anche come errore quando ci sono coppie non abbinate.

Se il tuo editore non lo fa, ti sta rendendo un disservizio. :)

    
risposta data 21.02.2011 - 19:35
fonte
0

Se mi manca, il compilatore lo prenderà. Di solito non è un grosso problema.

    
risposta data 21.02.2011 - 23:05
fonte
0

Questa è una delle ragioni per cui mi piacciono i linguaggi di tipo non C come VB e Ruby, poiché non usano parentesi graffe per contrassegnare i blocchi, o punto e virgola per terminare le righe.

So che le persone tendono a scortecciare VB come "verbose", ma in realtà mi piacciono le parole chiave che usa poiché il significato è abbondantemente chiaro. Voglio dire, è più facile distinguere una linea "End If" piuttosto che capire se questa parentesi graffa termina un condizionale, un ciclo o una funzione. Moltiplicate questo effetto per i blocchi nidificati e VB vince per l'abilità di scansione nei miei occhi.

Sto solo mettendo i miei due centesimi là fuori.

    
risposta data 22.02.2011 - 02:21
fonte

Leggi altre domande sui tag