加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在Ruby中输入转换:“正确”的方式?

发布时间:2020-12-17 04:19:25 所属栏目:百科 来源:网络整理
导读:我想确定一个字符串是否是 Ruby中的数字.这是我的代码 whatAmI = "32.3a22"puts "This is always false " + String(whatAmI.is_a?(Fixnum));isNum = false;begin Float(whatAmI) isNum = true;rescue Exception = e puts "What does Ruby say? " + e isNum =
我想确定一个字符串是否是 Ruby中的数字.这是我的代码
whatAmI = "32.3a22"
puts "This is always false " + String(whatAmI.is_a?(Fixnum));
isNum = false;
begin
  Float(whatAmI)
  isNum = true;
rescue Exception => e
  puts "What does Ruby say? " + e
  isNum = false;
end
puts isNum

我意识到我可以用RegEx做到这一点,但有没有任何标准的方法可以做到这一点,我错过了?我见过can_convert?方法,但我似乎没有.

有没有办法添加can_convert?所有字符串的方法?我知道在Ruby中它是可能的.我也明白这可能是完全不必要的……

编辑to_f方法不起作用,因为它们从不抛出异常,而只是返回0,如果它没有用完.

解决方法

你有正确的想法.但它可以做得更紧凑一点:
isNum = Float(whatAmI) rescue nil

内联“救援”非常有趣.如果你把它放在更多东西的中间,请将你正在营救的部分括号括起来,例如:

if (isNum = Float(whatAmI) rescue nil) && isNum > 20
  ...

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读