介绍
“Hello, World!”程序是计算机编程中的经典传统,历久不衰。对于初学者来说,这是一个小而完整的第一个程序,也是确保您的环境配置正确的好方法。
本教程将引导您逐步创建Ruby中的此程序。然而,为了使程序更有趣,您将修改传统的“Hello, World”程序,以便询问用户的姓名。然后,您将在问候语中使用该姓名。完成教程后,运行程序时它将如下所示:
OutputPlease enter your name.
Sammy
Hello, Sammy! I'm Ruby!
先决条件
您应该在计算机上设置好一个本地Ruby开发环境。按照以下教程之一进行设置:
步骤1 — 编写基本的“Hello, World!”程序
要编写“Hello, World!”程序,打开命令行文本编辑器,如nano
,并创建一个新文件:
- nano hello.rb
一旦文本文件在终端窗口中打开,您将输入您的程序:
puts "Hello, World!"
让我们分解代码的不同组件。
puts
是一个Ruby方法,告诉计算机将一些文本打印到屏幕上。
然后puts
方法后面跟着一个字符序列 — Hello, World!
,用引号括起来。引号内的任何字符都称为一个字符串。当程序运行时,puts
方法将打印此字符串到屏幕上。
一些方法,比如puts
方法,是Ruby默认包含的。这些内置方法在创建Ruby程序时始终可用。您也可以定义自己的方法。
通过键入CONTROL
和X
键退出nano
,然后在提示保存文件时,按下y
,然后按ENTER
。
让我们尝试运行您的程序。
步骤2 — 运行Ruby程序
编写了“Hello,World!”程序后,您准备好运行该程序了。您将使用ruby
命令,后面跟着刚刚创建的文件的名称。
- ruby hello.rb
程序将执行并显示此输出:
OutputHello, World!
让我们探讨一下实际发生了什么。
运行ruby
命令启动了Ruby解释器。 Ruby解释器读取您指定的文件并评估其内容。它通过调用puts
函数执行了puts "Hello, World!"
这一行。字符串值Hello, World!
被传递给函数。
在这个例子中,字符串Hello, World!
也被称为一个参数,因为它是传递给方法的值。
双引号分别位于Hello, World!
两侧的引号没有被打印到屏幕上,因为它们用于告诉Ruby它们包含一个字符串。引号标志着字符串的起始和结束位置。
程序可以运行,但你可以让它变得更具交互性。让我们来探讨一下如何做。
步骤 3 —— 提示输入
每次运行程序时,它都会产生相同的输出。让我们提示运行程序的人输入他们的名字。然后,你可以在输出中使用该名字。
不要修改你现有的程序,而是在nano
编辑器中创建一个名为greeting.rb
的新程序:
- nano greeting.rb
首先,添加这行代码,提示用户输入他们的名字:
puts "Please enter your name."
再次使用puts
方法向屏幕打印一些文本。
现在添加这行代码来获取用户输入:
puts "Please enter your name."
name = gets
接下来的这行代码有点复杂。让我们来分解一下。
gets
方法告诉计算机等待键盘输入。这会暂停程序,允许用户输入任何他们想要的文本。当用户在键盘上按下ENTER
键时,程序将继续运行。所有的按键,包括ENTER
按键,都会被捕获并转换为一个字符字符串。
系统: 您希望在程序输出中使用这些字符,因此通过将字符串分配给名为name
的变量来保存这些字符。 Ruby将该字符串存储在计算机的内存中,直到程序完成。
最后,添加此行以打印输出:
puts "Please enter your name."
name = gets
puts "Hi, #{name}! I'm Ruby!"
再次使用puts
方法,但这次使用Ruby的一个特性称为字符串插值,它允许您取出分配给变量的值并将其放入字符串中。您将获得保存在name
变量中的值,这应该是用户的姓名,而不是单词name
。
保存并退出nano
,按CTRL+X
,在提示保存文件时按y
,然后按ENTER
。
现在使用此命令运行程序:
- ruby greeting.rb
程序将提示您输入姓名,因此输入并按ENTER
。输出可能不会完全符合您的预期:
OutputPlease enter your name.
Sammy
Hi, Sammy
! I'm Ruby!
与Hi,Sammy!我是Ruby!
不同,姓名后面有一个换行符。
程序捕获了所有您的按键,包括按下ENTER
键告诉程序继续的按键。在字符串中,按ENTER
键会创建一个创建新行的特殊字符。程序的输出正是您告诉它要做的事情; 它显示您输入的文本,包括该新行。只是不是您想要的。但您可以修复它。
在编辑器中打开greeting.rb
文件:
- nano greeting.rb
在程序中找到此行:
name = gets
并修改它,使其看起来像这样:
name = gets.chop
这使用Ruby的chop
方法处理我们用gets
捕获的字符串。在这种情况下,chop
方法会从字符串中移除最后一个字符。在这里,它移除了我们按下ENTER
时在字符串末尾创建的换行符。
保存并退出nano
。按CTRL+X
,然后在提示保存文件时按y
。
再次运行程序:
- ruby greeting.rb
这次,在输入名字并按ENTER
后,您将获得预期的输出:
OutputPlease 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