介绍
“Hello,World!”程序是计算机程序设计中经典而悠久的传统。
这是初学者简单而完整的第一个程序,它是确保您的环境配置正确的好方法。
本教程将引导您在Ruby中创建此程序。 但是,为了使程序更有趣,我们将修改传统的“Hello,World”程序,以便向用户询问他们的名称。 然后,我们将在问候语中使用该名称。 完成本教程后,运行它时,您将看到一个这样的程序:
OutputPlease enter your name.
Sammy
Hello, Sammy! I'm Ruby!
先决条件
您应该在您的计算机上设置本地的Ruby开发环境 。 通过以下其中一个教程设置一个:
第一步 - 编写基本的“Hello,World!”程序
要编写“Hello,World!”程序,让我们打开一个命令行文本编辑器,如nano
并创建一个新的文件:
nano hello.rb
一旦文本文件在终端窗口中打开,我们将输出我们的程序:
puts "Hello, World!"
我们来分解代码的不同组件。
puts
是一种Ruby 方法 ,它告诉计算机将一些文本打印到屏幕上。
然后, puts
方法后跟一系列字符 - Hello, World!
,用引号括起来。 引号内的任何字符都称为字符串 。 在程序运行时, puts
方法会将该字符串打印到屏幕上。
默认情况下,一些方法,如puts
方法,包含在Ruby中。 当您创建Ruby程序时,这些内置方法始终可用。 您也可以定义自己的方法。
通过输入CONTROL
和X
键保存并退出nano
,当提示保存文件时,按y
。
我们来试试我们的节目。
第2步 - 运行Ruby程序
随着我们的“Hello,World!”程序的编写,我们准备运行该程序。 我们将使用ruby
命令,后跟我们刚刚创建的文件的名称。
ruby hello.rb
该程序将执行并显示此输出:
OutputHello, World!
我们来探讨一下究竟发生了什么。
运行ruby
命令启动了Ruby 解释器 。 Ruby解释器读取您指定的文件并评估其内容。 它执行了puts "Hello, World!"
通过调用 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
变量中的值,它应该是用户的名称。
按CTRL+X
保存并退出nano
,并在提示保存文件时按y
。
现在运行程序。 系统将提示您输入名称,然后输入,然后按ENTER
。 输出可能不完全符合您的期望:
OutputPlease enter your name.
Sammy
Hi, Sammy
! I'm Ruby!
而不是Hi, Sammy! I'm Ruby!
Hi, Sammy! I'm Ruby!
名字后面有一个换行符。
该程序捕获了我们的所有按键,包括我们按下的ENTER
键,告诉程序继续。 在字符串中,按ENTER
键创建一个创建新行的特殊字符。 程序的输出正在做我们告诉它做的事情; 它显示我们输入的文字,包括新行。 这不是我们想要的。 但是我们可以解决它。
在编辑器中打开greeting.rb
文件:
nano greeting.rb
在你的程序中找到这一行:
name = gets
并修改它看起来像这样:
name = gets.chop
这对我们捕获的字符串使用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程序。