2015-07-29 8 views
10

Esistono modi per commentare una linea o linee di codice in una funzione?Esiste un modo per commentare la/e riga/e di codice in funzione in Elixir

qualcosa come il seguente

defmodule MyModule 
    def foo do 
    //a = "old code" 
    a = "new code" 
    end 
end 

o

defmodule MyModule 
    def foo do 
    /*a = "old code" 
    b = 1234 */ 
    a = "new code" 
    end 
end 
+0

A valle. Letteralmente il primo risultato su google per "elixir comment syntax" tratta esattamente questa domanda. Sembra davvero aver speso zero sforzi di ricerca. –

+1

@OnorioCatenacci Per lo più cerco su elixir-lang.org che non ho trovato la risposta a. Penso che "commento" sia molto vago per trovare Google e per l'elisir ha continuato a restituire la documentazione del commento. – Letseatlunch

risposta

18

Commenti in Elisir, come è comune in lingue che possono funzionare come linguaggi di scripting, utilizzare il cancelletto.

defmodule MyModule 
    def foo do 
    # a = "old code" 
    a = "new code" 
    end 
end 

Formalmente, non c'è modo di avere un commento su più righe, ma una stringa multilinea finirà per essere un noop.

defmodule MyModule 
    def foo do 
    """ 
    a = "old code" 
    a = "more old code" 
    """ 
    a = "new code" 
    end 
end 
1

Sono lontano da un esperto, ma non credo che questa risposta funzioni in tutti i casi. Se la stringa multilinea è alla fine di una funzione, verrà restituita come risultato della funzione. Quindi penso che il seguente riordino del codice della risposta fallisca (o almeno non funzioni come previsto). Restituisce "a = \"old code\"\na = \"more old code\"\n". Si noti inoltre che manca do nella risposta sulla riga defmodule. Infine, il codice che utilizza """ per più commenti genererà un errore unused literal (mentre non lo sarà ''').

defmodule MyModule do 
    def foo do 
    a = "new code" 
    """ 
    a = "old code" 
    a = "more old code" 
    """ 
    end 
end 

Quindi, se la tecnica di commento su più righe non funziona (in tutti i casi), come dovremmo bloccare una sezione di codice?

Non è possibile impostare un attributo (ad esempio @comment """... all'interno di una funzione) in modo che non funzioni.

È possibile utilizzare macro come in this question ma che "inquina" il codice un po '.

Ho cercato su Google un po 'e non riesco a trovare una risposta adatta (forse mi manca qualcosa di ovvio) quindi mi limiterò a inserire del codice elisp per bloccare una sezione in Emacs anteponendo ogni riga con # (se non è già nel pacchetto della modalità Elixir).

+1

@AI: Commentare una sezione di codice in emacs è già una funzione standard per (praticamente) qualsiasi lingua supportata. Segna l'area (CTRL-SPACE all'inizio, vai alla fine della regione); quindi fai 'M-x comment-region' ). – FooF

Problemi correlati