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

引言

「你好,世界!」程序是计算机编程中的经典传统。对于初学者来说,这是一个简单而完整的首个程序,也是确保你的环境配置正确的好方式。

这个教程将引导您使用Ruby创建这个程序。然而,为了使程序更加有趣,您将修改传统的“Hello, World”程序,以便询问用户的姓名。然后,您将在问候语中使用这个姓名。当您完成教程时,运行程序时将会看到以下的效果。

Output

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

先决条件

您应该在您的计算机上设置一个本地的Ruby开发环境。按照以下其中一篇教程的步骤来进行设置:

  • How to Install Ruby and Set Up a Local Programming Environment on macOS
  • How to Install Ruby and Set Up a Local Programming Environment on Ubuntu 16.04
  • How to Install Ruby and Set Up a Local Programming Environment on Windows 10

步骤1 — 编写基本的“你好,世界!”程序

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

  1. nano hello.rb

 

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

你好.rb
puts "Hello, World!"

我们来分解这段代码的不同组成部分。

puts是一个Ruby方法,用于命令计算机将一些文本打印到屏幕上。

接下来,puts方法后面跟着一串用引号括起来的字符——”Hello, World!”。任何位于引号内的字符被称为字符串。当程序运行时,puts方法会将这个字符串打印到屏幕上。

一些方法,例如puts方法,已经默认包含在Ruby中。这些内置方法在创建Ruby程序时随时可用。您也可以自己定义方法。

通过键入“控制”和“X”键来保存并退出nano,当提示保存文件时,按y然后按ENTER。

我们来试试你的程序吧。

步骤2 — 运行一个Ruby程序

写好了你的“Hello, World!”程序后,你就可以运行这个程序了。你将使用ruby命令,后面跟着刚刚创建的文件的名称。

  1. ruby hello.rb

 

该程序将执行并显示输出结果。

Output

Hello, World!

让我们来探索实际发生了什么。

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

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

由于引号告诉Ruby它们包含一个字符串,所以Hello,World!两侧的引号没有被打印到屏幕上。引号标志着字符串的开始和结束位置。

这个程序可以运行,但是你可以使它更加互动。让我们一起来探索一下如何实现互动。

第三步 — 提示输入信息

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

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

  1. nano greeting.rb

 

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

问候.rb
puts "Please enter your name."

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

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

你好.rb (nǐ .rb)
puts "Please enter your name."
name = gets

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

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

你想在程序的输出中使用这些字符,所以你将字符串保存到一个名为“名字”的变量中。Ruby会将该字符串存储在计算机的内存中,直到程序完成。

最后,添加这行代码来打印输出结果。

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

你再次使用puts方法,但这一次你使用了一种叫做字符串插值的Ruby特性,它允许你将赋值给一个变量的值放在字符串内。你将得到保存在名为name的变量中的值,这个值应该是用户的名字。

按下CTRL+X保存并退出nano,当提示保存文件时按下y,然后按下回车键。

现在用这个命令运行程序:

  1. ruby greeting.rb

 

当系统提示您输入姓名时,请输入并按回车键。输出结果可能与您的期望不完全一致。

Output

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

嗨 雷比!我是萨米!

这个程序捕捉到了你输入的所有按键,包括你按下回车键来告诉程序继续执行的按键。在字符串中,按下回车键会生成一个特殊字符,用来创建新的一行。程序的输出正是按照你的指示进行,显示了你输入的文本,包括那个新的一行。只是这不是你想要的结果。但是你可以修复它。

打开你的编辑器中的greeting.rb文件。

  1. nano greeting.rb

 

在你的程序中找到这行。

问候.rb
name = gets

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

你好.rb
name = gets.chop

这在我们用gets捕获的字符串上使用了Ruby的chop方法。chop方法会将字符串的最后一个字符删除。在这种情况下,它删除了我们按下回车键时创建的字符串末尾的换行符。

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

再次运行程序

  1. ruby greeting.rb

 

这次,当你输入你的名字并按下回车后,你会得到预期的输出。

Output

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

你现在有一个 Ruby 程序,可以接受用户输入并将其打印到屏幕上。

结论

现在你已经知道如何提示输入、处理结果和显示输出了,尝试进一步扩展你的程序吧。例如,询问用户最喜欢的颜色,并让程序说它最喜欢的颜色是红色。你甚至可以尝试使用这种技巧来创建一个简单的疯狂填词程序。

发表回复 0

Your email address will not be published. Required fields are marked *


广告
将在 10 秒后关闭
bannerAds