mirror of
https://github.com/adambard/learnxinyminutes-docs.git
synced 2024-11-26 20:34:32 +03:00
Merge pull request #1606 from chriszimmerman/elixir-docs
Receive do documentation for Elixir
This commit is contained in:
commit
29e7a6631e
@ -7,6 +7,7 @@ contributors:
|
||||
- ["Shaun McCarthy", "http://www.shaunmccarthy.com"]
|
||||
- ["Wouter Van Schandevijl", "http://github.com/laoujin"]
|
||||
- ["Jo Pearce", "http://github.com/jdpearce"]
|
||||
- ["Chris Zimmerman", "https://github.com/chriszimmerman"]
|
||||
filename: LearnCSharp.cs
|
||||
---
|
||||
|
||||
@ -394,6 +395,7 @@ on a new line! ""Wow!"", the masses cried";
|
||||
ref int maxCount, // Pass by reference
|
||||
out int count)
|
||||
{
|
||||
//the argument passed in as 'count' will hold the value of 15 outside of this function
|
||||
count = 15; // out param must be assigned before control leaves the method
|
||||
}
|
||||
|
||||
|
@ -369,6 +369,13 @@ spawn(f) #=> #PID<0.40.0>
|
||||
# messages to the process. To do message passing we use the `send` operator.
|
||||
# For all of this to be useful we need to be able to receive messages. This is
|
||||
# achieved with the `receive` mechanism:
|
||||
|
||||
# The `receive do` block is used to listen for messages and process
|
||||
# them when they are received. A `receive do` block will only
|
||||
# process one received message. In order to process multiple
|
||||
# messages, a function with a `receive do` block must recursively
|
||||
# call itself to get into the `receive do` block again.
|
||||
|
||||
defmodule Geometry do
|
||||
def area_loop do
|
||||
receive do
|
||||
@ -384,6 +391,8 @@ end
|
||||
|
||||
# Compile the module and create a process that evaluates `area_loop` in the shell
|
||||
pid = spawn(fn -> Geometry.area_loop() end) #=> #PID<0.40.0>
|
||||
# Alternatively
|
||||
pid = spawn(Geometry, :area_loop, [])
|
||||
|
||||
# Send a message to `pid` that will match a pattern in the receive statement
|
||||
send pid, {:rectangle, 2, 3}
|
||||
|
Loading…
Reference in New Issue
Block a user