企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## 3.入门 安装了所需的软件后,我们就开始吧。 ### 3.1。 交互式红宝石 Ruby 为我们提供了一种与之交互的简便方法,该功能称为交互式红宝石或 irb &lt;sup class="footnote"&gt;[ [5](#_footnotedef_5 "View footnote.") ]&lt;/sup&gt; 。 使用 irb,你可以在控制台中键入少量的 ruby 代码,并查看其执行情况。 irb 是检查 Ruby 小代码的好工具。 在终端类型`irb`或`irb –-simple-prompt`中,你将得到如下提示 ```rb 2.4.0 :001 > ``` 如果你输入`irb`,将会得到上面的提示 ```rb >> ``` 如果你键入`irb –-simple-prompt`,将会得到上面的提示,从现在开始的示例中,我将使用简单的提示。 让我们编写第一个 hello world 程序,在提示符下键入以下内容(不要键入`&gt;&gt;`) ```rb >> puts 'Hello World!' ``` 当你按回车键时,将得到如下输出。 在 Ruby 中,puts 用于将某些东西打印到控制台上。 ```rb Hello World ! => nil ``` 很好,我们在一分钟内完成了 Hello World 程序。 让我们检查一下 56 是 31 的幂 ```rb >> 56**31 => 1562531701075863192779448904272185314811647640213651456 ``` 糟糕! 你从来没有想过会这么多,是吗? 无论如何,`**`都用于查找升为另一个数字幂的数字。 要退出 irb 并返回到正常的控制台或终端提示符,请键入`quit`或按键盘上的`Ctrl+c`。 ### 3.2。 做一些数学 计算机是一种可以进行计算或进行一些数学运算的设备。 使用 irb,我们可以进行简单的数学运算。 如果你不喜欢使用数字,ruby 可以为你完成。 因此,首先让我们添加以下数字:1、45、67、893、72、56 和-128。 为此,请在你的 irb 提示中输入这些数字,并用加号“ +”分隔,即可得到结果 ```rb >> 1 + 45 + 67 + 893 + 72 + 56 + -128 => 1006 ``` 以下是一些常用的数学运算符,你会发现它们很有用 <colgroup><col style="width: 50%;"> <col style="width: 50%;"></colgroup> | 操作员 | 他们做什么 | | + | 加号 | | -- | 从另一个数字减去一个数字 | | / | 用一个数字除以另一个数字 | | * | 两个数字相乘 | | ** | 查找一个提升到另一个的幂的数字 | | % | 找到余数 | | + = | 向变量添加值并为其赋值 | | -= | 减去并为变量赋值 | | * = | 乘法并为变量赋值 | | / = | 划分并给变量赋值 | | %= | 查找余数并将其分配给变量 | **添加示例:**假设我想将 56 和 72 相加并找到其结果,我可以这样做,如下所示: ```rb >> 56+72 => 128 ``` **减法示例:**在此示例中,我从 112 中减去 64 ```rb >> 112-64 => 48 ``` **除法示例:**可以说我想将 117 除以 12 并找到商,我可以像这样在 Ruby 中进行操作 ```rb >> 117/12 => 9 ``` **Power 示例:**可以说,我想通过求五(把五提高到三的幂)来得到什么,我可以如图所示在 Ruby 中实现 ```rb >> 5**3 => 125 ``` **模数或余数示例:**我想知道当我们将 21 除以 4 时得到的余数,我可以这样做 ```rb >> 21%4 => 1 ``` **加赋值示例:**声明变量 i,将其设置为零,然后将其加 24。 在红宝石中,你可以如图所示 ```rb >> i = 0 => 0 >> i+=24 => 24 >> i => 24 ``` 最后,当我们键入 i 并看到得到 24 时。这意味着我在其中保留了值 24。 **带赋值的减法示例:**让我们声明一个变量 j,为其赋值 50 并从中减去 17 ```rb >> j = 50 => 50 >> j -= 17 => 33 >> j => 33 ``` 最后,当我们键入 j 时看到 33。这意味着 j 在其中保留值 33。 **带赋值的乘法示例:**让我们声明一个变量 k,将其设置为 3 并乘以 9 ```rb >> k = 3 => 3 >> k *= 9 => 27 >> k => 27 ``` 最后,当我们键入 k 时,我们得到 27。这意味着 k 在其中保留值 27。 **除法分配示例:**声明变量 s,将其设置为 25 并除以 5 ```rb >> s = 25 => 25 >> s /= 5 => 5 >> s => 5 ``` 最后,当我们键入 s 时看到得到 5。这意味着 s 在其中保留值 5。 自己尝试其他操作员,我已经没有耐心了。 #### 3.2.1。 空间无关紧要 可以说我要在 62 上加上 54,如何命令 irb 来做到这一点。 应该是 54 + 62 还是我可以留空格,以便代码可以像 54 + 62 那样整齐地编写。 好吧,幸运的是,在 Ruby 中留出空格并不重要,你可以按照以下所示的多种方式为其提供空间,并且仍然获得相同的结果。 ```rb >> 54+62 => 116 >> 54 +62 => 116 >> 54+ 62 => 116 >> 54 + 62 => 116 >> 54 + 62 => 116 ``` 请注意,加上天气时它保持 54 或 62 或之间有空格,无论空格有多长,它都会打印出正确的结果。 #### 3.2.2。 小数点 将红宝石 5 除以 3 时,结果如下 ```rb >> 5/3 => 1 ``` 换句话说,它给出商。 实际上 5 除以 3 几乎是 1.666666666666666667,那么如何获得此答案? 事实是 5 和 3 是整数,或者没有小数部分的数字。 如果你想要一个相当准确的答案,可以将你的命令改写为 Ruby,如下所示 ```rb >> 5.0/3 => 1.66666666666667 ``` 以上述方式,我们指定 5.0 而不是 5,换句话说,我们强迫 Ruby 进行浮点数或小数计算,而不是整数计算。 这使 Ruby 给出了一个相当准确的答案。 ### 3.3。 变数 变量是在其中存储价值的东西。 你可以将它们想象成一个可以容纳鹅卵石的盒子。 如果一个名为`a`的盒子包含五个小卵石,则其值为 5,如果另一个盒子`b`包含三个卵石,则其值为 3。假设你有一个新盒子`c`,并且希望其值为 框`a`和框`b`的总和,然后你只需在`a`和`b`中加上小卵石的数量,总计 8,在`c`中放入 8 个小卵石即可制成`c = a + b`。 希望你能暗示什么是变量。 让我们用 Ruby 编程 ```rb >> a = 5 => 5 >> b = 3 => 3 >> c = a + b => 8 ``` 让我们尝试另一个问题,我以 10 卢比/-的价格从一个农民手中购买了 50 株芒果,将其推向市场,以每蒲式耳 15 卢比的价格出售,我的利润是多少? **答案:** 好吧,首先我有 50 个芒果,所以在 irb 中输入如下所示: ```rb >> mangoes = 50 => 50 ``` 因此,我已将值 50 分配给名为`mangoes`的变量。 接下来,我声明并为变量`buy_price`赋值为 10,如下所示: ```rb >> buy_price = 10 => 10 ``` 我以类似的方式将 15 分配给名为`sell_price`的变量 ```rb >> sell_price = 15 => 15 ``` 现在,每个芒果的利润是买卖价格之间的差,因此我可以如下所示进行计算 ```rb >> profit = sell_price - buy_price => 5 ``` 卖芒果可获 5 卢比的利润,而卖 50 粒芒果会得到什么呢? 它是`profit`与`mangoes`的倍数,如图所示 ```rb >> total_profit = profit * mangoes => 250 ``` 因此,通过出售 50 个芒果,我们可以赚取₹250 /-的利润。 假设我们已经购买了 72 种芒果,现在我们想知道会有什么利润,可以通过将`mangoes`的值从 50 更改或更改为 72 并重新计算`total_profit`来轻松实现 ```rb >> mangoes = 72 >> total_profit = profit * mangoes => 360 ``` 现在你可能知道为什么我们称这些为变量,变量是一个可以包含任何所需值的框。 就像可以从框中添加或删除小卵石一样,你可以对变量进行数学运算。 #### 3.3.1。 命名约定 在芒果示例中,你会注意到我给变量的名称为`buy_price`,`sell_price`,`total_profit`而不是购买`price`,`sell price`,`total profit`,为什么呢? 事实证明,命名变量时必须遵循某种命名约定或规则。 命名变量的规则如下: * 变量名之间不能有空格 * 变量名称中除了下划线 _ 之外,不得有任何特殊字符 * 变量名可以有数字 * 变量名不能以数字开头 * 变量必须以字符或下划线开头 * 大写字符不应出现在变量的开头 下面给出的是有效变量名的示例 ```rb mango total_price mango_ _mango buyPrice boeing747 boeing_747 iam23yrsold ``` 以下是无效变量名称的示例 ```rb 34signals Mango total cost ``` #### 3.3.2。 下划线–一个特殊变量 假设我们想找到乘幂为 87 的东西 87,我们可以这样做 ```rb >> 87 ** 12 => 188031682201497672618081 ``` 现在我们想将结果乘以 5 并看到答案,现在上面的结果是一个非常大的 24 &lt;sup class="footnote"&gt;[ [6](#_footnotedef_6 "View footnote.") ]&lt;/sup&gt; 数字位数,我们必须全部输入并加一个星号 五得到答案,多数民众赞成在很多工作! 如果你是一名程序员,那么懒惰就会渗入你的血管,否则你将另谋高就。 一种方法是将该值分配给变量,然后将其乘以 5,如下所示 ```rb >> a = 87 ** 12 => 188031682201497672618081 >> a*5 => 940158411007488363090405 ``` 但是还有另一种简单的方法,如下所示 ```rb >> 87 ** 12 => 188031682201497672618081 >> _ * 5 => 940158411007488363090405 ``` 我确实发现将 87 提升为 12 的幂,然后我将下划线 _ 乘以 5! 但是怎么会呢? 下划线是一种特殊的变量,其中上一次执行的结果会自动存储。 如果要使用最后获得的输出,可以通过使用下划线 _ 作为变量 &lt;sup class="footnote"&gt;[ [7](#_footnotedef_7 "View footnote.") ]&lt;/sup&gt; 来执行。 ### 3.4。 常数 与变量不同,某些值必须恒定,例如地球半径恒定,光速恒定。 在处理此类问题的问题中,或者在你完全确定某些值不会改变的情况下,可以使用常量。 常数可以被认为是价值不变的变量。 Ruby 中的常量以大写字母开头,然后可以跟字母,数字或下划线。 现在让我们有一个名为`Pi`的常数,该常数将等于数学上的 &lt;mstyle displaystyle="&quot;true&quot;"&gt;&lt;mi&gt;&#x3C0;&lt;/mi&gt;&lt;/mstyle&gt; “ role =” presentation“ style =” position:relative;“ &gt; &lt;nobr aria-hidden="true"&gt;π&lt;/nobr&gt; &lt;math xmlns="http://www.w3.org/1998/Math/MathML"&gt;&lt;mstyle displaystyle="true"&gt;&lt;mi&gt;π&lt;/mi&gt;&lt;/mstyle&gt;&lt;/math&gt; ,只需在 irb 提示符下键入以下内容 ```rb >> Pi = 3.1428 => 3.1428 ``` 分配了 &lt;mstyle displaystyle="&quot;true&quot;"&gt;&lt;mi&gt;&#x3C0 的值;&lt;/mi&gt;&lt;/mstyle&gt; “ role =” presentation“ style =” position:relative;“ &gt; &lt;nobr aria-hidden="true"&gt;π&lt;/nobr&gt; &lt;math xmlns="http://www.w3.org/1998/Math/MathML"&gt;&lt;mstyle displaystyle="true"&gt;&lt;mi&gt;π&lt;/mi&gt;&lt;/mstyle&gt;&lt;/math&gt; 改成名为`Pi`的常量,我们现在尝试查找半径为 7 个单位的圆的面积,因此请使用忠实的计算器 irb。我们知道圆的面积为 &lt;mstyle displaystyle="&quot;true&quot;"&gt;&lt;mi&gt;&#x3C0;&lt;/mi&gt; &lt;msup&gt;&lt;mi&gt;r&lt;/mi&gt; &lt;mn&gt;2&lt;/mn&gt;&lt;/msup&gt;&lt;/mstyle&gt; “ role =” presentation“ style =” position:relative;“; &gt; &lt;nobr aria-hidden="true"&gt;πr2&lt;/nobr&gt; &lt;math xmlns="http://www.w3.org/1998/Math/MathML"&gt;&lt;mstyle displaystyle="true"&gt;&lt;mi&gt;π&lt;/mi&gt; &lt;msup&gt;&lt;mi&gt;r&lt;/mi&gt; &lt;mn&gt;2&lt;/mn&gt;&lt;/msup&gt;&lt;/mstyle&gt;&lt;/math&gt; ,其中 &lt;mstyle displaystyle="&quot;true&quot;"&gt;&lt;mi&gt;r&lt;/mi&gt;&lt;/mstyle&gt; “ role =” presentation“ style =” position:relative;“ &gt; &lt;nobr aria-hidden="true"&gt;r&lt;/nobr&gt; &lt;math xmlns="http://www.w3.org/1998/Math/MathML"&gt;&lt;mstyle displaystyle="true"&gt;&lt;mi&gt;r&lt;/mi&gt;&lt;/mstyle&gt;&lt;/math&gt; 是圆半径,在你的 irb 提示中,我们可以进行如下计算 ```rb >> r = 7 => 7 >> Pi * r ** 2 => 153.9972 ``` 因此,我们发现圆的面积大约为 153.9972 平方单位,非常接近 154 平方单位的精确值。 可以问天气我们可以改变常数的值吗? 我并不是说这是不可能的,但是如果我们更改红宝石,则会警告我们正在更改常量的值,但是在警告之后常量还是会更改。 ```rb >> Pi=5 (irb):35: warning: already initialized constant Pi => 5 ``` 在上面的示例中,我将`Pi`的值重新分配为 5,如第二行所示,Ruby 解释器的确发出了警告:Pi 已被初始化为常量,但是无论如何 Pi 的值都会更改为 5.强烈建议不要在专业编程中更改常数值。 ### 3.5。 弦乐 到目前为止,我们已经了解了数字,现在让我们来看看文本。 在计算机中,文本称为字符串 &lt;sup class="footnote"&gt;[ [8](#_footnotedef_8 "View footnote.") ]&lt;/sup&gt; 。 OK,让我们看看 Ruby 中的字符串。 让我们从一个问候世界开始。 在你的 irb 中输入 hello world,如下所示 ```rb >> "hello world" => "hello world" ``` 作为响应,你会收到`“hello world”`。 简而言之,字符串是`“`或`'`包围的任何东西 现在,通过用单引号包围上面的问候世界,尝试上面的示例 ```rb >> 'hello world' => "hello world" ``` 好吧,你确实得到了同样的答复。 那么单引号和双引号有什么区别? 看下面的例子 ```rb >> time_now = Time.new # Get the current time into a variable => Fri Jan 15 16:43:31 +0530 2010 >> "Hello world, the time is now #{time_now}" => "Hello world, the time is now Fri Jan 15 16:43:31 +0530 2010" >> 'Hello world, the time is now #{time_now}' => "Hello world, the time is now \#{time_now}" ``` 首先,我们声明一个名为`time_now`的变量并将当前时间存储到其中。 Ruby 中的当前时间是通过`Time.new`命令获得的。 现在我们有了一个变量,可以将其像`#{put_your_variable_here}`一样嵌入到字符串中。 因此,我们想告诉世界现在是某个时间,所以我们给出如下所示的命令 ```rb >> "Hello world, the time is now #{time_now}" => "Hello world, the time is now Fri Jan 15 16:43:31 +0530 2010" ``` 我们得到了适当的结果。 请注意,你已经用双引号将字符串引起来。 现在让我们用单引号尝试相同的操作 ```rb >> 'Hello world, the time is now #{time_now}' => "Hello world, the time is now \#{time_now}" ``` 我们看到,在这种情况下,世界无法看到现在的时间,而是能够看到如图所示的丑陋字符串。 ```rb "Hello world, the time is now \#{time_now}" ``` 单引号之间的内容将按原样打印。 你可能会问为什么#被打印为`\#`,我们很快就会在转义序列中看到它。 #### 3.5.1。 字符串函数 使用内置于 Ruby 中的内置函数和例程,可以对字符串执行某些很酷的操作。 例如,如果要查找字符串的长度,可以使用`length`函数,如下所示 ```rb >> "my name is billa".length => 16 ``` 有很多功能,其中一些功能在下表中给出。 我必须警告你该表不完整,你必须查看 Ruby 文档 &lt;sup class="footnote"&gt;[ [9](#_footnotedef_9 "View footnote.") ]&lt;/sup&gt; 以获得全面的介绍。 <colgroup><col style="width: 33.3333%;"> <col style="width: 33.3333%;"> <col style="width: 33.3334%;"></colgroup> | 输入值 | 输出量 | 笔记 | | `"my name is billa".length` | 16 | 长度函数查找字符串的长度 | | `"my name is billa".reverse` | 阿里布西曼公司 | 反向功能反转字符串 | | `"my name is billa".capitalize` | 我叫比拉 | 大写给定的字符串 | | `"my name is billa".upcase` | 我的名字叫比拉 | 将小写字符转换为大写 | | `"MY NAME IS BILLA".downcase` | 我的名字叫比拉 | 将大写字符转换为小写 | | `"my name is billa".next` | 我的名字叫比尔 | 这是安静的不合逻辑的功能,可打印下一个逻辑字符串 | | `"my name is billa".empty?` | 假 | 如果字符串为空,则返回 true,否则返回 false | | `"".empty?` | 真正 | Returns true if string is empty, else returns false | 好的,我们已经看了一些功能,现在让我们看看可以对字符串执行哪些操作。 第一个是串联,其中两个或多个字符串可以连接在一起,请看下面的示例 ```rb >> "Hello" + " " + "World!" => "Hello World!" ``` 在上面的代码中,我加入了三个字符串“ Hello” a(空格)“”和“ World!”。 使用加号,也可以对字符串变量执行相同的操作,如下所示 ```rb >> string_1 = "Hello" => "Hello" >> string_2 = "World!" => "World!" >> string_1 + " " + string_2 => "Hello World!" ``` 好了,我们已经研究了很多,冥想会有所帮助,让 lets 吟 OM &lt;sup class="footnote"&gt;[ [10](#_footnotedef_10 "View footnote.") ]&lt;/sup&gt; 净化并重置我们的思想。 你知道,Ruby 可以为你冥想! 在你的 irb 中输入以下内容 ```rb >> "OM " * 10 ``` 为了天堂,不要输入`&gt;&gt;`! 这是你的结果 ```rb => "OM OM OM OM OM OM OM OM OM OM " ``` 带数字的乘法运算符打印一个字符串 N 次,其中 N 是在`*`之后给出的数字。 #### 3.5.2。 转义序列 每当你键入类似`puts “Hello World!”`的语句时,Ruby 解释器都会显示`Hello World!`。 那就是`“`和`“`之间的所有东西都被打印出来了。 并非总是如此。 你可以在`“`和`“`之间放置一些可以避开正常打印顺序的东西。 启动你的 irb 并输入以下示例: ```rb >> puts "Hello \r World!" World! => nil ``` 令人惊讶的是,你仅看到`World!`被打印。 你好怎么了? 那么`\r`字符代表回车,这意味着 Hello 会被打印出来。 然后,回车/光标返回到行的开头,`World!`被覆盖。 就像`\r`代表回车一样,`\n`代表换行。 在 irb 中输入以下示例 ```rb >> puts "Hello \n World!" Hello World! => nil ``` 如你所见,`Hello`在第一行打印,`World!`在下一行打印。 这是因为我们在它们之间放置了换行符`\n`。 好了,现在来看一个场景,我们现在知道`\r`,`\n`以及其他可能不是打印字符。 现在如何在输出中打印`\n`或`\r`。 事实证明,如下面的示例所示,放置双反斜杠将在输出中打印反斜杠。 ```rb >> puts "Hello \\n World! => Hello \n World!" Hello \n World! => Hello World! => nil ``` `\t`以类似的方式将制表符空格放置在任何位置。 试试下面的例子 ```rb >> puts "Tabs \t leave\tlong spaces" Tabs leave long spaces => nil ``` 希望你对字符串有所了解,让我们继续... ### 3.6。 使用文字编辑器 到现在为止,你已经将小程序键入到你的 irb 中,当你开发大型软件时,你不能指望最终用户或客户继续将你为他/她开发的语句键入控制台。 交出一个有类型的 Ruby 程序,他们可以运行它来完成某些任务。 让我们看看如何使用文本编辑器编写程序。 在“安装 IDE”部分的前面,我已经键入了有关如何安装名为 Geany 的简单集成开发环境(IDE)的信息。 如果你使用的是 Ubuntu,请按超级键,输入 Geany,单击 Geany 图标,你将获得它。 ![geany](https://img.kancloud.cn/40/17/401702749a5f5fbf301fc0f440b0f2d1_970x695.jpg) 你也可以使用其他 IDE,如果需要其他 IDE,请参阅其文档以获取安装说明。 在 IDE 中,键入以下程序 ```rb puts "Hello World!" puts "This time I used text editor" ``` 现在,将文件另存为 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 命令,该命令将某些内容输入输出,在本例中为你的终端窗口。 ```rb puts "Hello World!" puts "This time I used text editor" ``` 第一行打印 Hello World! 第二张打印`This time I used a text editor`。 如果要在同一行中打印两件事怎么办? 为此,请使用`print`命令,为其键入一个新程序`hello_world_1.rb`,在文本编辑器中,键入以下代码 ```rb print "Hello World! " print "Once again I used a text editor" ``` 这给出了输出: ```rb Hello World! Once again I used a text editor So you have learned to print something! ``` ### 3.8。 获取输入 当程序与用户互动时,它会更有用,让我们编写一个程序来询问我们的名字并向我们问好。 输入以下代码(我将其保存为 say_hello.rb) ```rb puts "Hello I am Zigor, a automated Robot that says Hello" print "Please enter your name:" name = gets() puts "Hello #{name}" ``` 现在运行它,这就是输出的样子 ```rb Hello I am Zigor, a automated Robot that says Hello Please enter your name:Karthik Hello Karthik ``` 让我们通过程序 第一行 ```rb puts "Hello I am Zigor, a automated Robot that says Hello" ``` 打印程序名称为 Zigor 及其自动机器人,祝你好。 然后它打印一个换行符,因此随后打印的内容转到下一行 第二行 ```rb print "Please enter your name:" ``` 打印出`“Please enter your name:”`,请注意,我们在这里使用了`print`,而不是`puts`,因为我们想在`name:`之后获得用户名,如果让他们在下一行键入 name,我会觉得很尴尬 ,为避免换行,我使用`print`而不是`puts`。 当用户输入名称并按 Enter 时,它会被`gets()`函数捕获,并且由于这段代码,你键入的内容存储在名为 name 的变量中 ```rb name = gets() ``` 现在,我们的 Zigor 需要做的就是打个招呼,为此我们使用了这段代码 ```rb puts "Hello #{name}" ``` 注意我们如何通过将变量名放在`#{`和`}`之间来将变量名嵌入到字符串中。 通过使用这样的代码可以达到相同的效果 ```rb puts "Hello "+name ``` 但是前一段代码看起来更好吗? 这都是你的选择。 Ruby 使你可以通过多种方式执行相同的操作。 你可以选择任何自己喜欢的东西。 在本主题中,你必须要查看的任何行都是具有`gets()`方法或功能的行,它等待键盘输入,当你输入内容并按 Enter 键时,它将获取你的输入并将值分配给变量 ,在这种情况下,变量为 name。 ### 3.9。 注释 注释是你可以放入一个程序中的小笔记,以便你或其他人在进入该程序 7,658 年后会记得或知道它在做什么。 你今天可能很聪明,但是明天你可能不像现在这样聪明,付钱给你的老板或客户当时会大喊大叫,以修复优先级错误或更新软件。 打开文本编辑器,然后输入以下代码: ```rb puts "Hello I am Zigor, a automated Robot that says Hello" print "Please enter your name:" name = gets() puts "Hello #{name}" ``` 你现在也许可以理解,但是在 7,658 年之后 &lt;sup class="footnote"&gt;[ [11](#_footnotedef_11 "View footnote.") ]&lt;/sup&gt; ? 到那时,你可能已经完全忘记了 Ruby! 因此,开始评论。 请参见下面的同一程序`comment.rb`,它的外观如何? ```rb # The client is an idiot # he wants me to update a software after 7,658 years. # The hell with him puts "Hello I am Zigor, a automated Robot that says Hello" # zigor is some stupid robot print "Please enter your name:" # Tells the user to enter his name 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 的一些信息。 这些行以#开头(哈希或校验符号)。 复选标记后的内容是注释,注释不会干扰程序的执行,但可以用来向人们提供程序中正在发生的事情的视觉提示。 现在让我们看看这条线 ```rb puts "Hello #{name}" # Embeds name into the string that gets printed ``` 在这里,你将`#{name}`括在双引号中,因此将其视为字符串中的嵌入式 ruby 代码,而不是注释,而#将名称嵌入到要打印的字符串中被视为注释。 因此,我希望你理解该评论有一天能有所帮助。 专业人士在编写代码时总是会发表评论。 他们会很努力,以便几乎所有阅读其程序的 Ruby 编码器都能够理解它的运行方式。 #### 3.9.1。 多行注释 如果你想对段落大小发表很多评论,则可以将该文本放在`=begin`和`=end`之间,如下面的程序`comments_multiline.rb`中所示 ```rb =begin The client is an idiot he wants me to update a software after 7,658 years. The hell with him =end puts "Hello I am Zigor, a automated Robot that says Hello" # zigor is some stupid robot print "Please enter your name:" # Tells the user to enter his name 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 ``` 在上面的代码中,请注意我们如何放置这些文本: ```rb The client is an idiot he wants me to update a software after 7,658 years. The hell with him ``` 在`=begin`和`=end`之间,当你执行程序时,在`=begin`和`=end`之间的将被忽略。 因此,不要犹豫,写很多评论,因为现在你知道有一种方法可以这样做,它将极大地有益于你和你的其他程序员。 关于`=begin`和`=end`,你必须了解一小件事,那就是它们必须从第一列开始,`=`符号前不应有空格,如果有的话,ruby 会认为其中有一个 编程错误,将发出错误信号。