隐藏一个单词并请求输入一个字母
学习如何在 Ruby 中获取输入、打印数据、创建变量并赋值。
我们从几行代码开始。每一行都是一条指令。我们用来编写代码的工具会通过颜色突出显示与语言规则相关的不同代码元素。
1hidden_word = "hello" 2 3puts "_ _ _ _ _" 4puts 5 6print "Give me a letter: " 7 8gets
隐藏单词
让我们详细分析上述代码的作用。**第1行**包含三个部分,分别是:
- 一个名称(由两个英文单词用下划线连接而成):
hidden_word。 - 等号:
=。 - 一组字母,称为字符串,用双引号括起来:
"hello"。

Ruby 理解什么?
- 包围字符串的双引号表示一段字符序列(
"hello"),对 Ruby 来说,这段内容本身没有意义,即使对我们有意义。 - 等号(
=)表示我们要给这个字符串赋予一个名字,以便之后可以通过这个名字来引用它。就像我们提到一个人时使用他被赋予的名字一样。 - 我们给字符串起的名字是
hidden_word。
第1行对我们意味着什么?
我们决定隐藏的单词是 hello,并将其命名为 hidden_word。下面用一张图再次说明这一点,图中展示了:
- Ruby 所识别的三种元素类型。
- 不同颜色表示这些元素的功能。
- 用箭头表示将字符串(
"hello")命名的过程。 - 命名操作需要等号,因此箭头和等号
=使用相同颜色。
在屏幕上显示内容
第3行包含两个元素:
- 单词
puts。 - 另一个字符序列
"_ _ _ _ _"。
Ruby 从第3行理解什么?
- 它识别出
puts是 Ruby 中的一个关键字,意思是:在屏幕上显示内容。 - 字符串就是我们希望用
puts显示在屏幕上的内容。
我们可以再次用一张图来展示 Ruby 识别出的这两个元素。
其效果是在屏幕上显示字符串 "_ _ _ _ _",这向玩家提供了关于隐藏单词的信息(即单词的字母数量)。
第4行与前一行非常相似。区别在于,puts 后面没有内容,此时的效果是空行换行。
使用 print 而不是 puts
第6行包含以下内容:
- 单词
print。 - 字符串
"Give me a letter: "。
这里使用了 print 而不是 puts,后面跟了一个新的字符串(提示用户输入一个字母)。print 的效果与 puts 类似,但有一个关键区别:puts 显示内容后会自动换行,而 print 显示内容后会停留在该内容的末尾,不会换行。
获取输入
下一行只包含单词 gets,这是 Ruby 的一个关键字。它的作用是等待屏幕前的用户在键盘上输入字符,并按“Enter”键结束(回车:老式打字机有一个字车,当字符击打纸张时,字车会移动并拉动纸张;当操作员想回到页面左侧时,按下按钮即可让字车返回最左位置)。Ruby 会将用户输入的每一个字符都显示在屏幕上。
第8行是代码的最后一行。
让我们测试代码
源代码已保存在 hangman.rb 文件中。如果我们希望计算机读取该文件并执行其中的指令,就必须通过命令 ruby hangman.rb 发出请求。点击“运行”按钮,查看输出结果!
No configuration found for ID: 806fd5a2b4b989cbfa63bfd9ebd524b3fc3f0587ffd03fb4323488e0c021a249
程序输出如下:
1_ _ _ _ _ 2 3Give me a letter: h
程序在此处结束,因为第8行之后没有更多代码。
Quiz
输出为:
1Hello,John