Elixir Language
Tipps und Tricks für die IEx-Konsole
Suche…
Rekompilieren Sie das Projekt mit "Rekompilieren"
iex(1)> recompile
Compiling 1 file (.ex)
:ok
Siehe Dokumentation mit "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
Holen Sie sich den Wert vom letzten Befehl mit `v`
iex(1)> 1 + 1
2
iex(2)> v
2
iex(3)> 1 + v
3
Siehe auch: Holen Sie sich den Wert einer Zeile mit `v`
Holen Sie sich den Wert eines vorherigen Befehls mit `v`
iex(1)> a = 10
10
iex(2)> b = 20
20
iex(3)> a + b
30
Sie können eine bestimmte Zeile über den Index der Zeile übergeben:
iex(4)> v(3)
30
Sie können auch einen Index relativ zur aktuellen Zeile angeben:
iex(5)> v(-1) # Retrieves value of row (5-1) -> 4
30
iex(6)> v(-5) # Retrieves value of row (5-4) -> 1
10
Der Wert kann in anderen Berechnungen wiederverwendet werden:
iex(7)> v(2) * 4
80
Wenn Sie eine nicht vorhandene Zeile angeben, gibt IEx
einen Fehler aus:
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
Beenden Sie die IEx-Konsole
- Verwenden Sie zum Verlassen Strg + C, Strg + C
iex(1)>
BREAK: (a)bort (c)ontinue (p)roc info (i)nfo (l)oaded
(v)ersion (k)ill (D)b-tables (d)istribution
- Verwenden Sie
Ctrl+ \
um sofort zu beenden
Siehe Information mit `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
PID erstellen
Dies ist nützlich, wenn Sie die PID eines vorherigen Befehls nicht gespeichert haben
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>
Halten Sie Ihre Aliase bereit, wenn Sie IEx starten
Wenn Sie Ihre häufig verwendeten Aliase in eine .iex.exs
Datei im Stammverzeichnis Ihrer App .iex.exs
IEx diese beim Start für Sie.
alias App.{User, Repo}
Anhaltende Geschichte
Standardmäßig wird der Benutzereingabeverlauf in IEx
nicht für verschiedene Sitzungen IEx
.
erlang-history
fügt der Erlang-Shell und dem IEx
erlang-history
hinzu:
git clone [email protected]:ferd/erlang-history.git
cd erlang-history
sudo make install
Sie können jetzt mit den Aufwärts- und IEx
auf Ihre vorherigen Eingaben zugreifen, auch in verschiedenen IEx
Sitzungen.
Wenn die Elixir-Konsole feststeckt ...
Manchmal laufen Sie aus Versehen etwas in der Shell, das für immer wartet und die Shell blockiert:
iex(2)> receive do _ -> :stuck end
In diesem Fall drücken Sie Strg-g. Du wirst sehen:
User switch command
Geben Sie diese Befehle in der angegebenen Reihenfolge ein:
-
k
(um den Shell-Prozess zu beenden) -
s
(um einen neuen Shell-Prozess zu starten) -
c
(um eine Verbindung zum neuen Shell-Prozess herzustellen)
Sie landen in einer neuen Erlang-Shell:
Eshell V8.0.2 (abort with ^G)
1>
Um eine Elixir-Shell zu starten, geben Sie Folgendes ein:
'Elixir.IEx.CLI':local_start().
(den letzten Punkt nicht vergessen!)
Dann sehen Sie einen neuen Elixir-Shell-Prozess:
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)>
Um aus dem "Warten auf weitere Eingabe" -Modus (aufgrund nicht geschlossener Anführungszeichen, Klammern usw.) zu #iex:break
, geben Sie #iex:break
, gefolgt von Wagenrücklauf ( ⏎ ):
iex(1)> "Hello, "world"
...(1)>
...(1)> #iex:break
** (TokenMissingError) iex:1: incomplete expression
iex(1)>
Dies ist besonders nützlich, wenn ein relativ großes Snippet durch Kopieren und Einfügen in den Modus "Warten auf weitere Eingaben" versetzt wird.
brechen Sie aus unvollständigem Ausdruck aus
Wenn Sie in IEx etwas eingegeben haben, das eine Vervollständigung erwartet, wie z. B. eine mehrzeilige Zeichenfolge, ändert IEx die Eingabeaufforderung, um anzuzeigen, dass Sie auf den Abschluss warten, indem Sie die Eingabeaufforderung so ändern, dass sie eine Auslassungszeichen ( ...
) anstelle von iex
.
Wenn Sie feststellen, dass IEx auf das Beenden eines Ausdrucks wartet, Sie jedoch nicht sicher sind, was zum Beenden des Ausdrucks erforderlich ist, oder möchten Sie diese Eingabezeile einfach abbrechen, geben #iex:break
als Konsoleneingabe #iex:break
. Dies bewirkt, dass IEx einen TokenMissingError
und das Warten auf weitere Eingaben TokenMissingError
, wodurch Sie zu einer Standardkonsoleingabe der obersten Ebene zurückkehren.
iex:1> "foo"
"foo"
iex:2> "bar
...:2> #iex:break
** (TokenMissingError) iex:2: incomplete expression
Weitere Informationen finden Sie in der IEx-Dokumentation .
Laden Sie ein Modul oder Skript in die IEx-Sitzung
Wenn Sie eine Elixier-Datei haben; Wenn Sie ein Skript oder ein Modul verwenden und es in die aktuelle IEx-Sitzung laden möchten, können Sie die Methode c/1
verwenden:
iex(1)> c "lib/utils.ex"
iex(2)> Utils.some_method
Dadurch wird das Modul in IEx kompiliert und geladen, und Sie können alle öffentlichen Methoden aufrufen.
Bei Skripten wird der Inhalt des Skripts sofort ausgeführt:
iex(3)> c "/path/to/my/script.exs"
Called from within the script!