Zoeken…


Project hercompileren met `hercompileren`

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

Zie documentatie met `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

Krijg waarde van laatste opdracht met `v`

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

Zie ook: Krijg de waarde van een rij met `v`

Krijg de waarde van een vorige opdracht met `v`

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

U kunt een specifieke rij krijgen die de index van de rij passeert:

iex(4)> v(3)
30

U kunt ook een index opgeven ten opzichte van de huidige rij:

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

De waarde kan worden hergebruikt in andere berekeningen:

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

Als u een niet-bestaande rij IEx , geeft IEx een foutmelding:

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

IEx-console afsluiten

  1. Gebruik Ctrl + C, Ctrl + C om af te sluiten
iex(1)>
BREAK: (a)bort (c)ontinue (p)roc info (i)nfo (l)oaded
       (v)ersion (k)ill (D)b-tables (d)istribution
  1. Gebruik Ctrl+ \ om onmiddellijk af te sluiten

Zie informatie met `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 aanmaken

Dit is handig wanneer u de PID van een vorige opdracht niet hebt opgeslagen

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>

Houd uw aliassen bij de hand wanneer u IEx start

Als u uw veelgebruikte aliassen in een .iex.exs bestand in de hoofdmap van uw app plaatst, laadt IEx ze voor u bij het opstarten.

alias App.{User, Repo}

Aanhoudende geschiedenis

Standaard is de geschiedenis van gebruikersinvoer in IEx niet beschikbaar voor verschillende sessies.

erlang-history voegt geschiedenisondersteuning toe aan zowel de Erlang-shell als IEx :

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

U hebt nu toegang tot uw vorige invoer met behulp van de pijltoetsen omhoog en omlaag, zelfs tijdens verschillende IEx sessies.

Als de Elixir-console vastzit ...

Soms kun je per ongeluk iets in de shell laten lopen dat uiteindelijk voor altijd wacht en daarmee de shell blokkeert:

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

Druk in dat geval op Ctrl-g. Je zult het zien:

User switch command

Voer deze opdrachten in volgorde in:

  • k (om het shell-proces te doden)
  • s (om een nieuw shell-proces te starten)
  • c (om verbinding te maken met het nieuwe shell-proces)

Je komt terecht in een nieuwe Erlang-shell:

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

Typ het volgende om een Elixir-shell te starten:

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

(vergeet de laatste punt niet!)

Dan zie je een nieuw Elixir shell-proces aankomen:

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

Om te ontsnappen uit de modus "in afwachting van meer invoer" (vanwege niet-gesloten aanhalingsteken, haakje, enz.), Type #iex:break , gevolgd door terugloop van de regel ( ):

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

het bovenstaande is met name handig wanneer bij het kopiëren en plakken van een relatief groot fragment de console in de modus "In afwachting van meer invoer" wordt gezet.

uitbreken van onvolledige uitdrukking

Wanneer u iets in IEx hebt ingevoerd dat een voltooiing verwacht, zoals een tekenreeks met meerdere regels, wijzigt IEx de prompt om aan te geven dat het op u wacht door de prompt te wijzigen in een ellips ( ... ) in plaats van iex .

Als u merkt dat IEx op u wacht om een uitdrukking af te maken, maar u weet niet zeker wat het nodig heeft om de uitdrukking te beëindigen, of wilt u gewoon deze invoerregel afbreken, voer dan #iex:break als console-invoer. Dit zal ertoe leiden dat IEx een TokenMissingError en het wachten op meer invoer annuleert, waardoor u terugkeert naar een standaard "topniveau" console-invoer.

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

Meer informatie is beschikbaar in de IEx-documentatie .

Laad een module of script in de IEx-sessie

Als u een elixerbestand hebt; een script of een module en deze in de huidige IEx-sessie wilt laden, kunt u de c/1 methode gebruiken:

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

Hiermee wordt de module in IEx gecompileerd en geladen, en kun je alle openbare methoden aanroepen.

Voor scripts zal het onmiddellijk de inhoud van het script uitvoeren:

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


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow