Cosa fa?emacs/elisp: a cosa serve il simbolo dell'hash (cancelletto, simbolo del numero, ottotipo)?
(add-hook 'compilation-mode-hook #'my-setup-compile-mode)
... ed è diverso rispetto
(add-hook 'compilation-mode-hook 'my-setup-compile-mode)
Cosa fa?emacs/elisp: a cosa serve il simbolo dell'hash (cancelletto, simbolo del numero, ottotipo)?
(add-hook 'compilation-mode-hook #'my-setup-compile-mode)
... ed è diverso rispetto
(add-hook 'compilation-mode-hook 'my-setup-compile-mode)
Non c'è alcuna differenza:
(eq 'my-add #'my-add)
cede t
Il #
può essere utilizzato di fronte a una lambda
espressione che indica al byte-compilatore che il seguente exp ression può essere compilato in byte, vedere i documenti per Anonymous Functions. Ma non c'è niente da compilare nel caso di un simbolo.
In generale, viene utilizzato nello printed representation insieme alla parentesi angolare sinistra (<) per indicare che l'oggetto stampato è una descrizione (ma non può essere letto). Ad esempio:
#<buffer foo.txt>
Viene anche utilizzato nei costrutti dal lettore per rappresentare strutture circolari. Vedi i documenti per Read Syntax for Circular Objects.
E quindi si ha il suo uso per denotare il base for integers, ad es. #x2c -> 44
.
Più ne sono sicuro.
L'elenco dovrebbe essere disponibile nella parte superiore dello Emacs lisp reference index.
Edit: O anche più comodamente, dall'interno di Emacs stesso:
Mxinfo
RET (aprire il browser informazioni)
dmelisp
RET (aprire il manuale elisp)
ho#
RET (elencare le voci per #
nell'indice)
Ho trovato questa domanda durante la ricerca di ciò che l'hash significato in qualcosa che trovato durante l'hacking mode-line-format
:
#("-%-" 0 3
(help-echo "Display as tooltip when mouse hovers or with display-local-help."))
che è un formato utilizzato per text properties in strings whe re:
"-%-"
, testo da propertized: un trattino e un %-construct che si traduce in "trattini sufficiente per riempire il resto della linea mode", con conseguente famoso Emacs ------
.0
, il primo carattere su cui si applicano le proprietà del testo.3
, l'ultimo carattere su cui si applicano le proprietà del testo, cioè tutta "-%-"
.(help-echo "...")
, una proprietà e una stringa come argomento.Questo può essere creato con il propertize
function:
(propertize "Hover over me!" 'help-echo '"congratulations!")
sarebbe lo stesso di #("Hover over me!" 0 14 (help-echo "Congratulations!"))
: modalità di blocco carattere
se si sta utilizzando , utilizzando il comando buffer-substring
d potrebbe produrre qualcosa di simile:
(buffer-substring 1 28) ; First 27 characters in the current buffer
⇒ #(";; This buffer is for notes"
0 3
(fontified t face font-lock-comment-delimiter-face)
3 27
(fontified t face font-lock-comment-face))
così si potrebbe creare qualcosa di simile:
Whoa, impressionante. L'enciclopedia emacs/elisp. – Cheeso
Secondo [questo articolo] (http://endlessparentheses.com/get-in-the-habit-of-using-sharp-quote.html), un buon motivo per applicare '#' a un simbolo solitario è quello di ottenere la diagnostica in fase di compilazione se quel simbolo non è definito. – ajk
Non è del tutto vero che "non c'è nulla da compilare nel caso di un simbolo". Il compilatore di byte interpreta # 'auto per dire "mi riferisco sempre alla funzione' pippo', non al simbolo pippo. " In questo modo, potrebbe in realtà incorporare la definizione di foo nell'output compilato in byte. (Modifica: no, è davvero sbagliato. Il simbolo # 'non verrà compilato in un byte in modo diverso da' simbolo - è solo un indicatore di intenti.) –