Saltar al contenido

Elixir: cuándo usar archivos .ex y cuándo archivos .exs

Recuerda que en la informática un problema suele tener diversas resoluciones, pero compartiremos lo más óptimo y mejor.

Solución:

.ex es para código compilado, .exs es para código interpretado.

Las pruebas ExUnit, por ejemplo, están en .exs archivos para que no tenga que volver a compilar cada vez que realice un cambio en sus pruebas. Si está escribiendo guiones o pruebas, utilice .exs archivos De lo contrario, solo use .ex archivos y compilar su código.

En cuanto a los pros/contras, la interpretación tardará más en ejecutarse (ya que elixir tiene que analizar, tokenizar, etc.), pero no requiere compilación para ejecutarse. Eso es prácticamente todo: si la flexibilidad de ejecutar scripts es más importante que el tiempo de ejecución optimizado, use .exs. La mayoría de las veces, usará .ex.

Elixir compilará todo el archivo .ex. Los archivos .exs también se compilan, pero están destinados a ejecutarse cuando se invocan. Por lo tanto, la mayoría de los casos de uso de los archivos .exs son para ejecutar el código inmediatamente cuando se les llama. Piense en usar archivos .exs para realizar pruebas, migrar datos y ejecutar scripts. Piense en los archivos .ex como si se usaran para la lógica comercial principal de su aplicación.

Considere este ejemplo

muestra .ex

sum.ex

defmodule Sum do
  add(a, b) do
     a + b
  end
end

$ iex suma.ex

iex> Sum.add(1,2)
3

muestra .exs

sum.exs

defmodule Sum do
  def add(a,b)  do
    a + b
  end
end

#within same file

IO.puts "The sum of 3 + 2 is: #inspect Sum.add(3, 2"

$ suma elixir.exs

 ->> "The sum of 3 + 2 is: 5"

Lo compruebo en Elixir versión 1.9.1 y ambas extensiones .ex, .exs será compilado con elixirc. En otras palabras, obtenemos bytecode (.beam expediente) en ambos casos.

Te mostramos comentarios y valoraciones

Recuerda mostrar este enunciado si te ayudó.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *