Skip to content

Commit 27bb034

Browse files
author
Dave Wu
authored
Merge pull request #12 from hzlu/master
update process
2 parents 388c2b4 + 903dfca commit 27bb034

File tree

3 files changed

+4
-4
lines changed

3 files changed

+4
-4
lines changed

11-process.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ end
225225

226226
执行一下```iex kv.exs```
227227
```elixir
228-
iex> {:ok, pid} = KV.start
228+
iex> {:ok, pid} = KV.start_link
229229
#PID<0.62.0>
230230
iex> send pid, {:get, :hello, self()}
231231
{:get, :hello, #PID<0.41.0>}
@@ -272,7 +272,7 @@ iex> Agent.get(pid, fn map -> Map.get(map, :hello) end)
272272
:world
273273
```
274274

275-
```Agent.start/2```方法加上```:name```选项,可以自动为其注册一个名字。
275+
```Agent.start_link/2```方法加上```:name```选项,可以自动为其注册一个名字。
276276

277277
除了agents,Elixir还提供了一套API来创建通用服务器(generic servers,称作GenServer),任务等。
278278
这些都是建立在进程概念之上的实现。其它概念,包括“管理者”树,都可以在《高级》篇里找到更详细的说明。

14-mod-attr.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ Plug.Adapters.Cowboy.http MyPlug, []
152152
上面例子中,我们用了`plug/1`宏来连接处理请求时会被调用的函数。
153153
在代码背后,每次调用宏`plug/1`时,Plug库把提供的参数(即plug的名字)存储在`@plugs`属性里。
154154
就在模块被编译之前,Plug会执行一个回调函数,该回调函数定义一个函数(`call/2`)来处理http请求。
155-
这个函数将按顺序执行所有保存在`@plug`属性里的plugs。
155+
这个函数将按顺序执行所有保存在`@plugs`属性里的plugs。
156156

157157
要理解底层的代码,我们还需要了解宏,因此我们将在后期《元编程》章节中回顾这个模式。
158158
这里的重点是怎样使用属性来存储数据,让开发者可以创建DSL(领域特定语言)。

15-structs.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ iex> defmodule User do
2424
```
2525

2626
`defstruct/1`的参数(一个键值列表)定义了结构体的字段和默认值。结构体使用了定义它的模块的名字。
27-
向上面这个例子,我们定义的结构体叫做`User`
27+
像上面这个例子,我们定义的结构体叫做`User`
2828

2929
现在可以用类似创建图的语法来创建结构体`User`
3030

0 commit comments

Comments
 (0)