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

介绍

“Hello, World!”程序是计算机编程中的经典传统,历久不衰。对于初学者来说,这是一个小而完整的第一个程序,也是确保您的环境配置正确的好方法。

本教程将引导您逐步创建Ruby中的此程序。然而,为了使程序更有趣,您将修改传统的“Hello, World”程序,以便询问用户的姓名。然后,您将在问候语中使用该姓名。完成教程后,运行程序时它将如下所示:

Output
Please enter your name. Sammy Hello, Sammy! I'm Ruby!

先决条件

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

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

要编写“Hello, World!”程序,打开命令行文本编辑器,如nano,并创建一个新文件:

  1. nano hello.rb

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

hello.rb
puts "Hello, World!"

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

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

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

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

通过键入CONTROLX键退出nano,然后在提示保存文件时,按下y,然后按ENTER

让我们尝试运行您的程序。

步骤2 — 运行Ruby程序

编写了“Hello,World!”程序后,您准备好运行该程序了。您将使用ruby命令,后面跟着刚刚创建的文件的名称。

  1. ruby hello.rb

程序将执行并显示此输出:

Output
Hello, World!

让我们探讨一下实际发生了什么。

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

在这个例子中,字符串Hello, World!也被称为一个参数,因为它是传递给方法的值。

双引号分别位于Hello, World!两侧的引号没有被打印到屏幕上,因为它们用于告诉Ruby它们包含一个字符串。引号标志着字符串的起始和结束位置。

程序可以运行,但你可以让它变得更具交互性。让我们来探讨一下如何做。

步骤 3 —— 提示输入

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

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

  1. nano greeting.rb

首先,添加这行代码,提示用户输入他们的名字:

greeting.rb
puts "Please enter your name."

再次使用puts方法向屏幕打印一些文本。

现在添加这行代码来获取用户输入:

greeting.rb
puts "Please enter your name."
name = gets

接下来的这行代码有点复杂。让我们来分解一下。

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

系统: 您希望在程序输出中使用这些字符,因此通过将字符串分配给名为name的变量来保存这些字符。 Ruby将该字符串存储在计算机的内存中,直到程序完成。

最后,添加此行以打印输出:

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

再次使用puts方法,但这次使用Ruby的一个特性称为字符串插值,它允许您取出分配给变量的值并将其放入字符串中。您将获得保存在name变量中的值,这应该是用户的姓名,而不是单词name

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

现在使用此命令运行程序:

  1. ruby greeting.rb

程序将提示您输入姓名,因此输入并按ENTER。输出可能不会完全符合您的预期:

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

Hi,Sammy!我是Ruby!不同,姓名后面有一个换行符。

程序捕获了所有您的按键,包括按下ENTER键告诉程序继续的按键。在字符串中,按ENTER键会创建一个创建新行的特殊字符。程序的输出正是您告诉它要做的事情; 它显示您输入的文本,包括该新行。只是不是您想要的。但您可以修复它。

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

  1. nano greeting.rb

在程序中找到此行:

greeting.rb
name = gets

并修改它,使其看起来像这样:

greeting.rb
name = gets.chop

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

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

再次运行程序:

  1. ruby greeting.rb

这次,在输入名字并按ENTER后,您将获得预期的输出:

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

现在,您有一个Ruby程序,它从用户那里接收输入并将其打印回屏幕上。

结论

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

Source:
https://www.digitalocean.com/community/tutorials/how-to-write-your-first-ruby-program