Elixir : .ex 사용시기 및 .exs 파일시기


80

비약의 문서는 명시 것을

Elixir 파일 확장자 .ex 외에도 Elixir는 스크립팅을위한 .exs 파일도 지원합니다. Elixir는 두 파일을 똑같은 방식으로 처리합니다. 유일한 차이점은 의도에 있습니다. .ex 파일은 컴파일을위한 것이며 .exs 파일은 컴파일 할 필요없이 스크립팅에 사용됩니다.

하지만 언제 어떤 파일 형식을 사용해야할지 잘 모르겠습니다. .ex 및 .exs의 단점과 목적은 무엇입니까?

답변:


148

.ex컴파일 된 코드 용이고 .exs해석 된 코드 용입니다.

예를 들어 ExUnit 테스트는 .exs파일에 있으므로 테스트를 변경할 때마다 다시 컴파일 할 필요가 없습니다. 스크립트 나 테스트를 작성하는 경우 .exs파일을 사용 하십시오. 그렇지 않으면 .ex파일을 사용 하고 코드를 컴파일하십시오.

장단점에 관한 한 해석은 실행하는 데 더 오래 걸리지 만 (엘릭서가 구문 분석, 토큰 화 등을 수행해야하므로) 컴파일을 실행할 필요가 없습니다. 스크립트 실행의 유연성이 최적화 된 실행 시간보다 더 중요하다면 .exs. 대부분의 경우 .ex.


6

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"

1

나는 비약 버전 1.9.1에서 그것을 확인하고 모두 확장은 .ex, .exs컴파일됩니다 elixirc. 즉, .beam두 경우 모두 바이트 코드 ( 파일)를 얻습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.