如何在ruby中进行try方法

时间:2016-12-19 10:04:59

标签: ruby

我可以将对象转换为to_i的整数。如果输入不是数字,怎么能让它不转换?

在python中我会这样做:

h=input("Number: ")
try:
    h=int(h)
except ValueError:
    print("Please enter numbers!")

所以我在ruby中试过这个:

print "Number: "
h=gets.chomp
try(h.to_i)
    print(h)
end

但是即使我输入字母也打印输入,所以这意味着我做错了。这样做的正确Ruby方法是什么?

1 个答案:

答案 0 :(得分:2)

阅读ruby docs for to_i

  

返回将str中的前导字符解释为的结果   整数基数(2到36之间)。过去的外来人物   有效数字的结尾将被忽略。如果没有有效号码   str的开始,返回0。此方法永远不会引发异常   当base有效时。

在您的情况下(映射Python行为)您想要的是:

begin
    Integer(gets)
rescue ArgumentError
    puts "Please enter numbers!"
end