我遵循了一个例子来开始学习Ruby。以下代码在我的文本编辑器(Visual Studio Code)中起作用。但是当我使用交互式ruby程序打开文件时。它似乎不起作用。
puts "Hello there! Please enter a number to square: "
number = gets.chomp.to_i
def squared(number)
squared = number * number
return squared.to_s
end
puts "Your number is: " + number.to_s
puts "Your number squared is: " + square(number)
它会打印出首字母“你好!请输入一个数字以平方:” 但是,一旦我输入数字并按Enter,程序就会突然关闭。
答案 0 :(得分:1)
问题是您双击example.rb
文件,该文件在cmd.exe
中打开,执行完example.rb
后自动关闭。这是Windows的正常行为:cmd.exe
在运行任何应用程序调用后都会自动关闭。
您要做的是手动打开命令提示符(cmd.exe
),然后使用ruby example.rb
运行您的应用程序。您的应用程序完成运行后,这将使cmd.exe
保持打开状态,因为您的应用程序未调用cmd.exe
;它是由您手动调用的。
这将使您可以在应用程序完成运行后查看Your number is:
的输出。双击example.rb
时,仍会打印此输出,但是窗口关闭得如此之快以至于看不到它。
此外,您的应用程序中包含一些错误。具体来说,您应该在致电square(number)
时尝试致电squared(number)
。
这是您的代码被清除了一点:
puts 'Hello there! Please enter a number to square: '
number = gets.chomp.to_i
def squared(number)
number * number
end
puts "Your number is: #{number}"
puts "Your number squared is: #{squared(number)}"
请注意,对于不包含string interpolation的字符串,对squared
方法使用implicit return,对于puts
调用则使用字符串内插,请使用单引号。>