这本书是为 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 入门。
在这里我们定义`self.===`,在其中接受一个参数字符串,在这里传递给`case`的`name`被复制到`string`,并检查`string`的`downcase`是否等于`“zigor”` 在`string.downcase == "zigor"`中,如果是,则返回`true`,否则返回`false`。 如果`true`被执行,当 when Zigor 块中的代码被执行时,我们得到输出`Nice to meet you Zigor!!!`。 将名称更改为其他值,然后看看会发生什么。
在上面的示例中,我们看到了两个变量`c`和`d`,它们都分配给相同的字符串“ able is ire ere elba”,但是如果我通过调用`c.object_id`和`d.object_id`看到对象 ID 是 ,两者是不同的。 这意味着这两个“可能是我看见了厄尔巴岛”存储在不同的位置。 它们被复制并复制。
好,什么是阶乘? 取一个数字,取 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} = #{factorialnumber}"
```
执行上面的代码,这就是您得到的输出
执行上面的代码,这就是你得到的输出
```rb
Factorialof17=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) 并执行它。
模块的另一种用途是您可以根据需要在模块中混合代码。 这个叫做 mixin。 我们已经了解了 mixin,但我没有告诉您这是 mixin。 例如,假设您正在用 Ruby for Linux 和 Apple 机器编写某些应用程序。 您会发现某些代码仅在 Linux 上有效,而其他代码仅在 Apple 上有效,然后可以如下所示将它们分开。 Apple 组件进入 Apple 模块,Linux 组件进入 Linux 模块。
模块的另一种用途是你可以根据需要在模块中混合代码。 这个叫做 mixin。 我们已经了解了 mixin,但我没有告诉你这是 mixin。 例如,假设你正在用 Ruby for Linux 和 Apple 机器编写某些应用程序。 你会发现某些代码仅在 Linux 上有效,而其他代码仅在 Apple 上有效,然后可以如下所示将它们分开。 Apple 组件进入 Apple 模块,Linux 组件进入 Linux 模块。
假设您的朋友使用 Linux 机器并想要运行您的程序。 您需要做的就是在代码中包含 Linux,如下所示。
假设你的朋友使用 Linux 机器并想要运行你的程序。 你需要做的就是在代码中包含 Linux,如下所示。
```rb
# mixin.rb
...
...
@@ -367,9 +367,9 @@ Output
This function contains code for Linux systems
```
调用方法`function`时,将调用`Linux`模块中的方法`function`。 简而言之,您已经在程序中混入了 Linux 代码,并保留了 Apple 的东西。
调用方法`function`时,将调用`Linux`模块中的方法`function`。 简而言之,你已经在程序中混入了 Linux 代码,并保留了 Apple 的东西。
我们正在读取`f.pos`为零的文件,也就是说,我们正在从文件的开头进行读取。 如您所见,第一个`puts f.gets`的输出显示了整行`All things exists because it was created.`的输出。 请注意下一行,现在我们使用`f.pos = 12`语句将文件中的位置更改为位置 12,这意味着我们的指针从头开始是 12 个字节。 现在,在第二个 puts `f.gets`中,因为创建了输出,所以它得到了存在的输出。 这表明我们能够成功更改文件在文件中的位置。
我们正在读取`f.pos`为零的文件,也就是说,我们正在从文件的开头进行读取。 如你所见,第一个`puts f.gets`的输出显示了整行`All things exists because it was created.`的输出。 请注意下一行,现在我们使用`f.pos = 12`语句将文件中的位置更改为位置 12,这意味着我们的指针从头开始是 12 个字节。 现在,在第二个 puts `f.gets`中,因为创建了输出,所以它得到了存在的输出。 这表明我们能够成功更改文件在文件中的位置。
@@ -586,7 +586,7 @@ f = File.new("log_file.txt", "a")
f.puts"\n"+Time.now.to_s+"\n"+text
```
当程序提示您输入某些内容时,键入`It will be great if dinosaurs were still around`之类的内容,然后按 Enter。 几次运行后,请运行几次该程序,键入一些内容,然后再打开 [log_file.txt](code/log_file.txt) ,然后看一下其中包含的内容。 当我打开我的时,这就是我得到的:
当程序提示你输入某些内容时,键入`It will be great if dinosaurs were still around`之类的内容,然后按 Enter。 几次运行后,请运行几次该程序,键入一些内容,然后再打开 [log_file.txt](code/log_file.txt) ,然后看一下其中包含的内容。 当我打开我的时,这就是我得到的:
```rb
SatMar2716:20:24+05302010
...
...
@@ -599,9 +599,9 @@ Sat Mar 27 16:21:36 +0530 2010
Thisismythirdlog.NowI'mgettingbored.
```
查看您的条目与时间戳的记录情况。 要了解程序如何让它遍历。
查看你的条目与时间戳的记录情况。 要了解程序如何让它遍历。
第一行`puts "Enter text to append into file: "`会打印出`Enter text to append into file:`,控制会转到下一行`text = gets`,在此阶段程序等待您输入内容,然后按 Enter 键。 当您按回车键时,您输入的内容将存储在变量`text`中。
第一行`puts "Enter text to append into file: "`会打印出`Enter text to append into file:`,控制会转到下一行`text = gets`,在此阶段程序等待你输入内容,然后按 Enter 键。 当你按回车键时,你输入的内容将存储在变量`text`中。
raise.rb:5:in`<main>': You did not enter right num (RuntimeError)
```
从输出中可以看到,如果输入的任何数字不是从 1 到 10,程序都会引发异常。请参见代码段`raise "You did not enter right num"`,这就是在 Ruby 中引发异常的全部过程。 关键字`raise`后跟一个对象,在这种情况下,我们给出了一个字符串,但是如果我们给出一个常量(引发异常的规范),那将是很好的。 [raise_1.rb](code/raise_1.rb) 下面的程序显示了如何处理自己的异常,该异常与您先前编写的救援程序没有什么不同。
从输出中可以看到,如果输入的任何数字不是从 1 到 10,程序都会引发异常。请参见代码段`raise "You did not enter right num"`,这就是在 Ruby 中引发异常的全部过程。 关键字`raise`后跟一个对象,在这种情况下,我们给出了一个字符串,但是如果我们给出一个常量(引发异常的规范),那将是很好的。 [raise_1.rb](code/raise_1.rb) 下面的程序显示了如何处理自己的异常,该异常与你先前编写的救援程序没有什么不同。