如何编写你的第一个Ruby程序

来自菜鸟教程
跳转至:导航、​搜索

介绍

“你好,世界!” 程序是计算机编程中的经典且历史悠久的传统。 对于初学者来说,这是一个简单而完整的第一个程序,它是确保您的环境配置正确的好方法。

本教程将引导您完成在 Ruby 中创建此程序的过程。 但是,为了使程序更有趣,我们将修改传统的“Hello, World”程序,使其询问用户的姓名。 然后我们将在问候语中使用该名称。 完成本教程后,您将拥有一个运行时如下所示的程序:

OutputPlease enter your name.
Sammy
Hello, Sammy! I'm Ruby!
    1. 先决条件

您应该在您的计算机上设置 本地 Ruby 开发环境 。 按照以下教程之一进行设置:

第 1 步——编写基本的“Hello, World!” 程序

写下“你好,世界!” 程序,让我们打开一个命令行文本编辑器,例如 nano 并创建一个新文件:

nano hello.rb

一旦文本文件在终端窗口中打开,我们将输入我们的程序:

你好.rb

puts "Hello, World!" 

让我们分解代码的不同组件。

puts 是一个 Ruby 方法,它告诉计算机在屏幕上打印一些文本。

然后 puts 方法后面跟着一个字符序列 — Hello, World!,用引号括起来。 引号内的任何字符都称为 字符串puts 方法会在程序运行时将此字符串打印到屏幕上。

一些方法,如 puts 方法,默认包含在 Ruby 中。 当您创建 Ruby 程序时,这些内置方法始终可用。 您还可以定义自己的方法。

通过键入 CONTROLX 键保存并退出 nano,当提示保存文件时,按 y

让我们试试我们的程序。

第 2 步 — 运行 Ruby 程序

随着我们的“你好,世界!” 程序写好了,我们准备运行程序。 我们将使用 ruby 命令,后跟我们刚刚创建的文件的名称。

ruby hello.rb

程序将执行并显示以下输出:

OutputHello, World!

让我们探索一下实际发生的事情。

运行 ruby 命令启动 Ruby interpreter。 Ruby 解释器读取您指定的文件并评估其内容。 它通过 调用 puts 函数来执行 puts "Hello, World!" 行。 Hello, World! 的字符串值被 传递 给函数。

在此示例中,字符串 Hello, World! 也称为 参数 ,因为它是传递给方法的值。

Hello, World! 两边的引号没有打印到屏幕上,因为它们用于告诉 Ruby 它们包含一个字符串。 引号描述了字符串的开始和结束位置。

该程序有效,但我们可以使其更具交互性。 让我们探索一下。

第三步——提示输入

每次我们运行程序时,它都会产生相同的输出。 让我们提示运行我们程序的人输入他们的姓名。 然后我们可以在输出中使用该名称。

不要修改现有程序,而是在 nano 编辑器中创建一个名为 greeting.rb 的新程序:

nano greeting.rb

首先,添加这一行,提示用户输入他们的姓名:

问候语.rb

puts "Please enter your name."

再次,我们使用 puts 方法将一些文本打印到屏幕上。

现在添加这一行来捕获用户输入:

问候语.rb

puts "Please enter your name."
name = gets

下一行涉及更多。 让我们分解一下。

gets 方法告诉计算机等待来自键盘的输入。 这会暂停程序,允许用户输入他们想要的任何文本。 当用户按下键盘上的 ENTER 键时,程序将继续。 然后捕获所有击键,包括 ENTER 击键并将其转换为 字符串 字符。

我们想在程序的输出中使用这些字符,所以我们通过将字符串 分配 到名为 name变量 来保存这些字符。 Ruby 将该字符串存储在您的计算机内存中,直到程序完成。

最后,添加这一行来打印输出:

问候语.rb

puts "Please enter your name."
name = gets
puts "Hi, #{name}! I'm Ruby!"

我们再次使用 puts 方法,但这次我们使用称为 字符串插值 的 Ruby 功能,它允许我们将分配给变量的值放入字符串中。 我们将获得保存在 name 变量中的值,而不是单词 name,它应该是用户名。

CTRL+X保存并退出nano,当提示保存文件时按y

现在运行程序。 系统将提示您输入您的姓名,因此请输入您的姓名并按 ENTER。 输出可能不完全符合您的预期:

OutputPlease enter your name.
Sammy
Hi, Sammy
! I'm Ruby!

而不是 Hi, Sammy! I'm Ruby!,在名称后面有一个换行符。

该程序捕获了我们击键的 all,包括我们按下以告诉程序继续的 ENTER 键。 在字符串中,按 ENTER 键会创建一个特殊字符,该字符会创建一个新行。 该程序的输出完全按照我们的要求执行; 它正在显示我们输入的文本,包括新行。 这不是我们想要的。 但我们可以修复它。

在编辑器中打开 greeting.rb 文件:

nano greeting.rb

在你的程序中找到这一行:

问候语.rb

name = gets

并对其进行修改,使其看起来像这样:

问候语.rb

name = gets.chop

这对我们使用 gets 捕获的字符串使用 Ruby 的 chop 方法。 chop 方法从字符串中删除最后一个字符。 在这种情况下,它会删除我们按下 ENTER 时创建的字符串末尾的换行符。

保存并退出nano。 按 CTRL+X,然后在提示保存文件时按 y

再次运行程序:

ruby greeting.rb

这一次,在你输入你的名字并按下 ENTER 后,你会得到预期的输出:

OutputPlease enter your name.
Sammy
Hi, Sammy! I'm Ruby!

您现在有一个 Ruby 程序,它接受用户的输入并将其打印回屏幕。

结论

既然您知道如何提示输入、处理结果和显示输出,请尝试进一步扩展您的程序。 例如,询问用户最喜欢的颜色,并让程序说它最喜欢的颜色是红色。 您甚至可以尝试使用相同的技术来创建一个简单的 Mad-Lib 程序。