Szukaj…


Przekompiluj projekt za pomocą `recompile`

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

Zobacz dokumentację z `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

Uzyskaj wartość z ostatniego polecenia za pomocą `v`

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

Zobacz także: Uzyskaj wartość wiersza za pomocą `v`

Uzyskaj wartość poprzedniego polecenia za pomocą `v`

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

Możesz uzyskać określony wiersz przekazujący indeks wiersza:

iex(4)> v(3)
30

Możesz także określić indeks względem bieżącego wiersza:

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

Wartość można ponownie wykorzystać w innych obliczeniach:

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

Jeśli określisz nieistniejący wiersz, IEx zgłosi błąd:

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

Wyjdź z konsoli IEx

  1. Użyj Ctrl + C, Ctrl + C, aby wyjść
iex(1)>
BREAK: (a)bort (c)ontinue (p)roc info (i)nfo (l)oaded
       (v)ersion (k)ill (D)b-tables (d)istribution
  1. Użyj Ctrl+ \ aby natychmiast wyjść

Zobacz informacje za pomocą `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

Tworzenie PID

Jest to przydatne, gdy nie zapisałeś PID z poprzedniego polecenia

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>

Przygotuj aliasy, gdy uruchomisz IEx

Jeśli umieścisz często używane aliasy w pliku .iex.exs w katalogu głównym aplikacji, IEx załaduje je dla ciebie podczas uruchamiania.

alias App.{User, Repo}

Trwała historia

Domyślnie historia wprowadzania danych przez użytkownika w IEx nie zachowuje się w różnych sesjach.

erlang-history dodaje obsługę historii zarówno do powłoki Erlang, jak i IEx :

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

Możesz teraz uzyskać dostęp do swoich poprzednich danych wejściowych za pomocą klawiszy strzałek w górę i w dół, nawet w różnych sesjach IEx .

Gdy konsola Elixir utknęła ...

Czasami możesz przypadkowo uruchomić coś w powłoce, co kończy się czekaniem na zawsze, blokując w ten sposób powłokę:

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

W takim przypadku naciśnij Ctrl-g. Zobaczysz:

User switch command

Wprowadź te polecenia w kolejności:

  • k (aby zabić proces powłoki)
  • s (aby rozpocząć nowy proces powłoki)
  • c (aby połączyć się z nowym procesem powłoki)

Skończysz w nowej powłoce Erlanga:

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

Aby uruchomić powłokę Elixir, wpisz:

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

(nie zapomnij ostatniej kropki!)

Następnie pojawi się nowy proces powłoki Elixir:

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)>

Aby wyjść z trybu „oczekuje na więcej danych” (z powodu niezamkniętego cudzysłowu, nawiasu itp.), Wpisz #iex:break , a następnie znak powrotu karetki ( ):

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

powyższe jest szczególnie przydatne, gdy kopiowanie i wklejanie stosunkowo dużego fragmentu zmienia konsolę w tryb „oczekiwania na więcej danych”.

wyrwać się z niepełnej ekspresji

Kiedy wpiszesz coś do IEx, które oczekuje zakończenia, np. Ciąg multilinii, IEx zmieni monit, aby wskazać, że czeka na zakończenie, zmieniając monit o elipsę ( ... ) zamiast iex .

Jeśli okaże się, że IEx czeka na zakończenie wyrażenia, ale nie jesteś pewien, czego potrzebuje, aby zakończyć wyrażenie, lub po prostu chcesz przerwać ten wiersz wprowadzania, wpisz #iex:break jako wejście konsoli. Spowoduje to, że IEx zgłosi błąd TokenMissingError i anuluje oczekiwanie na dalsze dane wejściowe, co spowoduje powrót do standardowego wejścia konsoli „najwyższego poziomu”.

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

Więcej informacji jest dostępnych w dokumentacji IEx .

Załaduj moduł lub skrypt do sesji IEx

Jeśli masz plik eliksiru; skrypt lub moduł i chcesz załadować go do bieżącej sesji IEx, możesz użyć metody c/1 :

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

Spowoduje to skompilowanie i załadowanie modułu w IEx, a ty będziesz mógł wywoływać wszystkie jego metody publiczne.

W przypadku skryptów natychmiast wykona zawartość skryptu:

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


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow