Ricerca…


Ricompilare il progetto con `ricompilare`

iex(1)> recompile
Compiling 1 file (.ex)
:ok

Vedi la documentazione con `h`

iex(1)> h List.last

                                 def last(list)

Returns the last element in list or nil if list is empty.

Examples

┃ iex> List.last([])
┃ nil
┃
┃ iex> List.last([1])
┃ 1
┃
┃ iex> List.last([1, 2, 3])
┃ 3

Ottieni valore dall'ultimo comando con `v`

iex(1)> 1 + 1
2
iex(2)> v
2
iex(3)> 1 + v
3

Vedi anche: Ottieni il valore di una riga con `v`

Ottieni il valore di un comando precedente con `v`

iex(1)> a = 10
10
iex(2)> b = 20
20
iex(3)> a + b
30

Puoi ottenere una riga specifica passando l'indice della riga:

iex(4)> v(3)
30

Puoi anche specificare un indice relativo alla riga corrente:

iex(5)> v(-1) # Retrieves value of row (5-1) -> 4
30
iex(6)> v(-5) # Retrieves value of row (5-4) -> 1
10

Il valore può essere riutilizzato in altri calcoli:

iex(7)> v(2) * 4
80

Se si specifica una riga non esistente, IEx genererà un errore:

iex(7)> v(100) 
** (RuntimeError) v(100) is out of bounds
    (iex) lib/iex/history.ex:121: IEx.History.nth/2
    (iex) lib/iex/helpers.ex:357: IEx.Helpers.v/1

Esci dalla console IEx

  1. Usa Ctrl + C, Ctrl + C per uscire
iex(1)>
BREAK: (a)bort (c)ontinue (p)roc info (i)nfo (l)oaded
       (v)ersion (k)ill (D)b-tables (d)istribution
  1. Usa Ctrl+ \ per uscire immediatamente

Vedi le informazioni con `i`

iex(1)> i :ok
Term
  :ok
Data type
  Atom
Reference modules
  Atom
iex(2)> x = "mystring"
"mystring"
iex(3)> i x
Term
  "mystring"
Data type
  BitString
Byte size
  8
Description
  This is a string: a UTF-8 encoded binary. It's printed surrounded by
  "double quotes" because all UTF-8 encoded codepoints in it are printable.
Raw representation
  <<109, 121, 115, 116, 114, 105, 110, 103>>
Reference modules
  String, :binary

Creazione di PID

Ciò è utile quando non hai memorizzato il PID da un comando precedente

iex(1)> self()
#PID<0.138.0>
iex(2)> pid("0.138.0")
#PID<0.138.0>
iex(3)> pid(0, 138, 0)
#PID<0.138.0>

Prepara i tuoi alias quando avvii IEx

Se inserisci i tuoi alias più comuni in un file .iex.exs nella radice della tua app, IEx li caricherà automaticamente all'avvio.

alias App.{User, Repo}

Storia persistente

Per impostazione predefinita, la cronologia degli input dell'utente in IEx non viene mantenuta tra sessioni diverse.

erlang-history aggiunge il supporto della cronologia sia alla shell di Erlang che a IEx :

git clone [email protected]:ferd/erlang-history.git
cd erlang-history
sudo make install

Ora puoi accedere ai tuoi precedenti input usando i tasti freccia su e giù, anche tra diverse sessioni IEx .

Quando la console Elixir è bloccata ...

A volte potresti accidentalmente eseguire qualcosa nella shell che finisce per aspettare per sempre, e quindi bloccare la shell:

iex(2)> receive do _ -> :stuck end

In tal caso, premere Ctrl-g. Vedrai:

User switch command

Inserisci questi comandi nell'ordine:

  • k (per uccidere il processo shell)
  • s (per iniziare un nuovo processo di shell)
  • c (per connettersi al nuovo processo shell)

Finirai con una nuova shell di Erlang:

Eshell V8.0.2  (abort with ^G)
1>

Per avviare una shell Elixir, digitare:

'Elixir.IEx.CLI':local_start().

(non dimenticare il punto finale!)

Quindi vedrai un nuovo processo di shell Elixir in arrivo:

Interactive Elixir (1.3.2) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> "I'm back"
"I'm back"
iex(2)>

Per uscire dalla modalità "in attesa di più input" (a causa di virgolette non #iex:break , parentesi ecc.) Digitare #iex:break , seguito da carriage return ( ):

iex(1)> "Hello, "world"
...(1)>
...(1)> #iex:break
** (TokenMissingError) iex:1: incomplete expression
    
iex(1)>

quanto sopra è particolarmente utile quando copia-incolla uno snippet relativamente grande trasforma la console in modalità "in attesa di più input".

rompere di espressione incompleta

Quando hai inserito qualcosa in IEx che si aspetta un completamento, come una stringa multilinea, IEx cambierà il prompt per indicare che è in attesa che tu finisca cambiando il prompt per avere un iex di sospensione ( ... ) piuttosto che iex .

Se scopri che IEx ti aspetta per terminare un'espressione ma non sei sicuro di cosa debba terminare l'espressione, o semplicemente vuoi interrompere questa riga di input, digita #iex:break come input della console. Ciò farà sì che IEx lanci un TokenMissingError e annulli l'attesa di altri input, riportandoti a un input di console "di primo livello" standard.

iex:1> "foo"
"foo"
iex:2> "bar
...:2> #iex:break
** (TokenMissingError) iex:2: incomplete expression

Ulteriori informazioni sono disponibili nella documentazione IEx .

Carica un modulo o uno script nella sessione IEx

Se hai un file elisir; uno script o un modulo e vuoi caricarlo nella sessione IEx corrente, puoi utilizzare il metodo c/1 :

iex(1)> c "lib/utils.ex"
iex(2)> Utils.some_method

Questo compilerà e caricherà il modulo in IEx e sarai in grado di chiamare tutti i suoi metodi pubblici.

Per gli script, eseguirà immediatamente il contenuto dello script:

iex(3)> c "/path/to/my/script.exs"
Called from within the script!


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow