Recherche…


Recompiler le projet avec `recompile`

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

Voir la documentation avec `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

Récupère la valeur de la dernière commande avec `v`

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

Voir aussi: Obtenir la valeur d'une ligne avec `v`

Récupère la valeur d'une commande précédente avec `v`

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

Vous pouvez obtenir une ligne spécifique en passant l'index de la ligne:

iex(4)> v(3)
30

Vous pouvez également spécifier un index relatif à la ligne en cours:

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

La valeur peut être réutilisée dans d'autres calculs:

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

Si vous spécifiez une ligne non existante, IEx une erreur:

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

Quittez la console IEx

  1. Utilisez Ctrl + C, Ctrl + C pour quitter
iex(1)>
BREAK: (a)bort (c)ontinue (p)roc info (i)nfo (l)oaded
       (v)ersion (k)ill (D)b-tables (d)istribution
  1. Utilisez Ctrl+ \ pour quitter immédiatement

Voir les informations avec `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

Création de PID

Ceci est utile lorsque vous n'avez pas stocké le PID d'une commande précédente

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>

Ayez vos alias prêts lorsque vous démarrez IEx

Si vous placez vos alias couramment utilisés dans un fichier .iex.exs à la racine de votre application, IEx les chargera au démarrage.

alias App.{User, Repo}

Histoire persistante

Par défaut, l'historique des entrées utilisateur dans IEx ne persiste pas dans les différentes sessions.

erlang-history ajoute le support de l'historique à la fois au shell Erlang et à IEx :

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

Vous pouvez maintenant accéder à vos entrées précédentes à l'aide des flèches haut et bas, même sur différentes sessions IEx .

Quand la console Elixir est bloquée ...

Parfois, vous risquez de lancer accidentellement quelque chose dans le shell qui finit par attendre pour toujours, bloquant ainsi le shell:

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

Dans ce cas, appuyez sur Ctrl-g. Tu verras:

User switch command

Entrez ces commandes dans l'ordre:

  • k (pour tuer le processus shell)
  • s (pour démarrer un nouveau processus shell)
  • c (pour se connecter au nouveau processus shell)

Vous allez vous retrouver dans une nouvelle coque Erlang:

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

Pour démarrer un shell Elixir, tapez:

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

(n'oubliez pas le dernier point!)

Ensuite, vous verrez apparaître un nouveau processus shell 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)>

Pour échapper au mode "en attente de plus d'entrées" (dû à des guillemets non #iex:break , des crochets, etc.), tapez #iex:break , suivi d'un retour chariot ( ):

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

Ce qui précède est particulièrement utile lorsque le copier-coller d'un fragment de code relativement volumineux transforme la console en mode «attente d'une entrée supplémentaire».

sortir de l'expression incomplète

Lorsque vous avez entré quelque chose dans IEx qui attend une complétion, telle qu'une chaîne multiligne, IEx changera l'invite pour indiquer qu'elle attend que vous finissiez en changeant l'invite pour avoir des points de suspension ( ... ) plutôt que iex .

Si vous trouvez que IEx attend que vous finissiez une expression mais que vous ne savez pas exactement ce qu'il faut pour terminer l'expression ou que vous souhaitiez simplement abandonner cette ligne d'entrée, entrez #iex:break comme entrée de la console. Cela entraînera IEx à lancer une TokenMissingError et à annuler l'attente d'une entrée supplémentaire, vous ramenant ainsi à une entrée de console standard "de niveau supérieur".

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

Plus d'informations sont disponibles dans la documentation IEx .

Charger un module ou un script dans la session IEx

Si vous avez un fichier d'élixir; un script ou un module et que vous souhaitez le charger dans la session IEx en cours, vous pouvez utiliser la méthode c/1 :

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

Cela compilera et chargera le module dans IEx, et vous pourrez appeler toutes ses méthodes publiques.

Pour les scripts, il exécutera immédiatement le contenu du 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
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow