Elixirs Documentation指出
除Elixir文件扩展名.ex外,Elixir还支持 用于编写脚本的.exs文件。 Elixir将两个文件完全相同 方式,唯一的区别在于意图。 .ex文件应该是 编译而.exs文件用于编写脚本,而不需要 汇编
但我仍然不确定何时使用哪种文件类型。 .ex和.exs的缺点和目的是什么?
答案 0 :(得分:108)
.ex
用于编译代码,.exs
用于解释代码。
.exs
个文件中,因此您不必在每次更改测试时重新编译。如果您正在编写脚本或测试,请使用.exs
个文件。否则,只需使用.ex
个文件并编译代码。
就优点/缺点而言,解释将需要更长的时间来执行(因为长生不老药必须解析,标记化等),但不需要编译才能运行。几乎就是这样 - 如果运行脚本的灵活性比优化的执行时间更重要,请使用.exs
。大多数情况下,您都会使用.ex
。
答案 1 :(得分:0)
Elixir将编译整个.ex文件。 .exs文件也可以编译,但是可以在调用时执行。因此,.exs文件的大多数使用情况是在被调用时立即执行代码。考虑使用.exs文件进行测试,迁移数据和运行脚本。可以将.ex文件视为用于应用程序的主要业务逻辑。
考虑此示例
.ex示例
sum.ex
defmodule Sum do
add(a, b) do
a + b
end
end
$ iex sum.ex
iex> Sum.add(1,2)
3
.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}"
$ elixir sum.exs
->> "The sum of 3 + 2 is: 5"
答案 2 :(得分:0)
我在Elixir 1.9.1版中进行了检查,并且两个扩展名.ex
,.exs
都将使用elixirc
进行编译。换句话说,在两种情况下,我们都得到字节码(.beam
文件)。
答案 3 :(得分:-3)
在Elixir中,有两种类型的文件,脚本文件(扩展名为.exs)和代码文件(扩展名为.ex)。区别在于.ex扩展名的文件用于使用elixirc进行编译,而.exs则直接用于elixir
来源:http://blog.distortedthinking.agency/articles/functions-functions-and-more-functions/