From 3781b7f8919e5791607d557c648d7f84a51384b7 Mon Sep 17 00:00:00 2001 From: Timothy Ye Date: Thu, 27 Aug 2015 18:56:31 +0800 Subject: [PATCH 1/3] Update Chapter2.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 勘误 --- getting_started/Chapter2.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting_started/Chapter2.md b/getting_started/Chapter2.md index b1222e4..fa26a70 100644 --- a/getting_started/Chapter2.md +++ b/getting_started/Chapter2.md @@ -303,7 +303,7 @@ iex> list ++ [4] [1, 2, 3, 4] ``` -在上面的例子中,第一个操作是比较块的,因为我们只是加入了一个新的元组,并且让它指向旧的列表。第二个列子就比较慢了,因为我们必须重建整个列表然后才能加入新元素。 +在上面的例子中,第一个操作是比较快的,因为我们只是加入了一个新的元组,并且让它指向旧的列表。第二个列子就比较慢了,因为我们必须重建整个列表然后才能加入新元素。 从另一方面来说,元组在内存中是一个整体。这意味着获取它的大小或通过索引来访问元素是非常快的。然而,修改或增减元组中的元素是非常昂贵的操作,因为它首先需要在内存中复制整个元组。 From fa3fe23e1d338cce156380f9f773b84f1624acc4 Mon Sep 17 00:00:00 2001 From: Timothy Ye Date: Thu, 27 Aug 2015 19:08:42 +0800 Subject: [PATCH 2/3] Update Chapter2.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 第二章勘误 --- getting_started/Chapter2.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/getting_started/Chapter2.md b/getting_started/Chapter2.md index fa26a70..c712b3a 100644 --- a/getting_started/Chapter2.md +++ b/getting_started/Chapter2.md @@ -307,7 +307,7 @@ iex> list ++ [4] 从另一方面来说,元组在内存中是一个整体。这意味着获取它的大小或通过索引来访问元素是非常快的。然而,修改或增减元组中的元素是非常昂贵的操作,因为它首先需要在内存中复制整个元组。 -更具这些性能上的特点,我们可以来决定两者的不同用途。一个非常常见的例子是用函数返回一个元组来表示附加的信息。比如,`File.read/1`用来读取一个文件的内同,它返回的就是一个元组: +根据这些性能上的特点,我们可以来决定两者的不同用途。一个非常常见的例子是用函数返回一个元组来表示附加的信息。比如,`File.read/1`用来读取一个文件的内同,它返回的就是一个元组: ``` iex> File.read("path/to/existing/file") @@ -316,8 +316,8 @@ iex> File.read("path/to/unknown/file") {:error, :enoent} ``` -在Elixir中,当我们计算一个数据结构的大小时,需要遵循一个简单的原则:当这个操作所需的时间是一个恒量(也就是说,这个数值是事先已经计算好了的)的时候,函数应该用`size`来命名,否这的话应该用`length`。 +在Elixir中,当我们计算一个数据结构的大小时,需要遵循一个简单的原则:当这个操作所需的时间是一个恒量(也就是说,这个数值是事先已经计算好了的)的时候,函数应该用`size`来命名,否则的话应该用`length`。 例如,迄今我们遇到过4个此类的函数:`byte_size/1`(获取字符串中的字节数),`tuple_size/1`(获取元组的大小),`length/1`(获取列表的大小),`String.length/1`(获取字符串中的字符数)。可见,当我们用`byte_size/1`去获得字符串中的字节数的时候,这个操作是相当简单的,但当我们希望用`String.length/1`得到其中的unicode字符的数量时是非常昂贵的,因为我们需要历遍整个字符串。 -Elixir同时也支持其他的一些数据类型,`Port`,`Reperence`和`PID`,用于进程间的通许。当讲到进程相关的章节的时候,我们会具体谈到它们。现在让我们了解一下和基础数据结构相关的一些基础操作符。 +Elixir同时也支持其他的一些数据类型,`Port`,`Reperence`和`PID`,用于进程间的通讯。当讲到进程相关的章节的时候,我们会具体谈到它们。现在让我们了解一下和基础数据结构相关的一些基础操作符。 From c18aa610a0fd25d4159ae152bc9f69f95da5312b Mon Sep 17 00:00:00 2001 From: Timothy Ye Date: Thu, 27 Aug 2015 19:14:55 +0800 Subject: [PATCH 3/3] Update Chapter3.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 第三章勘误 --- getting_started/Chapter3.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/getting_started/Chapter3.md b/getting_started/Chapter3.md index 4d2e54f..ed46946 100644 --- a/getting_started/Chapter3.md +++ b/getting_started/Chapter3.md @@ -18,7 +18,7 @@ iex> "foo" <> "bar" "foobar" ``` -Elixir也提供个是那个布尔值操作符`or`,`and`和`not`。这些操作符严格地指定它们一个参数必须是一个布尔值(`true`或者`false`): +Elixir也提供布尔值操作符`or`,`and`和`not`。这些操作符严格地指定它们一个参数必须是一个布尔值(`true`或者`false`): ``` iex> true and true @@ -98,7 +98,7 @@ iex> 1 < :atom true ``` -我们之所以可以在Elixir在不同数据类型之间比较是因为有一个内建的不同类型之间的顺序,所以算法在排序时无需担心数据类型上 的不同。下面就是内建的类型之间的顺序: +我们之所以可以在Elixir的不同数据类型之间比较是因为有一个内建的不同类型之间的顺序,所以算法在排序时无需担心数据类型上 的不同。下面就是内建的类型之间的顺序: ``` number < atom < reference < functions < port < pid < tuple < maps < list < bitstring