Elixir Language
IEx 콘솔 팁 및 트릭
수색…
`recompile`으로 프로젝트를 다시 컴파일하십시오.
iex(1)> recompile
Compiling 1 file (.ex)
:ok
`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
마지막 명령의 값을`v`로 얻습니다.
iex(1)> 1 + 1
2
iex(2)> v
2
iex(3)> 1 + v
3
또한 : `v`로 행의 값을 얻으십시오.
이전 명령의 값을 'v'로 얻습니다.
iex(1)> a = 10
10
iex(2)> b = 20
20
iex(3)> a + b
30
행의 인덱스를 전달하는 특정 행을 가져올 수 있습니다.
iex(4)> v(3)
30
현재 행과 관련된 색인을 지정할 수도 있습니다.
iex(5)> v(-1) # Retrieves value of row (5-1) -> 4
30
iex(6)> v(-5) # Retrieves value of row (5-4) -> 1
10
이 값은 다른 계산에서 다시 사용할 수 있습니다.
iex(7)> v(2) * 4
80
존재하지 않는 행을 지정하면 IEx
에서 오류가 발생합니다.
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
IEx 콘솔 종료
- 종료하려면 Ctrl + C, Ctrl + C를 사용하십시오.
iex(1)>
BREAK: (a)bort (c)ontinue (p)roc info (i)nfo (l)oaded
(v)ersion (k)ill (D)b-tables (d)istribution
-
Ctrl+ \
를 사용하여 즉시 종료하십시오.
'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
PID 생성하기
이것은 이전 명령에서 PID를 저장하지 않았을 때 유용합니다
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>
IEx를 시작할 때 별칭을 준비하십시오.
일반적으로 사용되는 별칭을 응용 프로그램의 루트에있는 .iex.exs
파일에 .iex.exs
가 .iex.exs
때 해당 파일을로드합니다.
alias App.{User, Repo}
지속적인 역사
기본적으로 IEx
사용자 입력 내역은 여러 세션에서 지속되지 않습니다.
erlang-history
는 Erlang 쉘과 IEx
히스토리 지원을 추가합니다.
git clone [email protected]:ferd/erlang-history.git
cd erlang-history
sudo make install
이제 다른 IEx
세션에서도 위아래 화살표 키를 사용하여 이전 입력에 액세스 할 수 있습니다.
엘릭서 콘솔이 멈췄을 때 ...
때로는 실수로 쉘에서 무언가를 실행하여 영원히 기다리고 쉘을 막을 수 있습니다.
iex(2)> receive do _ -> :stuck end
이 경우 Ctrl-g을 누릅니다. 당신은 볼 수:
User switch command
순서대로 다음 명령을 입력하십시오.
-
k
(쉘 프로세스를 죽이기 위해) -
s
(새 쉘 프로세스 시작) -
c
(새로운 쉘 프로세스에 연결하기 위해)
새로운 Erlang 셸로 끝납니다 :
Eshell V8.0.2 (abort with ^G)
1>
Elixir 셸을 시작하려면 다음을 입력하십시오.
'Elixir.IEx.CLI':local_start().
(마지막 점을 잊지 마라!)
그러면 새로운 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)>
" #iex:break
따옴표, 괄호 등으로 인해" "more for input"모드에서 벗어나려면 #iex:break
입력하고 캐리지 리턴 ( ⏎ )을 입력하십시오.
iex(1)> "Hello, "world"
...(1)>
...(1)> #iex:break
** (TokenMissingError) iex:1: incomplete expression
iex(1)>
위의 내용은 비교적 큰 스 니펫을 복사하여 붙여 넣으면 콘솔이 "more-for-more-input"모드로 전환 될 때 특히 유용합니다.
불완전한 표현에서 탈주하다
당신은 이러한 여러 문자열로 완료를 기대 IEX에 뭔가를 입력 할 때, IEX는 줄임표 (하도록 프롬프트를 변경하여 마무리 것이 기다리고 있음을 나타 내기 위해 프롬프트를 변경합니다 ...
이 아니라) iex
.
표현식을 끝내기 위해 IEx가 기다리고 있지만 표현식을 종료하는 데 필요한 것이 확실하지 않거나 단순히이 입력 행을 중단하려면 #iex:break
를 콘솔 입력으로 입력하십시오. 이것은 던져 IEX의 원인이됩니다 TokenMissingError
표준 "최상위"콘솔 입력을 반환하고, 더 이상 입력을 기다리는 취소 할 수 있습니다.
iex:1> "foo"
"foo"
iex:2> "bar
...:2> #iex:break
** (TokenMissingError) iex:2: incomplete expression
자세한 정보는 IEx 문서 에서 확인할 수 있습니다.
IEx 세션에 모듈 또는 스크립트로드
엘릭서 파일을 가지고 있다면; 스크립트 또는 모듈을 현재 IEx 세션에로드하려면 c/1
메서드를 사용할 수 있습니다.
iex(1)> c "lib/utils.ex"
iex(2)> Utils.some_method
이렇게하면 IEx에서 모듈을 컴파일하고로드 할 수 있으며 공용 메서드를 모두 호출 할 수 있습니다.
스크립트의 경우 즉시 스크립트의 내용을 실행합니다.
iex(3)> c "/path/to/my/script.exs"
Called from within the script!