“你好,世界!”程序是计算机编程中经典且历史悠久的传统。对于初学者来说,这是一个小而完整的第一个程序,并且是确保正确配置环境的好方法。
本教程将引导您完成用 Ruby 创建该程序。但是,为了使程序更有趣,您将修改传统的“Hello, World”程序,以便它询问用户的姓名。然后您将在问候语中使用该名字。完成本教程后,运行时您将得到一个如下所示的程序:
Output
Please enter your name.
Sammy
Hello, Sammy! I'm Ruby!
你应该有一个本地Ruby开发环境在您的计算机上设置。按照以下教程之一进行设置:
- 如何在 macOS 上安装 Ruby 并设置本地编程环境
- 如何在 Ubuntu 16.04 上安装 Ruby 并设置本地编程环境
- 如何在 Windows 10 上安装 Ruby 并设置本地编程环境
写“你好,世界!”程序,打开命令行文本编辑器,例如nano
并创建一个新文件:
一旦文本文件在终端窗口中打开,您将输入您的程序:
hello.rb
让我们分解代码的不同组成部分。
puts
是一颗红宝石method它告诉计算机将一些文本打印到屏幕上。
The puts
方法后面跟着一个字符序列 -Hello, World!
,用引号引起来。引号内的任何字符都称为string. The puts
当程序运行时,方法会将此字符串打印到屏幕上。
有些方法,例如puts
方法,默认包含在 Ruby 中。当您创建 Ruby 程序时,这些内置方法始终可用。您还可以定义自己的方法。
保存并退出nano
通过输入CONTROL
and X
键,当提示保存文件时,按y
并击中ENTER
.
让我们试试你的程序。
带着你的“你好,世界!”程序写好后,就可以运行该程序了。您将使用ruby
命令,后跟您刚刚创建的文件的名称。
该程序将执行并显示以下输出:
Output
Hello, World!
让我们来探讨一下到底发生了什么。
运行ruby
命令启动 Ruby口译员。 Ruby 解释器读取您指定的文件并评估其内容。它执行了该行puts "Hello, World!"
通过致电puts
功能。的字符串值Hello, World!
被传递给函数。
在此示例中,字符串Hello, World!
也称为argument因为它是传递给方法的值。
两边的引号Hello, World!
没有打印到屏幕上,因为它们用于告诉 Ruby 它们包含一个字符串。引号描述了字符串的开始和结束位置。
该程序可以运行,但您可以使其更具交互性。让我们探讨一下如何做。
每次运行程序时,它都会产生相同的输出。让我们提示运行您的程序的人输入他们的名字。然后您可以在输出中使用该名称。
不要修改现有程序,而是创建一个名为的新程序greeting.rb
in the nano
editor:
首先,添加此行,提示用户输入名称:
问候语.rb
puts "Please enter your name."
您再次使用puts
方法将一些文本打印到屏幕上。
现在添加此行来捕获用户输入:
问候语.rb
puts "Please enter your name."
name = gets
下一行涉及更多一些。让我们来分解一下。
The gets
方法告诉计算机等待键盘输入。这会暂停程序,允许用户输入他们想要的任何文本。当用户按下时程序将继续ENTER
他们键盘上的键。所有击键,包括ENTER
然后捕获击键并将其转换为字符串。
您希望在程序的输出中使用这些字符,因此可以通过将字符串分配给名为的变量来保存这些字符name
。 Ruby 将该字符串存储在计算机内存中,直到程序完成。
最后,添加此行以打印输出:
问候语.rb
puts "Please enter your name."
name = gets
puts "Hi, #{name}! I'm Ruby!"
您使用puts
再次使用方法,但是这次您使用了一个名为的 Ruby 功能字符串插值,它允许您获取分配给变量的值并将其放置在字符串内。而不是这个词name
,您将获得您在中保存的值name
变量,应该是用户的名称。
保存并退出nano
通过按CTRL+X
,然后按y
当提示保存文件时,然后点击ENTER
.
现在使用以下命令运行程序:
系统会提示您输入姓名,因此请输入该姓名并按ENTER
。输出可能不完全符合您的预期:
Output
Please enter your name.
Sammy
Hi, Sammy
! I'm Ruby!
代替Hi, Sammy! I'm Ruby!
,名称后面有一个换行符。
程序捕获了all您的击键次数,包括ENTER
您按下的让程序继续运行的键。在字符串中,按ENTER
键创建一个特殊字符,用于创建新行。程序的输出完全按照您的指示进行;它显示您输入的文本,包括新行。这不是你想要的。但你可以修复它。
打开greeting.rb
文件在你的编辑器中:
在您的程序中找到这一行:
问候语.rb
并修改它,使其看起来像这样:
问候语.rb
这使用了 Ruby 的chop
我们捕获的字符串上的方法gets
. The chop
方法从字符串中删除最后一个字符。在这种情况下,它会删除我们按下时创建的字符串末尾的换行符ENTER
.
保存并退出nano
. Press CTRL+X
,然后按y
当提示保存文件时。
再次运行程序:
这次,输入您的姓名并按后ENTER
,您将得到预期的输出:
Output
Please enter your name.
Sammy
Hi, Sammy! I'm Ruby!
您现在有一个 Ruby 程序,它接受用户的输入并将其打印回屏幕。
既然您知道如何提示输入、处理结果和显示输出,请尝试进一步扩展您的程序。例如,询问用户最喜欢的颜色,然后让程序说它最喜欢的颜色是红色。您甚至可以尝试使用相同的技术来创建一个简单的 Mad-Lib 程序。