【发布时间】:2012-10-30 23:36:56
【问题描述】:
目前我有这个(可怕的)代码:
def is_num(num_given)
begin
num_given.to_i
worked = true
rescue
worked = false
ensure
return worked
end
end
我对此进行了重构:
def is_num(num_given)
num_given.to_i.is_a?(Numeric) rescue false
end
这对我来说仍然感觉不对,有更好的方法吗?
这两种实现都适合我的目的,我只是在寻找一些代码兴奋。
【问题讨论】:
-
你的函数不起作用:
is_num("a") #=> true -
这很好,@shioyama。如果没有找到数字,则字符串上的 #to_i 返回 0,因此该函数将始终返回 true。
-
这就是为什么……您应该始终编写并包含单元测试!
标签: ruby ruby-on-rails-3