获取并保存输入信息

首先将一个提示字符串输出后(这里是命令行窗口),显然下一步就是获取一个字符串。正如你可能猜到的,Ruby 为此提供的是 gets 方法。2helloname.rb 这段程序提示用户输入他们的名字,假设输入的是 ‘Fred’,随后将显示一句问候语:”Hello Fred”。

2helloname.rb
  1. print( 'Enter your name: ' )
  2. name = gets()
  3. puts( "Hello #{name}" )

虽然说这仍然非常地简单,但有一些重要的细节需要说明。首先,注意我输出提示的时候使用的是 print 方法而不是 puts 方法。这是因为 puts 方法会在末尾自动添加一个换行符,但 print 方法则不会;而当前我希望光标和提示能在同一行显示。

在下一行,当用户按下 Enter 键时,我使用 gets() 方法读取用户的输入并以字符串类型保存。该字符串会被赋值给 name 变量(variable)。我没有预先声明该变量,也没有指定它的类型。在 Ruby 中,你可以根据需要去创建变量,并且 Ruby 会自动去推断该变量的类型。现在我将一个字符串赋值给了 name,因此 Ruby 推断 name 变量的类型一定是字符串(String)。

注意:Ruby 是大小写敏感的。一个名为 myvar 的变量和名为 myVar 的变量是不同的。一个和示例程序中 name 一样的变量,它的名字必须以小写字母开头(如果以大写字母开头,Ruby 会认为它是一个常量(constant),关于常量在后面的章节我会详细说明。)

顺便说一下,gets() 方法的括号是可选的,它与 printputs 方法用来包围字符串的括号是一样的,如果你移除了括号,仍然会得到相同的结果。但是,括号可以帮助你解决某些语义冲突,并且在某些情况下,如果你省略它们,解释器将会发出警告。