From faa03c52066f151a4e1b2afca62d4e04551d8e7a Mon Sep 17 00:00:00 2001
From: wizardforcel <562826179@qq.com>
Date: Wed, 18 Mar 2020 10:42:58 +0800
Subject: [PATCH] 2020-03-18 10:42:58
---
docs/03.md | 2 +-
docs/04.md | 2 +-
docs/06.md | 2 +-
docs/08.md | 6 ++--
docs/09.md | 2 +-
docs/10.md | 8 ++---
docs/11.md | 10 +++---
docs/12.md | 90 +++++++++++++++++++++++++++---------------------------
docs/13.md | 40 ++++++++++++------------
docs/14.md | 30 +++++++++---------
docs/15.md | 36 +++++++++++-----------
docs/16.md | 22 ++++++-------
docs/17.md | 4 +--
docs/18.md | 30 +++++++++---------
docs/19.md | 14 ++++-----
docs/20.md | 80 ++++++++++++++++++++++++------------------------
docs/21.md | 2 +-
docs/22.md | 4 +--
docs/23.md | 20 ++++++------
docs/24.md | 22 ++++++-------
docs/25.md | 4 +--
docs/26.md | 26 ++++++++--------
docs/27.md | 20 ++++++------
docs/28.md | 46 ++++++++++++++--------------
docs/29.md | 20 ++++++------
docs/30.md | 28 ++++++++---------
docs/31.md | 24 +++++++--------
docs/32.md | 74 ++++++++++++++++++++++----------------------
docs/33.md | 82 ++++++++++++++++++++++++-------------------------
docs/34.md | 26 ++++++++--------
docs/35.md | 12 ++++----
docs/36.md | 16 +++++-----
docs/37.md | 8 ++---
docs/38.md | 2 +-
docs/39.md | 6 ++--
docs/42.md | 4 +--
docs/43.md | 8 ++---
docs/44.md | 12 ++++----
docs/45.md | 6 ++--
39 files changed, 425 insertions(+), 425 deletions(-)
diff --git a/docs/03.md b/docs/03.md
index 58d7906..f07d013 100644
--- a/docs/03.md
+++ b/docs/03.md
@@ -1,3 +1,3 @@
## 捐
-为了跟上我的工作并定期更新书籍,请考虑捐赠。 您可以在此处通过[PayPal]向我捐款 [https://www.paypal.me/mindaslab](https://www.paypal.me/mindaslab)
\ No newline at end of file
+为了跟上我的工作并定期更新书籍,请考虑捐赠。 你可以在此处通过[PayPal]向我捐款 [https://www.paypal.me/mindaslab](https://www.paypal.me/mindaslab)
\ No newline at end of file
diff --git a/docs/04.md b/docs/04.md
index 839600f..116299f 100644
--- a/docs/04.md
+++ b/docs/04.md
@@ -1,3 +1,3 @@
## 前言
-自从我开始写《我爱红宝石》以来已有很长时间了。 我首先将这本书投影为玩具编程书,但现在不再如此,这本书已经发展成为一种严肃的东西。 有可能对认真的 Ruby 的人来说是一本书,因此这本书正在发生巨大的变化。 这本书完全用 Asciidoc 编写。 从上到下的证明都是正确的。 它的所有示例都适用于 Ruby 2.5,最后这本书在网上,epub,pdf 和印刷版中出现。 希望您喜欢学习 Ruby。
\ No newline at end of file
+自从我开始写《我爱红宝石》以来已有很长时间了。 我首先将这本书投影为玩具编程书,但现在不再如此,这本书已经发展成为一种严肃的东西。 有可能对认真的 Ruby 的人来说是一本书,因此这本书正在发生巨大的变化。 这本书完全用 Asciidoc 编写。 从上到下的证明都是正确的。 它的所有示例都适用于 Ruby 2.5,最后这本书在网上,epub,pdf 和印刷版中出现。 希望你喜欢学习 Ruby。
\ No newline at end of file
diff --git a/docs/06.md b/docs/06.md
index ee0b9ad..12814a1 100644
--- a/docs/06.md
+++ b/docs/06.md
@@ -4,4 +4,4 @@ Ruby 是一种易于学习的编程语言,它是由日本的 Matz <sup clas
当我开始用 Ruby 编程时,我感到很兴奋。 我的第一个应用程序是为我妈妈(一位老师)设计的学生排名软件。 我仅用 32 行就能编写基于控制台的应用程序!!! 这让我睁开了眼睛,让我意识到了 Ruby 的强大功能。 该语言简单,易学且几乎完美。 目前,我是一名专业的 Ruby on Rails 程序员。
-这本书是为 GNU / Linux(Debian 发行版)用户编写的,因为我认为 GNU / Linux 将在不久的将来征服程序员的桌面。 几乎所有拥有基于 Debian GNU / Linux 发行版的人都应该在尝试使用本书学习 Ruby 时感到宾至如归。 如果您使用的是 Solaris,OSX 或 Windows 等其他操作系统,请联系您的操作系统帮助渠道,以了解如何安装或开始使用 Ruby。 您也可以访问 [http://ruby-lang.org](http://ruby-lang.org) 了解 Ruby 入门。
\ No newline at end of file
+这本书是为 GNU / Linux(Debian 发行版)用户编写的,因为我认为 GNU / Linux 将在不久的将来征服程序员的桌面。 几乎所有拥有基于 Debian GNU / Linux 发行版的人都应该在尝试使用本书学习 Ruby 时感到宾至如归。 如果你使用的是 Solaris,OSX 或 Windows 等其他操作系统,请联系你的操作系统帮助渠道,以了解如何安装或开始使用 Ruby。 你也可以访问 [http://ruby-lang.org](http://ruby-lang.org) 了解 Ruby 入门。
\ No newline at end of file
diff --git a/docs/08.md b/docs/08.md
index 2b3b041..0c7f3ef 100644
--- a/docs/08.md
+++ b/docs/08.md
@@ -1,13 +1,13 @@
## 取得这本书
-您可以在此处 [https://i-love-ruby.gitlab.io/](https://i-love-ruby.gitlab.io/) 获得此书,并在 [https://gitlab.com/i-获得完整的书和源代码。 love-ruby / i-love-ruby.gitlab.io](https://gitlab.com/i-love-ruby/i-love-ruby.gitlab.io) 。
+你可以在此处 [https://i-love-ruby.gitlab.io/](https://i-love-ruby.gitlab.io/) 获得此书,并在 [https://gitlab.com/i-获得完整的书和源代码。 love-ruby / i-love-ruby.gitlab.io](https://gitlab.com/i-love-ruby/i-love-ruby.gitlab.io) 。
可以从此处 [https://i-love-ruby.gitlab.io/print.pdf](https://i-love-ruby.gitlab.io/print.pdf) 获得 PDF 版本。 可以在此处 [https://i-love-ruby.gitlab.io/epub.epub](https://i-love-ruby.gitlab.io/epub.epub) 找到 Epub 版本。
### 在亚马逊上
-如果您想要这本书的印刷版,可以在 [https://www.amazon.com/dp/1796378429/](https://www.amazon.com/dp/1796378429/) 中找到。 亚马逊也为您提供了 ePub 版本,但需要付费。 我正在努力制作免费的 ePub 版本。 让我们来看看。
+如果你想要这本书的印刷版,可以在 [https://www.amazon.com/dp/1796378429/](https://www.amazon.com/dp/1796378429/) 中找到。 亚马逊也为你提供了 ePub 版本,但需要付费。 我正在努力制作免费的 ePub 版本。 让我们来看看。
### 联系作者
-您可以通过 [mindaslab@protonmail.com](mailto:mindaslab@protonmail.com) 或通过电话+91 8428050777 或通过 Twitter @karthik_ak 与 Karthikeyan A K 联系。 我希望收到阅读我的书的人的来信,所以如果您愿意,请写信给我。
\ No newline at end of file
+你可以通过 [mindaslab@protonmail.com](mailto:mindaslab@protonmail.com) 或通过电话+91 8428050777 或通过 Twitter @karthik_ak 与 Karthikeyan A K 联系。 我希望收到阅读我的书的人的来信,所以如果你愿意,请写信给我。
\ No newline at end of file
diff --git a/docs/09.md b/docs/09.md
index 1ce490d..1d8251e 100644
--- a/docs/09.md
+++ b/docs/09.md
@@ -1,3 +1,3 @@
## 先决条件
-本书为您提供了足够的知识,可以从头开始学习 Ruby。 但是,如果您已经知道或拥有这些东西,那将是很好的。 首先是一台 GNU / Linux 计算机。 我建议使用 Ubuntu [https://ubuntu.com](https://ubuntu.com) 计算机。 该操作系统正在成为每个优秀程序员的操作系统。 您要做的第二件事是培养 GNU / Linux 的知识,您可以阅读 [https://linuxjourney.com](https://linuxjourney.com) 上的教程以获取知识。 一旦掌握了这些知识,您将可以更好地学习 Ruby。
\ No newline at end of file
+本书为你提供了足够的知识,可以从头开始学习 Ruby。 但是,如果你已经知道或拥有这些东西,那将是很好的。 首先是一台 GNU / Linux 计算机。 我建议使用 Ubuntu [https://ubuntu.com](https://ubuntu.com) 计算机。 该操作系统正在成为每个优秀程序员的操作系统。 你要做的第二件事是培养 GNU / Linux 的知识,你可以阅读 [https://linuxjourney.com](https://linuxjourney.com) 上的教程以获取知识。 一旦掌握了这些知识,你将可以更好地学习 Ruby。
\ No newline at end of file
diff --git a/docs/10.md b/docs/10.md
index 9a6624b..22f6d4a 100644
--- a/docs/10.md
+++ b/docs/10.md
@@ -2,11 +2,11 @@
### 1.1。 在 Debian Flavor GNU / Linux 上安装 Ruby
-您需要安装称为 RVM(红宝石版本管理器)的东西,它将管理多个 ruby 版本。 为什么? 这是因为 Ruby 的版本变化如此之快。在您使用 1.8 之前,现在是 1.9,不久之后 Ruby 2 就会问世。 除了仅使用 Ruby 之外,您还可以将其用于其他东西,例如带有 Sinatra 和 Ruby on RailsTM 软件包的 Web 开发。 您可能需要从一个版本更改为另一个版本,而不必一次又一次卸载并重新安装 ruby。 RVM 为您管理。 通过简单的命令,我们可以轻松地在 Ruby 版本之间切换。
+你需要安装称为 RVM(红宝石版本管理器)的东西,它将管理多个 ruby 版本。 为什么? 这是因为 Ruby 的版本变化如此之快。在你使用 1.8 之前,现在是 1.9,不久之后 Ruby 2 就会问世。 除了仅使用 Ruby 之外,你还可以将其用于其他东西,例如带有 Sinatra 和 Ruby on RailsTM 软件包的 Web 开发。 你可能需要从一个版本更改为另一个版本,而不必一次又一次卸载并重新安装 ruby。 RVM 为你管理。 通过简单的命令,我们可以轻松地在 Ruby 版本之间切换。
**安装 RVM:**
-OK,要安装 RVM,您需要具备 curl(可以下载内容的程序)。 要卷曲,只需键入
+OK,要安装 RVM,你需要具备 curl(可以下载内容的程序)。 要卷曲,只需键入
```rb
$ sudo apt-get install curl
@@ -36,7 +36,7 @@ $ source ~/.bashrc
$ rvm install ruby
```
-完成此操作后,您可能需要重新启动终端。 打开终端并输入以下内容:
+完成此操作后,你可能需要重新启动终端。 打开终端并输入以下内容:
```rb
$ ruby -v
@@ -52,7 +52,7 @@ ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-linux]
### 1.2。 安装 IDE
-您需要一个良好的 IDE(集成开发环境)来开始使用 Ruby。 我建议使用简单轻便的 IDE Geany1。 要在 Ubuntu 中安装 IDE,只需键入(不带$):
+你需要一个良好的 IDE(集成开发环境)来开始使用 Ruby。 我建议使用简单轻便的 IDE Geany1。 要在 Ubuntu 中安装 IDE,只需键入(不带$):
```rb
$ sudo apt-get install geany
diff --git a/docs/11.md b/docs/11.md
index 14e3c80..1b29383 100644
--- a/docs/11.md
+++ b/docs/11.md
@@ -1,23 +1,23 @@
## 2.在线资源
-Ruby 拥有一个出色的在线黑客社区,他们随时准备帮助几乎对 Ruby 有任何疑问的任何人。 他们喜欢编程语言,希望其他人喜欢和体验它。 Ruby 是一种很棒的编程语言,它将使您的内心深处受益。 一旦您了解了它并开始与其他黑客互动,您自然就会倾向于帮助他人。 因此,请访问本节推荐的网站。 它们可能对您很有用。
+Ruby 拥有一个出色的在线黑客社区,他们随时准备帮助几乎对 Ruby 有任何疑问的任何人。 他们喜欢编程语言,希望其他人喜欢和体验它。 Ruby 是一种很棒的编程语言,它将使你的内心深处受益。 一旦你了解了它并开始与其他黑客互动,你自然就会倾向于帮助他人。 因此,请访问本节推荐的网站。 它们可能对你很有用。
### 2.1。 Ruby 网站
网址: [http://ruby-lang.org](http://ruby-lang.org)
-Ruby 网站是从 Ruby 开始的好地方。 它为您提供了在操作系统上安装 Ruby 的安装程序。 它具有很酷的链接,例如“尝试 Ruby! 在您的浏览器中”,这使您可以直接从 Web 浏览器中试用 Ruby,并且一个名为“ Ruby in Twenty Minutes”的链接将教您 Ruby 编程的基础知识。 Ruby 是一种简单的语言,您只需要 20 分钟就可以掌握它! 相信我,这是真的!
+Ruby 网站是从 Ruby 开始的好地方。 它为你提供了在操作系统上安装 Ruby 的安装程序。 它具有很酷的链接,例如“尝试 Ruby! 在你的浏览器中”,这使你可以直接从 Web 浏览器中试用 Ruby,并且一个名为“ Ruby in Twenty Minutes”的链接将教你 Ruby 编程的基础知识。 Ruby 是一种简单的语言,你只需要 20 分钟就可以掌握它! 相信我,这是真的!
### 2.2。 Reddit
-Reddit 有一个非常活跃的 Ruby 社区。 您可以在 [https://www.reddit.com/r/ruby/](https://www.reddit.com/r/ruby/) 中找到它。 关于 reddit 的伟大之处在于,故事被其他用户之以鼻,什么才是最好的泡沫。 如果您正在寻找 Ruby 或其他任何技术主题的真正趋势,我发现 reddit 是最好的。
+Reddit 有一个非常活跃的 Ruby 社区。 你可以在 [https://www.reddit.com/r/ruby/](https://www.reddit.com/r/ruby/) 中找到它。 关于 reddit 的伟大之处在于,故事被其他用户之以鼻,什么才是最好的泡沫。 如果你正在寻找 Ruby 或其他任何技术主题的真正趋势,我发现 reddit 是最好的。
### 2.3。 红宝石流
-Ruby flow 是一个网站,我可以使用它随意阅读 Ruby 社区中发生的事情。 这是一个非常干净的网站,Rubyist 可以在其中发布他们认为其他 Rubyists 必须了解的关于 Ruby 的信息。 您可以在此处访问它 [http://www.rubyflow.com/](http://www.rubyflow.com/)
+Ruby flow 是一个网站,我可以使用它随意阅读 Ruby 社区中发生的事情。 这是一个非常干净的网站,Rubyist 可以在其中发布他们认为其他 Rubyists 必须了解的关于 Ruby 的信息。 你可以在此处访问它 [http://www.rubyflow.com/](http://www.rubyflow.com/)
### 2.4。 推特
网址: [http://twitter.com](http://twitter.com)
-Twitter 是一个社交网站。 那我为什么要放在地球上呢? 很多 Ruby 程序员都使用 twitter,这可能是因为 Twitter 最初是用 Ruby 编写的。 要获取有关“ Ruby 编程”的最新消息,请在搜索栏中键入它,然后按搜索。 您将获得有关 Ruby 语言的最新趋势主题。 尝试搜索诸如“ Ruby 语言”之类的等等。
\ No newline at end of file
+Twitter 是一个社交网站。 那我为什么要放在地球上呢? 很多 Ruby 程序员都使用 twitter,这可能是因为 Twitter 最初是用 Ruby 编写的。 要获取有关“ Ruby 编程”的最新消息,请在搜索栏中键入它,然后按搜索。 你将获得有关 Ruby 语言的最新趋势主题。 尝试搜索诸如“ Ruby 语言”之类的等等。
\ No newline at end of file
diff --git a/docs/12.md b/docs/12.md
index 304ba1d..ff25bf7 100644
--- a/docs/12.md
+++ b/docs/12.md
@@ -4,25 +4,25 @@
### 3.1。 交互式红宝石
-Ruby 为我们提供了一种与之交互的简便方法,该功能称为交互式红宝石或 irb <sup class="footnote">[ [5](#_footnotedef_5 "View footnote.") ]</sup> 。 使用 irb,您可以在控制台中键入少量的 ruby 代码,并查看其执行情况。 irb 是检查 Ruby 小代码的好工具。 在终端类型`irb`或`irb –-simple-prompt`中,您将得到如下提示
+Ruby 为我们提供了一种与之交互的简便方法,该功能称为交互式红宝石或 irb <sup class="footnote">[ [5](#_footnotedef_5 "View footnote.") ]</sup> 。 使用 irb,你可以在控制台中键入少量的 ruby 代码,并查看其执行情况。 irb 是检查 Ruby 小代码的好工具。 在终端类型`irb`或`irb –-simple-prompt`中,你将得到如下提示
```rb
2.4.0 :001 >
```
-如果您输入`irb`,将会得到上面的提示
+如果你输入`irb`,将会得到上面的提示
```rb
>>
```
-如果您键入`irb –-simple-prompt`,将会得到上面的提示,从现在开始的示例中,我将使用简单的提示。 让我们编写第一个 hello world 程序,在提示符下键入以下内容(不要键入`>>`)
+如果你键入`irb –-simple-prompt`,将会得到上面的提示,从现在开始的示例中,我将使用简单的提示。 让我们编写第一个 hello world 程序,在提示符下键入以下内容(不要键入`>>`)
```rb
>> puts 'Hello World!'
```
-当您按回车键时,将得到如下输出。 在 Ruby 中,puts 用于将某些东西打印到控制台上。
+当你按回车键时,将得到如下输出。 在 Ruby 中,puts 用于将某些东西打印到控制台上。
```rb
Hello World !
@@ -36,20 +36,20 @@ Hello World !
=> 1562531701075863192779448904272185314811647640213651456
```
-糟糕! 您从来没有想过会这么多,是吗? 无论如何,`**`都用于查找升为另一个数字幂的数字。
+糟糕! 你从来没有想过会这么多,是吗? 无论如何,`**`都用于查找升为另一个数字幂的数字。
要退出 irb 并返回到正常的控制台或终端提示符,请键入`quit`或按键盘上的`Ctrl+c`。
### 3.2。 做一些数学
-计算机是一种可以进行计算或进行一些数学运算的设备。 使用 irb,我们可以进行简单的数学运算。 如果您不喜欢使用数字,ruby 可以为您完成。 因此,首先让我们添加以下数字:1、45、67、893、72、56 和-128。 为此,请在您的 irb 提示中输入这些数字,并用加号“ +”分隔,即可得到结果
+计算机是一种可以进行计算或进行一些数学运算的设备。 使用 irb,我们可以进行简单的数学运算。 如果你不喜欢使用数字,ruby 可以为你完成。 因此,首先让我们添加以下数字:1、45、67、893、72、56 和-128。 为此,请在你的 irb 提示中输入这些数字,并用加号“ +”分隔,即可得到结果
```rb
>> 1 + 45 + 67 + 893 + 72 + 56 + -128
=> 1006
```
-以下是一些常用的数学运算符,您会发现它们很有用
+以下是一些常用的数学运算符,你会发现它们很有用
| 操作员 | 他们做什么 |
@@ -100,7 +100,7 @@ Hello World !
=> 1
```
-**加赋值示例:**声明变量 i,将其设置为零,然后将其加 24。 在红宝石中,您可以如图所示
+**加赋值示例:**声明变量 i,将其设置为零,然后将其加 24。 在红宝石中,你可以如图所示
```rb
>> i = 0
@@ -156,7 +156,7 @@ Hello World !
#### 3.2.1。 空间无关紧要
-可以说我要在 62 上加上 54,如何命令 irb 来做到这一点。 应该是 54 + 62 还是我可以留空格,以便代码可以像 54 + 62 那样整齐地编写。 好吧,幸运的是,在 Ruby 中留出空格并不重要,您可以按照以下所示的多种方式为其提供空间,并且仍然获得相同的结果。
+可以说我要在 62 上加上 54,如何命令 irb 来做到这一点。 应该是 54 + 62 还是我可以留空格,以便代码可以像 54 + 62 那样整齐地编写。 好吧,幸运的是,在 Ruby 中留出空格并不重要,你可以按照以下所示的多种方式为其提供空间,并且仍然获得相同的结果。
```rb
>> 54+62
@@ -182,7 +182,7 @@ Hello World !
=> 1
```
-换句话说,它给出商。 实际上 5 除以 3 几乎是 1.666666666666666667,那么如何获得此答案? 事实是 5 和 3 是整数,或者没有小数部分的数字。 如果您想要一个相当准确的答案,可以将您的命令改写为 Ruby,如下所示
+换句话说,它给出商。 实际上 5 除以 3 几乎是 1.666666666666666667,那么如何获得此答案? 事实是 5 和 3 是整数,或者没有小数部分的数字。 如果你想要一个相当准确的答案,可以将你的命令改写为 Ruby,如下所示
```rb
>> 5.0/3
@@ -193,7 +193,7 @@ Hello World !
### 3.3。 变数
-变量是在其中存储价值的东西。 您可以将它们想象成一个可以容纳鹅卵石的盒子。 如果一个名为`a`的盒子包含五个小卵石,则其值为 5,如果另一个盒子`b`包含三个卵石,则其值为 3。假设您有一个新盒子`c`,并且希望其值为 框`a`和框`b`的总和,然后您只需在`a`和`b`中加上小卵石的数量,总计 8,在`c`中放入 8 个小卵石即可制成`c = a + b`。 希望您能暗示什么是变量。 让我们用 Ruby 编程
+变量是在其中存储价值的东西。 你可以将它们想象成一个可以容纳鹅卵石的盒子。 如果一个名为`a`的盒子包含五个小卵石,则其值为 5,如果另一个盒子`b`包含三个卵石,则其值为 3。假设你有一个新盒子`c`,并且希望其值为 框`a`和框`b`的总和,然后你只需在`a`和`b`中加上小卵石的数量,总计 8,在`c`中放入 8 个小卵石即可制成`c = a + b`。 希望你能暗示什么是变量。 让我们用 Ruby 编程
```rb
>> a = 5
@@ -251,11 +251,11 @@ Hello World !
=> 360
```
-现在您可能知道为什么我们称这些为变量,变量是一个可以包含任何所需值的框。 就像可以从框中添加或删除小卵石一样,您可以对变量进行数学运算。
+现在你可能知道为什么我们称这些为变量,变量是一个可以包含任何所需值的框。 就像可以从框中添加或删除小卵石一样,你可以对变量进行数学运算。
#### 3.3.1。 命名约定
-在芒果示例中,您会注意到我给变量的名称为`buy_price`,`sell_price`,`total_profit`而不是购买`price`,`sell price`,`total profit`,为什么呢? 事实证明,命名变量时必须遵循某种命名约定或规则。 命名变量的规则如下:
+在芒果示例中,你会注意到我给变量的名称为`buy_price`,`sell_price`,`total_profit`而不是购买`price`,`sell price`,`total profit`,为什么呢? 事实证明,命名变量时必须遵循某种命名约定或规则。 命名变量的规则如下:
* 变量名之间不能有空格
@@ -299,7 +299,7 @@ total cost
=> 188031682201497672618081
```
-现在我们想将结果乘以 5 并看到答案,现在上面的结果是一个非常大的 24 <sup class="footnote">[ [6](#_footnotedef_6 "View footnote.") ]</sup> 数字位数,我们必须全部输入并加一个星号 五得到答案,多数民众赞成在很多工作! 如果您是一名程序员,那么懒惰就会渗入您的血管,否则您将另谋高就。 一种方法是将该值分配给变量,然后将其乘以 5,如下所示
+现在我们想将结果乘以 5 并看到答案,现在上面的结果是一个非常大的 24 <sup class="footnote">[ [6](#_footnotedef_6 "View footnote.") ]</sup> 数字位数,我们必须全部输入并加一个星号 五得到答案,多数民众赞成在很多工作! 如果你是一名程序员,那么懒惰就会渗入你的血管,否则你将另谋高就。 一种方法是将该值分配给变量,然后将其乘以 5,如下所示
```rb
>> a = 87 ** 12
@@ -321,7 +321,7 @@ total cost
### 3.4。 常数
-与变量不同,某些值必须恒定,例如地球半径恒定,光速恒定。 在处理此类问题的问题中,或者在您完全确定某些值不会改变的情况下,可以使用常量。
+与变量不同,某些值必须恒定,例如地球半径恒定,光速恒定。 在处理此类问题的问题中,或者在你完全确定某些值不会改变的情况下,可以使用常量。
常数可以被认为是价值不变的变量。 Ruby 中的常量以大写字母开头,然后可以跟字母,数字或下划线。 现在让我们有一个名为`Pi`的常数,该常数将等于数学上的 <mstyle displaystyle=""true""><mi>&#x3C0;</mi></mstyle> “ role =” presentation“ style =” position:relative;“ > <nobr aria-hidden="true">π</nobr> <math xmlns="http://www.w3.org/1998/Math/MathML"><mstyle displaystyle="true"><mi>π</mi></mstyle></math> ,只需在 irb 提示符下键入以下内容
@@ -330,7 +330,7 @@ total cost
=> 3.1428
```
-分配了 <mstyle displaystyle=""true""><mi>&#x3C0 的值;</mi></mstyle> “ role =” presentation“ style =” position:relative;“ > <nobr aria-hidden="true">π</nobr> <math xmlns="http://www.w3.org/1998/Math/MathML"><mstyle displaystyle="true"><mi>π</mi></mstyle></math> 改成名为`Pi`的常量,我们现在尝试查找半径为 7 个单位的圆的面积,因此请使用忠实的计算器 irb。我们知道圆的面积为 <mstyle displaystyle=""true""><mi>&#x3C0;</mi> <msup><mi>r</mi> <mn>2</mn></msup></mstyle> “ role =” presentation“ style =” position:relative;“; > <nobr aria-hidden="true">πr2</nobr> <math xmlns="http://www.w3.org/1998/Math/MathML"><mstyle displaystyle="true"><mi>π</mi> <msup><mi>r</mi> <mn>2</mn></msup></mstyle></math> ,其中 <mstyle displaystyle=""true""><mi>r</mi></mstyle> “ role =” presentation“ style =” position:relative;“ > <nobr aria-hidden="true">r</nobr> <math xmlns="http://www.w3.org/1998/Math/MathML"><mstyle displaystyle="true"><mi>r</mi></mstyle></math> 是圆半径,在您的 irb 提示中,我们可以进行如下计算
+分配了 <mstyle displaystyle=""true""><mi>&#x3C0 的值;</mi></mstyle> “ role =” presentation“ style =” position:relative;“ > <nobr aria-hidden="true">π</nobr> <math xmlns="http://www.w3.org/1998/Math/MathML"><mstyle displaystyle="true"><mi>π</mi></mstyle></math> 改成名为`Pi`的常量,我们现在尝试查找半径为 7 个单位的圆的面积,因此请使用忠实的计算器 irb。我们知道圆的面积为 <mstyle displaystyle=""true""><mi>&#x3C0;</mi> <msup><mi>r</mi> <mn>2</mn></msup></mstyle> “ role =” presentation“ style =” position:relative;“; > <nobr aria-hidden="true">πr2</nobr> <math xmlns="http://www.w3.org/1998/Math/MathML"><mstyle displaystyle="true"><mi>π</mi> <msup><mi>r</mi> <mn>2</mn></msup></mstyle></math> ,其中 <mstyle displaystyle=""true""><mi>r</mi></mstyle> “ role =” presentation“ style =” position:relative;“ > <nobr aria-hidden="true">r</nobr> <math xmlns="http://www.w3.org/1998/Math/MathML"><mstyle displaystyle="true"><mi>r</mi></mstyle></math> 是圆半径,在你的 irb 提示中,我们可以进行如下计算
```rb
>> r = 7
@@ -353,14 +353,14 @@ total cost
### 3.5。 弦乐
-到目前为止,我们已经了解了数字,现在让我们来看看文本。 在计算机中,文本称为字符串 <sup class="footnote">[ [8](#_footnotedef_8 "View footnote.") ]</sup> 。 OK,让我们看看 Ruby 中的字符串。 让我们从一个问候世界开始。 在您的 irb 中输入 hello world,如下所示
+到目前为止,我们已经了解了数字,现在让我们来看看文本。 在计算机中,文本称为字符串 <sup class="footnote">[ [8](#_footnotedef_8 "View footnote.") ]</sup> 。 OK,让我们看看 Ruby 中的字符串。 让我们从一个问候世界开始。 在你的 irb 中输入 hello world,如下所示
```rb
>> "hello world"
=> "hello world"
```
-作为响应,您会收到`“hello world”`。 简而言之,字符串是`“`或`'`包围的任何东西
+作为响应,你会收到`“hello world”`。 简而言之,字符串是`“`或`'`包围的任何东西
现在,通过用单引号包围上面的问候世界,尝试上面的示例
@@ -369,7 +369,7 @@ total cost
=> "hello world"
```
-好吧,您确实得到了同样的答复。 那么单引号和双引号有什么区别? 看下面的例子
+好吧,你确实得到了同样的答复。 那么单引号和双引号有什么区别? 看下面的例子
```rb
>> time_now = Time.new # Get the current time into a variable
@@ -387,7 +387,7 @@ total cost
=> "Hello world, the time is now Fri Jan 15 16:43:31 +0530 2010"
```
-我们得到了适当的结果。 请注意,您已经用双引号将字符串引起来。 现在让我们用单引号尝试相同的操作
+我们得到了适当的结果。 请注意,你已经用双引号将字符串引起来。 现在让我们用单引号尝试相同的操作
```rb
>> 'Hello world, the time is now #{time_now}'
@@ -400,7 +400,7 @@ total cost
"Hello world, the time is now \#{time_now}"
```
-单引号之间的内容将按原样打印。 您可能会问为什么#被打印为`\#`,我们很快就会在转义序列中看到它。
+单引号之间的内容将按原样打印。 你可能会问为什么#被打印为`\#`,我们很快就会在转义序列中看到它。
#### 3.5.1。 字符串函数
@@ -411,7 +411,7 @@ total cost
=> 16
```
-有很多功能,其中一些功能在下表中给出。 我必须警告您该表不完整,您必须查看 Ruby 文档 <sup class="footnote">[ [9](#_footnotedef_9 "View footnote.") ]</sup> 以获得全面的介绍。
+有很多功能,其中一些功能在下表中给出。 我必须警告你该表不完整,你必须查看 Ruby 文档 <sup class="footnote">[ [9](#_footnotedef_9 "View footnote.") ]</sup> 以获得全面的介绍。
| 输入值 | 输出量 | 笔记 |
@@ -442,7 +442,7 @@ total cost
=> "Hello World!"
```
-好了,我们已经研究了很多,冥想会有所帮助,让 lets 吟 OM <sup class="footnote">[ [10](#_footnotedef_10 "View footnote.") ]</sup> 净化并重置我们的思想。 您知道,Ruby 可以为您冥想! 在您的 irb 中输入以下内容
+好了,我们已经研究了很多,冥想会有所帮助,让 lets 吟 OM <sup class="footnote">[ [10](#_footnotedef_10 "View footnote.") ]</sup> 净化并重置我们的思想。 你知道,Ruby 可以为你冥想! 在你的 irb 中输入以下内容
```rb
>> "OM " * 10
@@ -458,7 +458,7 @@ total cost
#### 3.5.2。 转义序列
-每当您键入类似`puts “Hello World!”`的语句时,Ruby 解释器都会显示`Hello World!`。 那就是`“`和`“`之间的所有东西都被打印出来了。 并非总是如此。 您可以在`“`和`“`之间放置一些可以避开正常打印顺序的东西。 启动您的 irb 并输入以下示例:
+每当你键入类似`puts “Hello World!”`的语句时,Ruby 解释器都会显示`Hello World!`。 那就是`“`和`“`之间的所有东西都被打印出来了。 并非总是如此。 你可以在`“`和`“`之间放置一些可以避开正常打印顺序的东西。 启动你的 irb 并输入以下示例:
```rb
>> puts "Hello \r World!"
@@ -466,7 +466,7 @@ total cost
=> nil
```
-令人惊讶的是,您仅看到`World!`被打印。 你好怎么了? 那么`\r`字符代表回车,这意味着 Hello 会被打印出来。 然后,回车/光标返回到行的开头,`World!`被覆盖。 就像`\r`代表回车一样,`\n`代表换行。 在 irb 中输入以下示例
+令人惊讶的是,你仅看到`World!`被打印。 你好怎么了? 那么`\r`字符代表回车,这意味着 Hello 会被打印出来。 然后,回车/光标返回到行的开头,`World!`被覆盖。 就像`\r`代表回车一样,`\n`代表换行。 在 irb 中输入以下示例
```rb
>> puts "Hello \n World!"
@@ -475,7 +475,7 @@ Hello
=> nil
```
-如您所见,`Hello`在第一行打印,`World!`在下一行打印。 这是因为我们在它们之间放置了换行符`\n`。
+如你所见,`Hello`在第一行打印,`World!`在下一行打印。 这是因为我们在它们之间放置了换行符`\n`。
好了,现在来看一个场景,我们现在知道`\r`,`\n`以及其他可能不是打印字符。 现在如何在输出中打印`\n`或`\r`。 事实证明,如下面的示例所示,放置双反斜杠将在输出中打印反斜杠。
@@ -494,39 +494,39 @@ Tabs leave long spaces
=> nil
```
-希望您对字符串有所了解,让我们继续...
+希望你对字符串有所了解,让我们继续...
### 3.6。 使用文字编辑器
-到现在为止,您已经将小程序键入到您的 irb 中,当您开发大型软件时,您不能指望最终用户或客户继续将您为他/她开发的语句键入控制台。 交出一个有类型的 Ruby 程序,他们可以运行它来完成某些任务。 让我们看看如何使用文本编辑器编写程序。 在“安装 IDE”部分的前面,我已经键入了有关如何安装名为 Geany 的简单集成开发环境(IDE)的信息。 如果您使用的是 Ubuntu,请按超级键,输入 Geany,单击 Geany 图标,您将获得它。
+到现在为止,你已经将小程序键入到你的 irb 中,当你开发大型软件时,你不能指望最终用户或客户继续将你为他/她开发的语句键入控制台。 交出一个有类型的 Ruby 程序,他们可以运行它来完成某些任务。 让我们看看如何使用文本编辑器编写程序。 在“安装 IDE”部分的前面,我已经键入了有关如何安装名为 Geany 的简单集成开发环境(IDE)的信息。 如果你使用的是 Ubuntu,请按超级键,输入 Geany,单击 Geany 图标,你将获得它。
![geany](img/ba7a18cefc9dc2d72231811b2e4667af.jpg)
-您也可以使用其他 IDE,如果需要其他 IDE,请参阅其文档以获取安装说明。 在 IDE 中,键入以下程序
+你也可以使用其他 IDE,如果需要其他 IDE,请参阅其文档以获取安装说明。 在 IDE 中,键入以下程序
```rb
puts "Hello World!"
puts "This time I used text editor"
```
-现在,将文件另存为 hello_world.rb 在目录中,请注意,Ruby 文件以.rb(点 rb)扩展名结尾。 启动您的终端/控制台,迁移到存储程序的目录,然后在其中键入以下内容
+现在,将文件另存为 hello_world.rb 在目录中,请注意,Ruby 文件以.rb(点 rb)扩展名结尾。 启动你的终端/控制台,迁移到存储程序的目录,然后在其中键入以下内容
```rb
$ ruby hello_world.rb
```
-这就是您将如何获得输出的方法。
+这就是你将如何获得输出的方法。
```rb
Hello World!
This time I used text editor
```
-精彩! 您已经学会了使用文本编辑器进行编程的方法,您正在变得专业!
+精彩! 你已经学会了使用文本编辑器进行编程的方法,你正在变得专业!
### 3.7。 打印东西
-研究代码 hello_world.rb,我们使用了一个名为`puts`的 Ruby 命令,该命令将某些内容输入输出,在本例中为您的终端窗口。
+研究代码 hello_world.rb,我们使用了一个名为`puts`的 Ruby 命令,该命令将某些内容输入输出,在本例中为你的终端窗口。
```rb
puts "Hello World!"
@@ -574,7 +574,7 @@ Hello Karthik
puts "Hello I am Zigor, a automated Robot that says Hello"
```
-打印程序名称为 Zigor 及其自动机器人,祝您好。 然后它打印一个换行符,因此随后打印的内容转到下一行
+打印程序名称为 Zigor 及其自动机器人,祝你好。 然后它打印一个换行符,因此随后打印的内容转到下一行
第二行
@@ -584,7 +584,7 @@ print "Please enter your name:"
打印出`“Please enter your name:”`,请注意,我们在这里使用了`print`,而不是`puts`,因为我们想在`name:`之后获得用户名,如果让他们在下一行键入 name,我会觉得很尴尬 ,为避免换行,我使用`print`而不是`puts`。
-当用户输入名称并按 Enter 时,它会被`gets()`函数捕获,并且由于这段代码,您键入的内容存储在名为 name 的变量中
+当用户输入名称并按 Enter 时,它会被`gets()`函数捕获,并且由于这段代码,你键入的内容存储在名为 name 的变量中
```rb
name = gets()
@@ -602,13 +602,13 @@ puts "Hello #{name}"
puts "Hello "+name
```
-但是前一段代码看起来更好吗? 这都是您的选择。 Ruby 使您可以通过多种方式执行相同的操作。 您可以选择任何自己喜欢的东西。
+但是前一段代码看起来更好吗? 这都是你的选择。 Ruby 使你可以通过多种方式执行相同的操作。 你可以选择任何自己喜欢的东西。
-在本主题中,您必须要查看的任何行都是具有`gets()`方法或功能的行,它等待键盘输入,当您输入内容并按 Enter 键时,它将获取您的输入并将值分配给变量 ,在这种情况下,变量为 name。
+在本主题中,你必须要查看的任何行都是具有`gets()`方法或功能的行,它等待键盘输入,当你输入内容并按 Enter 键时,它将获取你的输入并将值分配给变量 ,在这种情况下,变量为 name。
### 3.9。 注释
-注释是您可以放入一个程序中的小笔记,以便您或其他人在进入该程序 7,658 年后会记得或知道它在做什么。 您今天可能很聪明,但是明天您可能不像现在这样聪明,付钱给您的老板或客户当时会大喊大叫,以修复优先级错误或更新软件。 打开文本编辑器,然后输入以下代码:
+注释是你可以放入一个程序中的小笔记,以便你或其他人在进入该程序 7,658 年后会记得或知道它在做什么。 你今天可能很聪明,但是明天你可能不像现在这样聪明,付钱给你的老板或客户当时会大喊大叫,以修复优先级错误或更新软件。 打开文本编辑器,然后输入以下代码:
```rb
puts "Hello I am Zigor, a automated Robot that says Hello"
@@ -617,7 +617,7 @@ name = gets()
puts "Hello #{name}"
```
-您现在也许可以理解,但是在 7,658 年之后 <sup class="footnote">[ [11](#_footnotedef_11 "View footnote.") ]</sup> ? 到那时,您可能已经完全忘记了 Ruby! 因此,开始评论。 请参见下面的同一程序`comment.rb`,它的外观如何?
+你现在也许可以理解,但是在 7,658 年之后 <sup class="footnote">[ [11](#_footnotedef_11 "View footnote.") ]</sup> ? 到那时,你可能已经完全忘记了 Ruby! 因此,开始评论。 请参见下面的同一程序`comment.rb`,它的外观如何?
```rb
# The client is an idiot
@@ -629,7 +629,7 @@ name = gets() # gets the user name and assigns it to a variable named name
puts "Hello #{name}" # Embeds name into the string that gets printed
```
-查看上面的代码,您已经在前三行中介绍了有关 client 的一些信息。 这些行以#开头(哈希或校验符号)。 复选标记后的内容是注释,注释不会干扰程序的执行,但可以用来向人们提供程序中正在发生的事情的视觉提示。
+查看上面的代码,你已经在前三行中介绍了有关 client 的一些信息。 这些行以#开头(哈希或校验符号)。 复选标记后的内容是注释,注释不会干扰程序的执行,但可以用来向人们提供程序中正在发生的事情的视觉提示。
现在让我们看看这条线
@@ -637,13 +637,13 @@ puts "Hello #{name}" # Embeds name into the string that gets printed
puts "Hello #{name}" # Embeds name into the string that gets printed
```
-在这里,您将`#{name}`括在双引号中,因此将其视为字符串中的嵌入式 ruby 代码,而不是注释,而#将名称嵌入到要打印的字符串中被视为注释。
+在这里,你将`#{name}`括在双引号中,因此将其视为字符串中的嵌入式 ruby 代码,而不是注释,而#将名称嵌入到要打印的字符串中被视为注释。
-因此,我希望您理解该评论有一天能有所帮助。 专业人士在编写代码时总是会发表评论。 他们会很努力,以便几乎所有阅读其程序的 Ruby 编码器都能够理解它的运行方式。
+因此,我希望你理解该评论有一天能有所帮助。 专业人士在编写代码时总是会发表评论。 他们会很努力,以便几乎所有阅读其程序的 Ruby 编码器都能够理解它的运行方式。
#### 3.9.1。 多行注释
-如果您想对段落大小发表很多评论,则可以将该文本放在`=begin`和`=end`之间,如下面的程序`comments_multiline.rb`中所示
+如果你想对段落大小发表很多评论,则可以将该文本放在`=begin`和`=end`之间,如下面的程序`comments_multiline.rb`中所示
```rb
=begin
@@ -665,6 +665,6 @@ puts "Hello #{name}" # Embeds name into the string that gets printed
The hell with him
```
-在`=begin`和`=end`之间,当您执行程序时,在`=begin`和`=end`之间的将被忽略。 因此,不要犹豫,写很多评论,因为现在您知道有一种方法可以这样做,它将极大地有益于您和您的其他程序员。
+在`=begin`和`=end`之间,当你执行程序时,在`=begin`和`=end`之间的将被忽略。 因此,不要犹豫,写很多评论,因为现在你知道有一种方法可以这样做,它将极大地有益于你和你的其他程序员。
-关于`=begin`和`=end`,您必须了解一小件事,那就是它们必须从第一列开始,`=`符号前不应有空格,如果有的话,ruby 会认为其中有一个 编程错误,将发出错误信号。
\ No newline at end of file
+关于`=begin`和`=end`,你必须了解一小件事,那就是它们必须从第一列开始,`=`符号前不应有空格,如果有的话,ruby 会认为其中有一个 编程错误,将发出错误信号。
\ No newline at end of file
diff --git a/docs/13.md b/docs/13.md
index e60e642..62a60c0 100644
--- a/docs/13.md
+++ b/docs/13.md
@@ -2,7 +2,7 @@
### 4.1。 逻辑运算符
-逻辑运算符使您可以确定天气是否正确。 例如,一个就是一个,那就是人类的想法,让我们看看计算机对此的想法。 发射您的 irb 并输入 1 等于 1,如图所示
+逻辑运算符使你可以确定天气是否正确。 例如,一个就是一个,那就是人类的想法,让我们看看计算机对此的想法。 发射你的 irb 并输入 1 等于 1,如图所示
```rb
>> 1 == 1
@@ -94,7 +94,7 @@
=> false
```
-您也可以尝试使用数字
+你也可以尝试使用数字
| 操作员 | 含义 |
@@ -105,7 +105,7 @@
### 4.2。 true!=“ true”
-在逻辑运算符部分,您可能会看到 irb 提供`true`或`false`作为输出。 您不要与`“true”`和`“false”`混淆。 `true`和`false`是逻辑值,而`“true”`和`“false”`是`String`。
+在逻辑运算符部分,你可能会看到 irb 提供`true`或`false`作为输出。 你不要与`“true”`和`“false”`混淆。 `true`和`false`是逻辑值,而`“true”`和`“false”`是`String`。
### 4.3。 ===
@@ -125,7 +125,7 @@
=> false
```
-在上面的示例中,由于`7`绝对不是`String`,因此它显然返回 false,这就是您可能会想到的;)
+在上面的示例中,由于`7`绝对不是`String`,因此它显然返回 false,这就是你可能会想到的;)
但是有些奇怪,请看下面的例子
@@ -149,7 +149,7 @@ puts "#{name} is genius" if name == "Zigor"
puts "#{name} is idiot" if name != "Zigor"
```
-如果您输入的名称不是 Zigor,结果将会是这样
+如果你输入的名称不是 Zigor,结果将会是这样
```rb
Whats your name?
@@ -163,7 +163,7 @@ Karthik is idiot
puts "#{name} is genius" if name == "Zigor"
```
-该程序在名为`name`的变量中获取您的名字。 现在,它检查上面代码中名称是否为 Zigor(在关键字`if`的右侧),如果是,则执行与之关联的语句(即关键字`if`的左侧的语句) ),在这种情况下,它会打印出特定的名称是 genius。 然后归结为下一条语句
+该程序在名为`name`的变量中获取你的名字。 现在,它检查上面代码中名称是否为 Zigor(在关键字`if`的右侧),如果是,则执行与之关联的语句(即关键字`if`的左侧的语句) ),在这种情况下,它会打印出特定的名称是 genius。 然后归结为下一条语句
```rb
puts "#{name} is idiot" if name != "Zigor"
@@ -219,7 +219,7 @@ if
end
```
-在上面,您可以在`if … end`块中放入许多需要执行的代码。
+在上面,你可以在`if … end`块中放入许多需要执行的代码。
### 4.6。 埃尔斯夫
@@ -306,7 +306,7 @@ Enter your age:16
"You are a minor"
```
-程序会询问您的年龄,如果年龄不大于 18,则表示您是未成年人。也就是说,除非您的年龄大于或等于 18(如在此情况下所示),否则您将是未成年人`unless age >= 18`。 `p`是看跌期权 <sup class="footnote">[ [13](#_footnotedef_13 "View footnote.") ]</sup> 的简称。 如果编写`puts “something”`,则红宝石解释程序将打印`something`。 如果您使用`p ”something”`,则红宝石解释器将打印`”something”`(这与这些引号一起使用)。
+程序会询问你的年龄,如果年龄不大于 18,则表示你是未成年人。也就是说,除非你的年龄大于或等于 18(如在此情况下所示),否则你将是未成年人`unless age >= 18`。 `p`是看跌期权 <sup class="footnote">[ [13](#_footnotedef_13 "View footnote.") ]</sup> 的简称。 如果编写`puts “something”`,则红宝石解释程序将打印`something`。 如果你使用`p ”something”`,则红宝石解释器将打印`”something”`(这与这些引号一起使用)。
如果我们想在`unless`块下放置多行代码,可以使用`unless …. end`块,如下所示
@@ -339,7 +339,7 @@ Enter your age:37
"You are a grown up"
```
-好的,这是它的工作原理,您可以确定年龄,将其转换为`age = gets.to_i`中的整数,并将其存储在名为`age`的变量中。 专注于这段代码:
+好的,这是它的工作原理,你可以确定年龄,将其转换为`age = gets.to_i`中的整数,并将其存储在名为`age`的变量中。 专注于这段代码:
```rb
unless age >= 18
@@ -369,11 +369,11 @@ Enter your age:23
"You can enter Armed forces"
```
-我认为您可以自行解释该程序。 如果没有其他联系方式,除非我很懒,否则我会写一个解释。
+我认为你可以自行解释该程序。 如果没有其他联系方式,除非我很懒,否则我会写一个解释。
### 4.10。 情况何时
-假设您要编写一个程序,该程序对于确定的输入具有确定的输出,则可以在以下情况下使用这种情况。 假设我们要编写一个拼写为 1 到 5 的程序,我们可以按照 code / case_when.rb [case_when.rb]中所示的方法进行操作,在文本编辑器中键入该程序并执行。
+假设你要编写一个程序,该程序对于确定的输入具有确定的输出,则可以在以下情况下使用这种情况。 假设我们要编写一个拼写为 1 到 5 的程序,我们可以按照 code / case_when.rb [case_when.rb]中所示的方法进行操作,在文本编辑器中键入该程序并执行。
```rb
# case_when.rb
@@ -496,7 +496,7 @@ Output
7 is odd
```
-注意,在上面的程序中,我们为变量`num`分配了值 7,接下来,我们将`num`放入`case`语句中。 当数字为 1、3、5、7 和 9 时,我们需要打印其奇数,因此我们要做的只是对个案进行分组。 如果满意,则必须将其打印为`odd`,如果您按照下面的代码所示放置,就足够了
+注意,在上面的程序中,我们为变量`num`分配了值 7,接下来,我们将`num`放入`case`语句中。 当数字为 1、3、5、7 和 9 时,我们需要打印其奇数,因此我们要做的只是对个案进行分组。 如果满意,则必须将其打印为`odd`,如果你按照下面的代码所示放置,就足够了
```rb
case num
@@ -529,7 +529,7 @@ end
=> String
```
-在第一条语句中,我们查询了`1`的类/对象类型,并说其类型为`Integer`。 当被问及`“Zigor”`的类别时,它说`String`。 在 Ruby 中,您可以使用此函数来了解所使用的类型变量。 它是一个非常强大的功能。
+在第一条语句中,我们查询了`1`的类/对象类型,并说其类型为`Integer`。 当被问及`“Zigor”`的类别时,它说`String`。 在 Ruby 中,你可以使用此函数来了解所使用的类型变量。 它是一个非常强大的功能。
现在看看下面的程序
@@ -605,11 +605,11 @@ Output
76 is even
```
-要理解以上示例,您必须先阅读 Proc,Lambda 和 Blocks。 观看代码`when → (n) { n % 2 == 0 }`,在其中将一个 lambda 传递给`when`,当调用该代码时,它将为`n`的值 76 或任何偶数返回`true`,如果`n`为奇数则返回`false` 。 因此,与以前的奇偶程序不同,它适用于从零到无限的所有自然数。
+要理解以上示例,你必须先阅读 Proc,Lambda 和 Blocks。 观看代码`when → (n) { n % 2 == 0 }`,在其中将一个 lambda 传递给`when`,当调用该代码时,它将为`n`的值 76 或任何偶数返回`true`,如果`n`为奇数则返回`false` 。 因此,与以前的奇偶程序不同,它适用于从零到无限的所有自然数。
### 4.15。 case 和 matcher 类的情况
-要了解下面的程序,您需要阅读===并检查案例类型时的大小写。 在下面输入程序并执行
+要了解下面的程序,你需要阅读===并检查案例类型时的大小写。 在下面输入程序并执行
```rb
# case_when_matcher_classes.rb
@@ -657,7 +657,7 @@ end
在这里我们定义`self.===`,在其中接受一个参数字符串,在这里传递给`case`的`name`被复制到`string`,并检查`string`的`downcase`是否等于`“zigor”` 在`string.downcase == "zigor"`中,如果是,则返回`true`,否则返回`false`。 如果`true`被执行,当 when Zigor 块中的代码被执行时,我们得到输出`Nice to meet you Zigor!!!`。 将名称更改为其他值,然后看看会发生什么。
-如果您现在不了解此章节,请不要担心。 在完成本书的复习之后,您可能会更好地理解它。
+如果你现在不了解此章节,请不要担心。 在完成本书的复习之后,你可能会更好地理解它。
### 4.16。 ? :
@@ -683,7 +683,7 @@ p "max = "+max.to_s
? :
```
-您在问号之前给出一个表达式。 该表达式必须返回`true`或`false`。 如果表达式返回 true,则`it`返回`?`和`:`之间的内容;如果`false`,则返回`:`之后的内容。
+你在问号之前给出一个表达式。 该表达式必须返回`true`或`false`。 如果表达式返回 true,则`it`返回`?`和`:`之间的内容;如果`false`,则返回`:`之后的内容。
在表达中
@@ -701,7 +701,7 @@ max = 3 > 5 ? 3 : 5
### 4.17。 将逻辑语句分配给变量
-不管您是否注意到了天气,在前面的示例 [max_of_nums.rb](code/max_of_nums.rb) 中,我们使用了这样的语句
+不管你是否注意到了天气,在前面的示例 [max_of_nums.rb](code/max_of_nums.rb) 中,我们使用了这样的语句
```rb
max = a > b ? a : b
@@ -763,9 +763,9 @@ p "max = "+max.to_s
"max = 5"
```
-那么要推断什么呢? 规则是这样的,如果您在一个块中给出许多语句并将其分配给一个变量,则最后一条语句的输出将被返回并将被放入变量 <sup class="footnote">[ [15](#_footnotedef_15 "View footnote.") ]</sup> (在这种情况下为最大值)。
+那么要推断什么呢? 规则是这样的,如果你在一个块中给出许多语句并将其分配给一个变量,则最后一条语句的输出将被返回并将被放入变量 <sup class="footnote">[ [15](#_footnotedef_15 "View footnote.") ]</sup> (在这种情况下为最大值)。
-这是另一个程序, [case_when.rb](code/case_when.rb) 的分支,我想您知道它现在如何工作
+这是另一个程序, [case_when.rb](code/case_when.rb) 的分支,我想你知道它现在如何工作
```rb
# case_when_2.rb
diff --git a/docs/14.md b/docs/14.md
index 9e287c6..43e353f 100644
--- a/docs/14.md
+++ b/docs/14.md
@@ -1,6 +1,6 @@
## 5.循环
-有时您可能需要执行一些重复性的任务,比如说我想编写一个火箭倒计时程序,我想创建一个自动为火箭倒数的机器人,当计数结束时会说“ Blast Off”,让我们写一个 看看
+有时你可能需要执行一些重复性的任务,比如说我想编写一个火箭倒计时程序,我想创建一个自动为火箭倒数的机器人,当计数结束时会说“ Blast Off”,让我们写一个 看看
```rb
# count_down.rb
@@ -22,7 +22,7 @@ p 1
p "Blast Off!"
```
-好吧,希望您能理解上面的程序。 我想说明的是,`p`是`puts`的一种简短形式,不用写`puts`就能使用`p`并得到相同的结果 <sup class="footnote">[ [16 [](#_footnotedef_16 "View footnote.") ]</sup> 。 上面的程序在运行时显示以下内容
+好吧,希望你能理解上面的程序。 我想说明的是,`p`是`puts`的一种简短形式,不用写`puts`就能使用`p`并得到相同的结果 <sup class="footnote">[ [16 [](#_footnotedef_16 "View footnote.") ]</sup> 。 上面的程序在运行时显示以下内容
```rb
Hello, I am Zigor....
@@ -44,7 +44,7 @@ I count down for rockets
### 5.1。 向下
-在您的文本编辑器中,键入以下程序
+在你的文本编辑器中,键入以下程序
```rb
# count_down_1.rb
@@ -59,9 +59,9 @@ end
p "Blast Off!"
```
-运行它,看看。 好了,您的程序现在使用了更少的代码,但是却产生了相同的结果!
+运行它,看看。 好了,你的程序现在使用了更少的代码,但是却产生了相同的结果!
-注意事情`10.downto 1`,该语句使 Zigor 从 10 倒数到 1,而在倒数的同时,您可以使用倒数值做一些事情,还可以在循环块中放入一些代码。 循环以`do`开始,并在遇到`end`命令时结束。 您输入的任何代码都应介于`do`和`block` <sup class="footnote">[ [17](#_footnotedef_17 "View footnote.") ]</sup> 之间
+注意事情`10.downto 1`,该语句使 Zigor 从 10 倒数到 1,而在倒数的同时,你可以使用倒数值做一些事情,还可以在循环块中放入一些代码。 循环以`do`开始,并在遇到`end`命令时结束。 你输入的任何代码都应介于`do`和`block` <sup class="footnote">[ [17](#_footnotedef_17 "View footnote.") ]</sup> 之间
```rb
10.downto 1 do
@@ -87,7 +87,7 @@ end
### 5.2。 次
-times 是一个非常简单的循环,如果您想让代码执行 N 次,则将代码放入其中。 现在让我们看看 Zigor 知道什么
+times 是一个非常简单的循环,如果你想让代码执行 N 次,则将代码放入其中。 现在让我们看看 Zigor 知道什么
```rb
# times.rb
@@ -141,7 +141,7 @@ I am going to tell what I know
6\. I know something
```
-为什么从零数到六而不是一七呢? 好吧,如果一切按您的意愿进行,那么就不需要像您和我这样的程序员了,所以不要打扰。 请注意,在这些程序中,我们使用`{`和`}`,而不是 do and end。 好吧,Ruby 鼓励使用不同的编程风格。
+为什么从零数到六而不是一七呢? 好吧,如果一切按你的意愿进行,那么就不需要像你和我这样的程序员了,所以不要打扰。 请注意,在这些程序中,我们使用`{`和`}`,而不是 do and end。 好吧,Ruby 鼓励使用不同的编程风格。
### 5.3。 取决于
@@ -298,7 +298,7 @@ end
**更新**
-假设我们忘了在循环体中包含`i+=1`,在每次迭代结束时,`i`的值将始终保持为 1,而我将始终保持小于 10,因此循环将被执行无数次,并且 将打印无限的 1。 实际上,您的程序将崩溃,并可能导致不良后果。 为了避免这种情况,我们必须包含更新声明。 在这里,我们放置了`i+=1`,它在每次迭代继续时将`i`的值增加一,这确保`i⇐10`在某个阶段变为`false`,因此循环停止执行 <sup class="footnote">[ [19 [](#_footnotedef_19 "View footnote.") ]</sup> 。
+假设我们忘了在循环体中包含`i+=1`,在每次迭代结束时,`i`的值将始终保持为 1,而我将始终保持小于 10,因此循环将被执行无数次,并且 将打印无限的 1。 实际上,你的程序将崩溃,并可能导致不良后果。 为了避免这种情况,我们必须包含更新声明。 在这里,我们放置了`i+=1`,它在每次迭代继续时将`i`的值增加一,这确保`i⇐10`在某个阶段变为`false`,因此循环停止执行 <sup class="footnote">[ [19 [](#_footnotedef_19 "View footnote.") ]</sup> 。
因此,我们看到,为了使循环以理想的方式工作,我们需要使这四个部分交响。
@@ -315,7 +315,7 @@ until i>10 do
end
```
-这就是您将得到的结果
+这就是你将得到的结果
```rb
1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
@@ -325,7 +325,7 @@ end
### 5.7。 打破
-假设您想脱离循环,也就是停止执行循环,可以使用`break`命令。 下面给出一个例子。 在示例中,如果迭代变量`i`变为 6,我们将中断操作。因此,仅输出 1 到 5 范围内的数字。 当`i`变为 6 时,循环中断或终止
+假设你想脱离循环,也就是停止执行循环,可以使用`break`命令。 下面给出一个例子。 在示例中,如果迭代变量`i`变为 6,我们将中断操作。因此,仅输出 1 到 5 范围内的数字。 当`i`变为 6 时,循环中断或终止
```rb
#break.rb
@@ -344,7 +344,7 @@ end
### 5.8。 下一个
-`break`,退出循环并终止。 `next`与`break`有所不同,它不是中断循环,而是继续循环而不执行`next`之后发生的语句的信号。 这是一个供您理解的示例
+`break`,退出循环并终止。 `next`与`break`有所不同,它不是中断循环,而是继续循环而不执行`next`之后发生的语句的信号。 这是一个供你理解的示例
```rb
# next.rb
@@ -370,7 +370,7 @@ Output
9
```
-如果您注意到输出,则看到打印了从 0 到 9 的数字,但没有打印出 6。请注意 [next.rb](code/next.rb) 中的`next if num == 6`行,如果`num`为`6`,`next`被执行,换言之`do` `end`块之后的所有行均被跳过。 与`brake`不同,循环不会终止,而是仅跳过`next`之后的行,循环继续进行。
+如果你注意到输出,则看到打印了从 0 到 9 的数字,但没有打印出 6。请注意 [next.rb](code/next.rb) 中的`next if num == 6`行,如果`num`为`6`,`next`被执行,换言之`do` `end`块之后的所有行均被跳过。 与`brake`不同,循环不会终止,而是仅跳过`next`之后的行,循环继续进行。
### 5.9。 重做
@@ -387,11 +387,11 @@ Output
end
```
-运行它,希望您可以自己解释;-)
+运行它,希望你可以自己解释;-)
### 5.10。 环
-因此,到目前为止,我们已经看到了许多类型的循环,但是我省略了一个称为`loop`的基本循环。 为什么我忽略了它,因为使用 <sup class="footnote">[ [21](#_footnotedef_21 "View footnote.") ]</sup> 危险。 好吧,让我们看一个例子。 在下面键入程序并执行。 请注意,您需要按 Ctrl + C 才能停止执行。 所以要小心一点
+因此,到目前为止,我们已经看到了许多类型的循环,但是我省略了一个称为`loop`的基本循环。 为什么我忽略了它,因为使用 <sup class="footnote">[ [21](#_footnotedef_21 "View footnote.") ]</sup> 危险。 好吧,让我们看一个例子。 在下面键入程序并执行。 请注意,你需要按 Ctrl + C 才能停止执行。 所以要小心一点
```rb
# loop.rb
@@ -417,7 +417,7 @@ I Love Ruby
......
```
-输出将继续打印`I Love Ruby`,直到您按 Ctrl 和 C 键使输出断开为止。 基本是这样的:循环执行和结束之间的任何操作都将继续进行。
+输出将继续打印`I Love Ruby`,直到你按 Ctrl 和 C 键使输出断开为止。 基本是这样的:循环执行和结束之间的任何操作都将继续进行。
现在让我们说我们不希望这个循环永远持续运行。 让我们看看如何驯服它。 让我们打印一个可以打印 1 到 10 的程序。在下面键入该程序并运行。
diff --git a/docs/15.md b/docs/15.md
index c3ed5d2..f19cf3d 100644
--- a/docs/15.md
+++ b/docs/15.md
@@ -1,6 +1,6 @@
## 6.数组
-阵列可以视为机架。 您可以将任何东西 1 放在机架中,以类似的方式可以将任何东西放在阵列中。 一个机架包含许多架子或隔层。 如果您可以数数,则可以在每个隔间上放置数字,可以认为机架是用于存储某些东西的空间阵列。 每个隔间可以用数字标识,因此易于识别。 阵列是可供程序员使用的机架。 让我们看一个示例以了解更多信息。 在下面输入程序并执行
+阵列可以视为机架。 你可以将任何东西 1 放在机架中,以类似的方式可以将任何东西放在阵列中。 一个机架包含许多架子或隔层。 如果你可以数数,则可以在每个隔间上放置数字,可以认为机架是用于存储某些东西的空间阵列。 每个隔间可以用数字标识,因此易于识别。 阵列是可供程序员使用的机架。 让我们看一个示例以了解更多信息。 在下面输入程序并执行
```rb
# array.rb
@@ -15,7 +15,7 @@ my_array.each do |element|
end
```
-这就是您将获得输出的方式
+这就是你将获得输出的方式
```rb
Something
@@ -31,7 +31,7 @@ my_array << 123
my_array << Time.now
```
-我们将元素追加到数组。 在第一条语句中,我们附加字符串常量`“Something”`,在第二条语句中,我们附加整数`123`,在第三条语句中,我们附加当前时间。 如果您猜对了,我们已经使用`<<`运算符将值附加到数组。
+我们将元素追加到数组。 在第一条语句中,我们附加字符串常量`“Something”`,在第二条语句中,我们附加整数`123`,在第三条语句中,我们附加当前时间。 如果你猜对了,我们已经使用`<<`运算符将值附加到数组。
到现在为止,我们已经创建了一个名为`my_array`的数组,并将其放入其中。 现在,我们必须查看所输入的内容。为此,我们使用`<array_name>.each`(每个数组名称点一个点)。 此方法提取数组的每个元素。 因此,对于 my_array,我们使用`my_array.each`
@@ -174,7 +174,7 @@ ArgumentError: wrong number of arguments (3 for 2)
from :0
```
-如您所见,它失败了! 不要那样使用。
+如你所见,它失败了! 不要那样使用。
好的,现在让我们在`array`上进行一些尝试,首先要获取`array`中有多少个元素,我们可以使用`length`函数,如下所示:
@@ -215,7 +215,7 @@ ArgumentError: wrong number of arguments (3 for 2)
我们看到数组大小减少了一个,最后一个元素 5 丢失了。
-它不是只需要在`push`中给出固定值,而是可以将变量和 Ruby 表达式以及任何对象作为参数提供给 push。 您可以在下面看到我们将 2 提升到 10 的幂到数组,最后将 1024 添加到数组。
+它不是只需要在`push`中给出固定值,而是可以将变量和 Ruby 表达式以及任何对象作为参数提供给 push。 你可以在下面看到我们将 2 提升到 10 的幂到数组,最后将 1024 添加到数组。
```rb
>> array.push 2**10
@@ -238,7 +238,7 @@ ArgumentError: wrong number of arguments (3 for 2)
=> ["Something", 123]
```
-如您所见,第三个元素被弹出,因此可以随机弹出。
+如你所见,第三个元素被弹出,因此可以随机弹出。
我们可以一次将许多元素推入数组。 考虑下面的代码片段
@@ -256,7 +256,7 @@ ArgumentError: wrong number of arguments (3 for 2)
=> [5, "Who am I?", 563.16]
```
-如您所见,数组的大小减小了,现在只有两个元素。
+如你所见,数组的大小减小了,现在只有两个元素。
```rb
>> array
@@ -272,9 +272,9 @@ ArgumentError: wrong number of arguments (3 for 2)
=> ["Something", 123, "a new element", 64]
```
-如您在上面看到的,我们使用`<<`运算符将字符串常量`“a new element”`和`64`附加到数组。
+如你在上面看到的,我们使用`<<`运算符将字符串常量`“a new element”`和`64`附加到数组。
-您可以使用`max`和`min`函数在数组中找到最大值和最小值,如下所示:
+你可以使用`max`和`min`函数在数组中找到最大值和最小值,如下所示:
```rb
>> nums = [1, 2, 64, -17, 5 ,81]
@@ -300,7 +300,7 @@ ArgumentError: wrong number of arguments (3 for 2)
### 6.3。 设定操作
-对于那些了解集合论的人,您必须了解交集,并集。 我在学校时读过关于集合论的文章,但现在已经忘记了。 您可以将数组视为集合并对其执行许多操作。 以下是一些我在 irb 上试过的例子,让我们参加一个大学排球队,其中有些人叫 Ashok,Chavan,Karthik,Jesus 和 Budha。 如果您列出板球队的名单,那就有 Budha,Karthik,Ragu 和 Ram。 现在让我们用 ruby 对其进行编码。 为了收集排球队成员,我们创建了一个数组,如下所示
+对于那些了解集合论的人,你必须了解交集,并集。 我在学校时读过关于集合论的文章,但现在已经忘记了。 你可以将数组视为集合并对其执行许多操作。 以下是一些我在 irb 上试过的例子,让我们参加一个大学排球队,其中有些人叫 Ashok,Chavan,Karthik,Jesus 和 Budha。 如果你列出板球队的名单,那就有 Budha,Karthik,Ragu 和 Ram。 现在让我们用 ruby 对其进行编码。 为了收集排球队成员,我们创建了一个数组,如下所示
```rb
>> volleyball=["Ashok", "Chavan", "Karthik", "Jesus", "Budha"]
@@ -330,7 +330,7 @@ ArgumentError: wrong number of arguments (3 for 2)
=> ["Ashok", "Chavan", "Karthik", "Jesus", "Budha", "Ragu", "Ram"]
```
-如您所见,我们获得了排球队和板球队成员的名字。 | (或)运算符不同于+(加号)运算符。 让我们增加排球队和板球队
+如你所见,我们获得了排球队和板球队成员的名字。 | (或)运算符不同于+(加号)运算符。 让我们增加排球队和板球队
```rb
>> volleyball + cricket
@@ -346,11 +346,11 @@ ArgumentError: wrong number of arguments (3 for 2)
=> ["Ashok", "Chavan", "Jesus"]
```
-因此,我们看到排球队中只有三名球员。 因此,如果您是数学家,您会对 Ruby 感到满意。
+因此,我们看到排球队中只有三名球员。 因此,如果你是数学家,你会对 Ruby 感到满意。
### 6.4。 空数组为真
-Ruby 开发人员还必须了解其他内容。 它关于条件和空数组。 启动您的 irb 并输入
+Ruby 开发人员还必须了解其他内容。 它关于条件和空数组。 启动你的 irb 并输入
```rb
>> puts "A" if []
@@ -358,7 +358,7 @@ A
=> nil
```
-如果您看到的话,即使传递给`if`语句的数组为空,该语句也会打印 A。 这有点违背了最不令人惊讶的理论,但是请不要感到惊讶。 有一个书架,里面有书,所以如果您这样说
+如果你看到的话,即使传递给`if`语句的数组为空,该语句也会打印 A。 这有点违背了最不令人惊讶的理论,但是请不要感到惊讶。 有一个书架,里面有书,所以如果你这样说
```rb
>> puts "Books Present" if ["treasure island", "I Love Ruby"]
@@ -419,7 +419,7 @@ a is not empty
### 6.5。 压缩阵列
-有时一个数组可能包含`nil`值,而您想删除它,在这种情况下,您可以在该数组上调用`compact`。 让我们尝试一个例子。 启动您的 irb 或 pry,然后输入以下内容
+有时一个数组可能包含`nil`值,而你想删除它,在这种情况下,你可以在该数组上调用`compact`。 让我们尝试一个例子。 启动你的 irb 或 pry,然后输入以下内容
首先让我们初始化数组
@@ -442,7 +442,7 @@ a is not empty
=> [1, nil, 2, nil, 3, nil]
```
-令我们沮丧的是,仍然保留了零值,真正发生了什么? 好吧,当您在`a`上调用 compact 时,将创建一个新的压缩数组,并将其返回给我们的 REPL <sup class="footnote">[ [24](#_footnotedef_24 "View footnote.") ]</sup> ,然后 REPL 将其打印出来。 那么如何使`a`真正改变呢? 如下所示,带有 bang 或`compact!`的简单调用紧凑型;)
+令我们沮丧的是,仍然保留了零值,真正发生了什么? 好吧,当你在`a`上调用 compact 时,将创建一个新的压缩数组,并将其返回给我们的 REPL <sup class="footnote">[ [24](#_footnotedef_24 "View footnote.") ]</sup> ,然后 REPL 将其打印出来。 那么如何使`a`真正改变呢? 如下所示,带有 bang 或`compact!`的简单调用紧凑型;)
```rb
>> a.compact!
@@ -472,14 +472,14 @@ Ruby 带有非常强大的数组操作,我们将看到如何在易于使用的
现在,它取第二个值,即 2,并且发生相同的过程,现在返回数组为`[1, 4]`,类似地,返回数组最终变为`[1, 4, 9]`并返回。
-`collect`不会修改调用它的对象,因此,如果您查看`array`是什么,它仍将与下面的显示相同
+`collect`不会修改调用它的对象,因此,如果你查看`array`是什么,它仍将与下面的显示相同
```rb
>> array
=> [1, 2, 3]
```
-您可以在 irb 中检查它。 如果要收集以修改被调用的对象,请使用爆炸符号,如下所示
+你可以在 irb 中检查它。 如果要收集以修改被调用的对象,请使用爆炸符号,如下所示
```rb
>> array.collect!{ |element| element * element }
diff --git a/docs/16.md b/docs/16.md
index c3948df..4c2f355 100644
--- a/docs/16.md
+++ b/docs/16.md
@@ -98,7 +98,7 @@ Total marks = 195
在上面的程序中,我们计算了哈希`mark`中存储的所有标记的总数。 注意我们如何使用`each`循环。 请注意,我们在循环体中使用`|key,value|`获得了键值对。 `key`保留哈希的索引,`value`保留存储在该特定索引 <sup class="footnote">[ [25](#_footnotedef_25 "View footnote.") ]</sup> 处的值。 每次执行循环时,我们都将值加到 total,因此最后,变量 total 获得了散列中存储的值的总数。 最后,我们打印出总数。
-下面是另一个将学生标记存储在哈希中的程序,我们使用 each 循环打印与`key`对应的`key`和`value`。 希望您已经足够了解,可以自行解释以下代码。
+下面是另一个将学生标记存储在哈希中的程序,我们使用 each 循环打印与`key`对应的`key`和`value`。 希望你已经足够了解,可以自行解释以下代码。
```rb
#!/usr/bin/ruby
@@ -125,7 +125,7 @@ Math => 70
### 7.3。 散列创建的更多方法
-还有另一种创建哈希的方法,让我们来看一下。 参见下文,该程序的解释与先前程序 [hash_looping_1.rb](code/hash_looping_1.rb) 的解释相同,不同之处在于以下程序中的突出显示的行。 希望您能自己解释一下这些程序。
+还有另一种创建哈希的方法,让我们来看一下。 参见下文,该程序的解释与先前程序 [hash_looping_1.rb](code/hash_looping_1.rb) 的解释相同,不同之处在于以下程序中的突出显示的行。 希望你能自己解释一下这些程序。
```rb
#!/usr/bin/ruby
@@ -148,7 +148,7 @@ Math => 70
### 7.4。 使用符号
-通常在哈希中,我们使用符号作为键而不是字符串。 这是因为与 String 相比,Symbol 占用的空间要少得多。 速度和空间要求的差异现在可能对您并不明显,但是如果您编写的程序会创建成千上万的哈希,则可能会付出巨大的代价。 因此,请尝试使用符号代替字符串。
+通常在哈希中,我们使用符号作为键而不是字符串。 这是因为与 String 相比,Symbol 占用的空间要少得多。 速度和空间要求的差异现在可能对你并不明显,但是如果你编写的程序会创建成千上万的哈希,则可能会付出巨大的代价。 因此,请尝试使用符号代替字符串。
那么什么是符号? 通过在终端中输入`irb --simple-prompt`来激活我们的 irb。 在其中键入以下内容
@@ -219,7 +219,7 @@ mark[:Math] = 70
mark[:Science] = 75
```
-接下来,我们提示用户使用打印“输入主题名称:”输入标记,然后输入主题名称。 现在看下一行,首先我们使用`gets.chop`将主题名称放入变量`sub`中。 `chop`会删除您在按下键盘上的 Enter 键时输入的输入字符`\n`。 `to_sym`将您输入的任何内容转换为符号,所有这些最终存储在`sub`中。
+接下来,我们提示用户使用打印“输入主题名称:”输入标记,然后输入主题名称。 现在看下一行,首先我们使用`gets.chop`将主题名称放入变量`sub`中。 `chop`会删除你在按下键盘上的 Enter 键时输入的输入字符`\n`。 `to_sym`将你输入的任何内容转换为符号,所有这些最终存储在`sub`中。
```rb
sub = gets.chop.to_sym
@@ -231,7 +231,7 @@ sub = gets.chop.to_sym
puts "Mark in #{sub} is #{mark[sub]}"
```
-因此,您已经看到了该程序 [hash_creation_1.rb](code/hash_creation_1.rb) ,我们现在已经了解符号,因此可以将其编写如下:
+因此,你已经看到了该程序 [hash_creation_1.rb](code/hash_creation_1.rb) ,我们现在已经了解符号,因此可以将其编写如下:
```rb
#!/usr/bin/ruby
@@ -254,7 +254,7 @@ Science => 75
参见`marks = { :English ⇒ 50, :Math ⇒ 70, :Science ⇒ 75 }`行,我们在这里使用符号而不是字符串作为哈希键。 与字符串相比,哈希具有一些优势,因为与字符串相比,它们占用的内存更少(在程序运行期间)。
-在 ruby 1.9 及更高版本中,有更好的写 [hash_creation_1_a.rb](code/hash_creation_1_a.rb) 的方法,您可以在下面提到的 [hash_creation_2.rb](code/hash_creation_2.rb) 中看到。 只需在下面的程序中查看此`marks = { English: 50, Math: 70, Science: 75 }`行
+在 ruby 1.9 及更高版本中,有更好的写 [hash_creation_1_a.rb](code/hash_creation_1_a.rb) 的方法,你可以在下面提到的 [hash_creation_2.rb](code/hash_creation_2.rb) 中看到。 只需在下面的程序中查看此`marks = { English: 50, Math: 70, Science: 75 }`行
```rb
#!/usr/bin/ruby
@@ -271,7 +271,7 @@ marks.each { |a,b|
### 7.5。 字符串,冻结的字符串&符号,它们的存储足迹
-字符串占用大量内存,让我们看一个例子,启动您的 irb 并输入以下代码
+字符串占用大量内存,让我们看一个例子,启动你的 irb 并输入以下代码
```rb
>> c = "able was i ere i saw elba"
@@ -286,7 +286,7 @@ marks.each { |a,b|
在上面的示例中,我们看到了两个变量`c`和`d`,它们都分配给相同的字符串“ able is ire ere elba”,但是如果我通过调用`c.object_id`和`d.object_id`看到对象 ID 是 ,两者是不同的。 这意味着这两个“可能是我看见了厄尔巴岛”存储在不同的位置。 它们被复制并复制。
-这意味着,假设您在程序中的多个位置声明了相同的字符串,并且所有字符串都将占用新的内存,因此这将导致计算机 RAM 上的大量负载(对于大型程序)。
+这意味着,假设你在程序中的多个位置声明了相同的字符串,并且所有字符串都将占用新的内存,因此这将导致计算机 RAM 上的大量负载(对于大型程序)。
现在让我们看看如果我们使用一种称为冻结字符串的新事物会发生什么。 在 irb 中输入以下代码
@@ -318,7 +318,7 @@ marks.each { |a,b|
因此,在上面的示例中,我们将`e`和`f`分配给符号`:some_symbol`,当我们检查它们的对象 ID 时,它们都是相同的,或者它们都指向相同的位置。 这意味着,如果我们一次又一次地声明符号,它们将不会占用额外的空间。 冻结的字符串和符号对于存储很有用。 普通的字符串是不好的。
-那我为什么要在哈希部分说这个呢? 假设您看到了这段代码
+那我为什么要在哈希部分说这个呢? 假设你看到了这段代码
```rb
>> person = {"name" => "frank"}
@@ -355,7 +355,7 @@ and you have this one
### 7.7。 转换哈希值
-假设您有一个 Hash 对象,并且想要转换其值。 假设您有一个哈希,其值是数字,并且想要将其转换为它们的平方,然后在该 Hash 实例上使用 transform_values 函数。 让我们来看看代码,看看它是如何工作的。 点火或撬动
+假设你有一个 Hash 对象,并且想要转换其值。 假设你有一个哈希,其值是数字,并且想要将其转换为它们的平方,然后在该 Hash 实例上使用 transform_values 函数。 让我们来看看代码,看看它是如何工作的。 点火或撬动
首先定义一个哈希,如下所示
@@ -371,7 +371,7 @@ and you have this one
=> {:a=>1, :b=>4, :c=>9}
```
-如果您注意到,它的功能与在 Array 中收集非常相似,但适用于 Hash 中的值。
+如果你注意到,它的功能与在 Array 中收集非常相似,但适用于 Hash 中的值。
现在让我们看看哈希是否已更改
diff --git a/docs/17.md b/docs/17.md
index 03f9b9d..a66ac31 100644
--- a/docs/17.md
+++ b/docs/17.md
@@ -26,7 +26,7 @@ Output
bad, bae, baf, bag, => "bad".."bag"
```
-让我们尝试一下 irb 中的其他一些例子,这些例子会告诉我们更多有关 Ranges 的信息。 因此,启动您的 irb 并输入以下内容
+让我们尝试一下 irb 中的其他一些例子,这些例子会告诉我们更多有关 Ranges 的信息。 因此,启动你的 irb 并输入以下内容
```rb
>> a = -4..10
@@ -187,7 +187,7 @@ letter = gets.chop
### 8.4。 无尽的范围
-Ruby 有无限的范围,也就是说您可以编写这样的程序
+Ruby 有无限的范围,也就是说你可以编写这样的程序
```rb
#!/usr/bin/ruby
diff --git a/docs/18.md b/docs/18.md
index a729ec9..76ec40a 100644
--- a/docs/18.md
+++ b/docs/18.md
@@ -1,10 +1,10 @@
## 9.功能
-当您多次使用同一段代码时,可以将它们分组为一个函数,您可以在程序中的任何位置调用该分组代码以执行特定任务。 让我们以一个现实世界为例,您去旅馆,侍者走近,您点了一份炸鱼,就明白了。 订购后,您不会受到任何影响。
+当你多次使用同一段代码时,可以将它们分组为一个函数,你可以在程序中的任何位置调用该分组代码以执行特定任务。 让我们以一个现实世界为例,你去旅馆,侍者走近,你点了一份炸鱼,就明白了。 订购后,你不会受到任何影响。
-一旦订购了鱼苗,就会发生很多程序。 服务员记下您的订单,他去厨房,将订单交给厨师,厨师告诉他要煮熟的菜肴会花费很多时间。 服务员想着如何避免让您感到无聊,他来到您的餐桌旁,为您推荐开胃菜和/或开胃菜,为您提供可以在吃菜前喝得很好的饮料,他汇集了厨房以查看菜是否 准备好了。 如果菜已经准备好并且您已经完成了开胃菜,那么他将为您服务。 如果您还没吃完开胃菜,他会告诉厨房让菜保温,然后等您煮完。 一旦他把盘子拿到你的桌子上,他就放下装有盘子和餐具的盘子。
+一旦订购了鱼苗,就会发生很多程序。 服务员记下你的订单,他去厨房,将订单交给厨师,厨师告诉他要煮熟的菜肴会花费很多时间。 服务员想着如何避免让你感到无聊,他来到你的餐桌旁,为你推荐开胃菜和/或开胃菜,为你提供可以在吃菜前喝得很好的饮料,他汇集了厨房以查看菜是否 准备好了。 如果菜已经准备好并且你已经完成了开胃菜,那么他将为你服务。 如果你还没吃完开胃菜,他会告诉厨房让菜保温,然后等你煮完。 一旦他把盘子拿到你的桌子上,他就放下装有盘子和餐具的盘子。
-您要做的只是订购炸鱼,而完全忽略了后台正在运行的功能。 您向服务员下了订单(输入),然后拿到了盘子(输出)。 根据服务员的训练,服务员会预先计划或训练做什么和不做什么。
+你要做的只是订购炸鱼,而完全忽略了后台正在运行的功能。 你向服务员下了订单(输入),然后拿到了盘子(输出)。 根据服务员的训练,服务员会预先计划或训练做什么和不做什么。
让我们开始使用 Ruby 中的函数。 我们将看一个程序,其中将编写一个名为`print_line`的函数,该函数将打印一行。 在文本编辑器中键入以下程序并运行它。
@@ -36,7 +36,7 @@ def print_line
end
```
-`def`告诉您正在定义一个功能。 函数必须具有名称,该名称紧随`def`关键字之后。 在这种情况下,函数的名称为`print_line`。 您可以在其中编写所需的代码。 在这种情况下,我们将创建一个包含 20 个下划线字符的行。
+`def`告诉你正在定义一个功能。 函数必须具有名称,该名称紧随`def`关键字之后。 在这种情况下,函数的名称为`print_line`。 你可以在其中编写所需的代码。 在这种情况下,我们将创建一个包含 20 个下划线字符的行。
因此,我们创建了一个函数,并向其中添加了代码。 现在我们需要做的就是从程序中调用该函数。 只需在程序中键入函数名称即可,如下所示
@@ -50,7 +50,7 @@ print_line
### 9.1。 参数传递
-让我们对本节中的功能进行更多控制。 有时您不去酒店订购一顿菜,您可以订购多少或更少。 如果您和朋友一起去,可以订购更多份量;如果您一个人,则订购的份量会更少。 为什么用`print_line`功能不能做同样的事情? 为什么我们不能更改其长度,这样做将是一件很了不起的事情,我们可以根据自己的选择打印长度的行。
+让我们对本节中的功能进行更多控制。 有时你不去酒店订购一顿菜,你可以订购多少或更少。 如果你和朋友一起去,可以订购更多份量;如果你一个人,则订购的份量会更少。 为什么用`print_line`功能不能做同样的事情? 为什么我们不能更改其长度,这样做将是一件很了不起的事情,我们可以根据自己的选择打印长度的行。
看下面的代码,我们在函数名称后键入了一个名为`length`的东西,它称为参数。 像函数一样,参数也有一个名称,在这种情况下,我们将其命名为`length`。 我们可以将任何值传递给它以改变打印行的`length`。 输入以下代码并执行
@@ -70,7 +70,7 @@ end
end
```
-您将获得如下所示的设计模式
+你将获得如下所示的设计模式
```rb
__________
@@ -100,7 +100,7 @@ end
### 9.2。 默认参数
-在 [function_1.rb](code/function_1.rb) 中,您了解了如何将参数传递给函数。 如果假设您无法通过辩论,该怎么办? 如果这样做,将会产生一个错误,一个好的程序员将不会希望发生这种错误。 为了防止这种情况并使编程变得容易一些,最好为函数提供默认参数。 注意下面在 [function_default_argument.rb](code/function_default_argument.rb) 中给出的代码
+在 [function_1.rb](code/function_1.rb) 中,你了解了如何将参数传递给函数。 如果假设你无法通过辩论,该怎么办? 如果这样做,将会产生一个错误,一个好的程序员将不会希望发生这种错误。 为了防止这种情况并使编程变得容易一些,最好为函数提供默认参数。 注意下面在 [function_default_argument.rb](code/function_default_argument.rb) 中给出的代码
```rb
# function_default_argument.rb
@@ -120,11 +120,11 @@ ____________________
________________________________________
```
-您可以在程序中通过输入`length = 20`来查看函数`print_line`,这表明如果未传递任何参数,则该函数必须假定`length`的值为 20。 如果通过,则此值将被您传递的任何值所覆盖。 正如您在第一个函数调用中看到的那样,我们仅通过函数名称`print_line`来调用函数,我们无需理会将长度值传递给它,但是我们看到在输出中打印出一行长度为 20 个单位的行 。
+你可以在程序中通过输入`length = 20`来查看函数`print_line`,这表明如果未传递任何参数,则该函数必须假定`length`的值为 20。 如果通过,则此值将被你传递的任何值所覆盖。 正如你在第一个函数调用中看到的那样,我们仅通过函数名称`print_line`来调用函数,我们无需理会将长度值传递给它,但是我们看到在输出中打印出一行长度为 20 个单位的行 。
### 9.3。 将数组传递给函数
-通常,当您将变量传递给函数时,会创建该变量的副本。 而且,如果您对变量进行了更改,则该函数外部的变量不会受到影响。 因此,让我们看看将数组传递给函数时会发生什么。 在下面的程序中键入并运行它。
+通常,当你将变量传递给函数时,会创建该变量的副本。 而且,如果你对变量进行了更改,则该函数外部的变量不会受到影响。 因此,让我们看看将数组传递给函数时会发生什么。 在下面的程序中键入并运行它。
```rb
# array_passed_to_function.rb
@@ -146,7 +146,7 @@ Output
[1, 2, 3, 4, 5, 6]
```
-如果您是编程新手,这可能并不奇怪,但是当将变量传递给函数时,其值不应更改。 但是在数组的情况下,在函数`array_changer`中,我们向其中添加了一个元素,并且它会更改。 好吧,这是数组传递给函数的特殊行为。
+如果你是编程新手,这可能并不奇怪,但是当将变量传递给函数时,其值不应更改。 但是在数组的情况下,在函数`array_changer`中,我们向其中添加了一个元素,并且它会更改。 好吧,这是数组传递给函数的特殊行为。
为避免这种情况,请尝试以下程序
@@ -219,7 +219,7 @@ puts square_it 5
25
```
-如您所见,我们调用了`square_it 5`,结果为 25。 这可能是因为在 Ruby 中,默认情况下返回上一次执行的语句的结果。
+如你所见,我们调用了`square_it 5`,结果为 25。 这可能是因为在 Ruby 中,默认情况下返回上一次执行的语句的结果。
### 9.5。 关键字参数
@@ -280,7 +280,7 @@ say_hello
### 9.6。 递归函数
-让我们看看另一件事。 您可能想知道为什么我要进行所有数学运算? 某些程序员确实写了一些书,这些书尽可能地排除了数学知识,我不是专业的数学家,但我很欣赏数学。 计算机是基于数学的。 所有计算机都使用称为布尔代数的东西来执行所有任务。 我并不是说您必须是数学家才能成为程序员,但是了解数学确实会有所帮助。
+让我们看看另一件事。 你可能想知道为什么我要进行所有数学运算? 某些程序员确实写了一些书,这些书尽可能地排除了数学知识,我不是专业的数学家,但我很欣赏数学。 计算机是基于数学的。 所有计算机都使用称为布尔代数的东西来执行所有任务。 我并不是说你必须是数学家才能成为程序员,但是了解数学确实会有所帮助。
好,什么是阶乘? 取一个数字,取 3,现在将是 3 X 2 X 1,即六个! 是不是很简单? 6 是 3 的阶乘。好吧,我们现在取 4,所以 4 X 3 X 2 X 1 将是 24,以类似的方式,2 的阶乘将是 2 X 1,即 2。有了这些知识,我们现在将构造一个 该程序将为我们提供一定数量的阶乘。
@@ -301,7 +301,7 @@ number = 17
puts "Factorial of #{number} = #{factorial number}"
```
-执行上面的代码,这就是您得到的输出
+执行上面的代码,这就是你得到的输出
```rb
Factorial of 17 = 355687428096000
@@ -362,7 +362,7 @@ end
### 9.7。 可变数量的参数
-假设您不知道向一个函数传递了多少个参数,假设您正在编写一个要添加 N 个数字的函数,则 N 的值未知,那么如何获得可变数量的参数。 键入下面给出的程序 [function_variable_arguments.rb](code/function_variable_arguments.rb) 并执行它。
+假设你不知道向一个函数传递了多少个参数,假设你正在编写一个要添加 N 个数字的函数,则 N 的值未知,那么如何获得可变数量的参数。 键入下面给出的程序 [function_variable_arguments.rb](code/function_variable_arguments.rb) 并执行它。
```rb
# function_variable_arguments.rb
@@ -389,7 +389,7 @@ Others are:
5
```
-因此,程序的输出如上所示。 如您所见,我们将 1,2,3,4,5 作为参数传递,那么`a`只是一个变量,因此它取值为 1,其他变量被变量`**others**` **吸收( 注意,变量名前的星号** 是一种特殊的自变量,它将所有未被前一个自变量吸收的其余自变量存储在其他变量名中(作为数组)。 现在在下面的代码中
+因此,程序的输出如上所示。 如你所见,我们将 1,2,3,4,5 作为参数传递,那么`a`只是一个变量,因此它取值为 1,其他变量被变量`**others**` **吸收( 注意,变量名前的星号** 是一种特殊的自变量,它将所有未被前一个自变量吸收的其余自变量存储在其他变量名中(作为数组)。 现在在下面的代码中
```rb
for x in others
diff --git a/docs/19.md b/docs/19.md
index ee4c48b..6045409 100644
--- a/docs/19.md
+++ b/docs/19.md
@@ -1,6 +1,6 @@
## 10.可变范围
-在上一节中我们已经了解了函数,而在之前我们已经了解了变量。 我认为现在是时候输入变量范围了。 在本章中,我们将探讨在程序的特定部分中声明变量时有价值的时间或长度。 让我们从一个例子开始。 启动您的文本编辑器,输入下面的代码( [variable_scope.rb](code/variable_scope.rb) )并执行它。
+在上一节中我们已经了解了函数,而在之前我们已经了解了变量。 我认为现在是时候输入变量范围了。 在本章中,我们将探讨在程序的特定部分中声明变量时有价值的时间或长度。 让我们从一个例子开始。 启动你的文本编辑器,输入下面的代码( [variable_scope.rb](code/variable_scope.rb) )并执行它。
```rb
#!/usr/bin/ruby
@@ -22,9 +22,9 @@ variable_scope.rb:7:in `print_x': undefined local variable or method `x' for mai
from variable_scope.rb:10
```
-好吧,你得到一个错误。 看到您已经通过输入`x = 5`声明了一个变量。 在函数`print_x`中,您告诉 ruby 程序打印出变量 x,但会引发错误。 看一下输出,它说`undefined local variable or method `x' for main:Object (NameError) from variable_scope.rb:10`,那么我们已经定义了`x`并在开始时将其分配为值 5,那么 Ruby 如何抛出错误? 好吧,我们在函数`print_x`之外定义了`x`,因此`x`内部没有作用域,因此会出现错误。
+好吧,你得到一个错误。 看到你已经通过输入`x = 5`声明了一个变量。 在函数`print_x`中,你告诉 ruby 程序打印出变量 x,但会引发错误。 看一下输出,它说`undefined local variable or method `x' for main:Object (NameError) from variable_scope.rb:10`,那么我们已经定义了`x`并在开始时将其分配为值 5,那么 Ruby 如何抛出错误? 好吧,我们在函数`print_x`之外定义了`x`,因此`x`内部没有作用域,因此会出现错误。
-优秀的程序员可以利用编程语言提供的优势,并且足够聪明,可以按其施加的规则和限制发挥作用。 对于新手来说,我们无法访问我们在函数外部分配的变量似乎是一个真正的障碍,但是当您的程序成为成熟的程序员时,您会变相地实现它的祝福。
+优秀的程序员可以利用编程语言提供的优势,并且足够聪明,可以按其施加的规则和限制发挥作用。 对于新手来说,我们无法访问我们在函数外部分配的变量似乎是一个真正的障碍,但是当你的程序成为成熟的程序员时,你会变相地实现它的祝福。
要了解更多信息,请在文本编辑器中键入以下程序(variable_scope_1.rb)并执行。
@@ -50,7 +50,7 @@ Output
5
```
-仔细看一下输出。 首先在程序中声明变量`x = 5`,然后在函数`print_x`中声明变量`x = 3`。 注意,在函数`print_x`中声明的变量与在函数外部声明的变量不同。 接下来,我们调用函数`print_x`,该函数将输出打印为 3,这是预期的结果,因为在`print_x`内部我们在`x = 3`之后编写了`puts x`。 下一个语句是此处的英雄,(在函数外)我们在`print_x`之后写了`puts x`,如果您希望打印 3,则您错了。 这里`x`是我们在函数外部声明的`x`,在这里它将被打印为 5。这意味着在函数内部声明的变量在其外部没有作用域。
+仔细看一下输出。 首先在程序中声明变量`x = 5`,然后在函数`print_x`中声明变量`x = 3`。 注意,在函数`print_x`中声明的变量与在函数外部声明的变量不同。 接下来,我们调用函数`print_x`,该函数将输出打印为 3,这是预期的结果,因为在`print_x`内部我们在`x = 3`之后编写了`puts x`。 下一个语句是此处的英雄,(在函数外)我们在`print_x`之后写了`puts x`,如果你希望打印 3,则你错了。 这里`x`是我们在函数外部声明的`x`,在这里它将被打印为 5。这意味着在函数内部声明的变量在其外部没有作用域。
要了解更多信息并说服函数内部声明的变量在函数外部没有作用域,我们将尝试另一个程序。 在文本编辑器中输入程序 [variable_scope_2.rb](code/variable_scope_2.rb) 并执行它。
@@ -98,11 +98,11 @@ Output
variable_scope_3.rb:4: undefined local variable or method `a' for main:Object (NameError)
```
-如果您预期正确,程序将抛出错误。 我们已经在声明`a`之前给了`puts a`。 Ruby 解释器不会考虑将来声明的内容,因此,在遇到`puts a`时,此时将不会声明`a`,因此会引发错误。 换句话说,变量的作用域仅在声明后才开始。
+如果你预期正确,程序将抛出错误。 我们已经在声明`a`之前给了`puts a`。 Ruby 解释器不会考虑将来声明的内容,因此,在遇到`puts a`时,此时将不会声明`a`,因此会引发错误。 换句话说,变量的作用域仅在声明后才开始。
### 10.1。 全局变量
-如果您不喜欢无法从函数外部访问声明的变量的想法,那么 Ruby 提供了一种方法。 有一些称为全局变量的特殊变量,可以从任何地方访问。 全局变量前面带有美元($)符号。 要了解全局变量,请看一个示例。 在下面键入程序( [global_variables.rb](code/global_variables.rb) )并执行它。
+如果你不喜欢无法从函数外部访问声明的变量的想法,那么 Ruby 提供了一种方法。 有一些称为全局变量的特殊变量,可以从任何地方访问。 全局变量前面带有美元($)符号。 要了解全局变量,请看一个示例。 在下面键入程序( [global_variables.rb](code/global_variables.rb) )并执行它。
```rb
#!/usr/bin/ruby
@@ -126,7 +126,7 @@ Output
3
```
-成功运行它,让我们看看它是如何工作的。 首先,我们声明一个全局变量$ x 并将其分配给语句`$x = 5`中的值 5。 接下来,我们定义一个函数`print_x`,其中使用语句`$x = 3`将`$x`的值更改为 3,然后使用`puts $x`打印`$x`的值。 因此,显然我们调用`print_x`,将得到的输出为 3。接下来,在调用`print_x`之后的函数外部,我们将使用`puts $x`打印`$x`的值。 如果您认为它将打印出 5,那么您就错了。 由于可以从任何位置访问`$x`,因此我们将其称为`print_x`,在`print_x`中,无论如何,我们都将`$x`的值更改为 3,即使在函数范围之外,也将`$x`的值更改为 `$x`将被更改。
+成功运行它,让我们看看它是如何工作的。 首先,我们声明一个全局变量$ x 并将其分配给语句`$x = 5`中的值 5。 接下来,我们定义一个函数`print_x`,其中使用语句`$x = 3`将`$x`的值更改为 3,然后使用`puts $x`打印`$x`的值。 因此,显然我们调用`print_x`,将得到的输出为 3。接下来,在调用`print_x`之后的函数外部,我们将使用`puts $x`打印`$x`的值。 如果你认为它将打印出 5,那么你就错了。 由于可以从任何位置访问`$x`,因此我们将其称为`print_x`,在`print_x`中,无论如何,我们都将`$x`的值更改为 3,即使在函数范围之外,也将`$x`的值更改为 `$x`将被更改。
让我们来看另一个示例,以更好地理解全局变量。 查看下面的示例( [global_variables_1.rb](code/global_variables_1.rb) ),在文本编辑器中键入并执行它
diff --git a/docs/20.md b/docs/20.md
index ec39580..4c52da3 100644
--- a/docs/20.md
+++ b/docs/20.md
@@ -23,7 +23,7 @@ class Square
end
```
-您可能会问`attr_accessor`是什么? 它代表`attribute accessor`,使您可以轻松获取和设置`side_length`。 让我们使用这个正方形类,看看它是如何工作的。 修改上面的代码,如下所示:
+你可能会问`attr_accessor`是什么? 它代表`attribute accessor`,使你可以轻松获取和设置`side_length`。 让我们使用这个正方形类,看看它是如何工作的。 修改上面的代码,如下所示:
```rb
#square.rb
@@ -37,7 +37,7 @@ s1.side_length = 5 # sets its side length
puts "Side length of s1 = #{s1.side_length}" # prints the side length
```
-当您执行以上代码时,这将是您得到的结果
+当你执行以上代码时,这将是你得到的结果
```rb
Side length of s1 = 5
@@ -81,7 +81,7 @@ class Square
end
```
-在上面的代码中,您看到我添加了两个函数,一个名为`area`,另一个名为`perimeter`,分别计算并返回正方形的面积和周长。 这些函数与我们之前创建的任何其他函数非常相似,只是现在将其放置在类中。 让我们编写一些其他代码来利用我们添加的新功能,只需修改程序,使其看起来像下面的代码
+在上面的代码中,你看到我添加了两个函数,一个名为`area`,另一个名为`perimeter`,分别计算并返回正方形的面积和周长。 这些函数与我们之前创建的任何其他函数非常相似,只是现在将其放置在类中。 让我们编写一些其他代码来利用我们添加的新功能,只需修改程序,使其看起来像下面的代码
```rb
#square_1.rb
@@ -104,7 +104,7 @@ puts "Area: #{a.area}"
puts "Perimeter: #{a.perimeter}"
```
-运行示例,这是您将得到的输出
+运行示例,这是你将得到的输出
```rb
Area: 25
@@ -125,7 +125,7 @@ puts "Area: #{a.area}"
puts "Perimeter: #{a.perimeter}"
```
-了解我们如何嵌入“ a”的面积和周长的值(在上面的代码中)。 如果您正在阅读这本书,那么对您来说必须是新的一件事如下所示:
+了解我们如何嵌入“ a”的面积和周长的值(在上面的代码中)。 如果你正在阅读这本书,那么对你来说必须是新的一件事如下所示:
```rb
def area
@@ -137,7 +137,7 @@ end
### 11.3。 初始化程序或构造函数
-在前面处理正方形的示例中,您是否想过当您说`s = Square.new`时会发生什么? 好吧,在这种情况下,将创建一个新的`Square`并将其放入变量中。 如果有人问天气问题,当 Square 初始化时我们可以做什么? 答案是肯定的。 您所要做的就是将代码放入称为`initialize`的函数中,只要有`<class name>.new call`,就会调用此函数
+在前面处理正方形的示例中,你是否想过当你说`s = Square.new`时会发生什么? 好吧,在这种情况下,将创建一个新的`Square`并将其放入变量中。 如果有人问天气问题,当 Square 初始化时我们可以做什么? 答案是肯定的。 你所要做的就是将代码放入称为`initialize`的函数中,只要有`<class name>.new call`,就会调用此函数
看一下示例 [square2.rb](code/square2.rb) ,仔细看下面的代码,我们定义了一个名为`initialize`的函数,该函数接受一个名为`side_length`的参数,其默认值为零。 如果指定了`side_length`,则它将平方类中的`@side_length`属性设置为该值,否则`@side_length`的默认值为零。 在文本编辑器中输入 [square2.rb](code/square2.rb) 并执行
@@ -225,11 +225,11 @@ Output
Karthik and Chubby are best friends.
```
-在上面的示例中,注意`Human`类的(实例)确实使用了名为`@name`的变量,但您可以将其设置为`a.name =`,而不能像`a.name`那样获取它,因为它没有暴露给 使用`attr_accessor`的外部世界。 因此,在 Ruby 类中,您可以在类中具有任意数量的隐藏变量,而无需外界对此有所了解。 那不漂亮吗?
+在上面的示例中,注意`Human`类的(实例)确实使用了名为`@name`的变量,但你可以将其设置为`a.name =`,而不能像`a.name`那样获取它,因为它没有暴露给 使用`attr_accessor`的外部世界。 因此,在 Ruby 类中,你可以在类中具有任意数量的隐藏变量,而无需外界对此有所了解。 那不漂亮吗?
### 11.5。 私人方法
-默认情况下,类中的方法或函数是公共的(可以在类范围之外访问),如果您不希望类外的程序访问它们,则可以将其设为私有。 让我们创建一个名为`Human`的类,并在其中放入一个私有方法,让我们尝试从该类外部访问它,然后看看会发生什么。 输入程序并执行
+默认情况下,类中的方法或函数是公共的(可以在类范围之外访问),如果你不希望类外的程序访问它们,则可以将其设为私有。 让我们创建一个名为`Human`的类,并在其中放入一个私有方法,让我们尝试从该类外部访问它,然后看看会发生什么。 输入程序并执行
```rb
# private_method.rb
@@ -265,9 +265,9 @@ human.rb:20: private method `tell_a_secret' called for #