Elixir 대화 식 Shell: 4. 파일 과 스 크 립 트 처리
3239 단어 elixir
이것 은
IEx
다섯 부분 중 네 번 째 부분 입 니 다. 이 부분 에서 저 희 는 IEx 에서 파일 과 스 크 립 트 를 처리 하 는 방법 을 설명 할 것 입 니 다.파일 가 져 오기
입력
h import_file
문서 보기iex(remote@localhost)2> h import_file
Evaluates the contents of the file at path as if it were directly typed into the shell.
...
import_file
가 져 온 파일 에 값 을 구 하 는 역할 을 합 니 다. 셸 에 직접 입력 하 는 것 처럼 파일 의 내용 을 복사 하여 붙 여 넣 는 효과 와 똑 같 습 니 다.로 컬 변수
다음 과 같은
IEx Shell
파일 이 있 습 니 다.fred = :fred
defmodule Hello do
def foo do
"This is foo"
end
end
IO.puts fred
iex(1)> import_file "test1.exs"
fred
:ok
iex(2)> fred
:fred
iex(3)> Hello.foo
"This is foo"
iex(4)>
왜냐하면
test1.exs
IEx 에서 가 져 온 상하 문 에서 값 을 구하 기 때문이다import_file
fred = :fred
defmodule Hello do
def foo do
"This is foo"
end
end
x10 = x * 10
# `x`
정의
test2.exs
, 가 져 오기 x
iex(1)> x = 5
5
iex(2)> import_file
import_file/2
iex(2)> import_file "test2.exs"
50
iex(3)> x10
50
우 리 는
test2.exs
의 정확 한 결 과 를 보 았 다 x10 = x * 10
.50
검색IEX -S
항목 에서 로 컬 mix
그렇지 않 으 면
mix.exs
IEx.pry
는 우리 에 게 Elixir 코드 를 디 버 깅 하 는 능력 을 제공 합 니 다. 우 리 는 IEx.pry
위치 에 삽 입 된 역할 영역 내의 변수 값 을 방문 할 수 있 습 니 다. IEx.pry
IEx 를 IEx.pry
위치 에 삽입 한 IEx.pry
에 들 어가 게 할 수 있 기 때문에 이 역할 영역 외부의 변 수 는 IEx 에서 더 이상 접근 할 수 없습니다. 아래 의 예 는
가 어떻게 작 동 하 는 지 설명 합 니 다.우선
IEx.pry
파일 을 만 듭 니 다.cat > pry.exs <
iex(1)> bar = :bar
:bar
iex(2)> import_file "pry.exs"
{:module, Hello,
<<70, 79, 82, 49, 0, 0, 15, 24, 66, 69, 65, 77, 69, 120, 68, 99, 0, 0, 0, 126, 131, 104, 2, 100, 0, 14, 101, 108, 105, 120, 105, 114, 95, 100, 111, 99, 115, 95, 118, 49, 108, 0, 0, 0, 4, 104, 2, ...>>,
{:foo, 0}}
iex(3)> bar
:bar
iex(4)> fred
:fred
iex(5)> Hello.foo #
Request to pry #PID<0.62.0> at iex:7
Allow? [Yn] Y
Interactive Elixir (1.2.1) - press Ctrl+C to exit (type h() ENTER for help)
pry(1)> bar #
** (UndefinedFunctionError) undefined function :erl_eval.bar/0
pry(1)> fred
** (UndefinedFunctionError) undefined function :erl_eval.fred/0
pry(1)> x # foo x
5
pry(2)> x = 4
4
pry(3)> respawn # `IEx.pry` IEx Shell
Interactive Elixir (1.2.1) - press Ctrl+C to exit (type h() ENTER for help)
x is 5 # `IEx.pry` , x
:ok
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Elixir에서 한 번만 작업하기일반적인 솔루션은 향후 호출자를 위해 계산된 값을 캐시하는 것이지만 콜드 캐시(또는 캐시된 값이 만료된 경우)에서는 여전히 함수가 여러 번 실행될 수 있습니다. 따라서 여러 프로세스가 GenServer 를 호출하면 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.