Elixir Language
프로세스
수색…
간단한 프로세스 생성
다음 예에서 Greeter
모듈의 greet
기능은 별도의 프로세스에서 실행됩니다.
defmodule Greeter do def greet do IO.puts "Hello programmer!" end end iex> spawn(Greeter, :greet, []) Hello #PID<0.122.0>
여기 #PID<0.122.0>
은 스폰 된 프로세스의 프로세스 식별자 입니다.
메시지 보내기 및 받기
defmodule Processes do
def receiver do
receive do
{:ok, val} ->
IO.puts "Received Value: #{val}"
_ ->
IO.puts "Received something else"
end
end
end
iex(1)> pid = spawn(Processes, :receiver, [])
#PID<0.84.0>
iex(2)> send pid, {:ok, 10}
Received Value: 10
{:ok, 10}
재귀 및 수신
재귀는 여러 메시지를 수신하는 데 사용할 수 있습니다.
defmodule Processes do
def receiver do
receive do
{:ok, val} ->
IO.puts "Received Value: #{val}"
_ ->
IO.puts "Received something else"
end
receiver
end
end
iex(1)> pid = spawn Processes, :receiver, []
#PID<0.95.0>
iex(2)> send pid, {:ok, 10}
Received Value: 10
{:ok, 10}
iex(3)> send pid, {:ok, 42}
{:ok, 42}
Received Value: 42
iex(4)> send pid, :random
:random
Received something else
Elixir는 함수 호출이 예제 에서처럼 함수에서 마지막으로 발생하는 한 꼬리 호출 재귀 최적화를 사용합니다.
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow