当前位置:  开发笔记 > 后端 > 正文

Ruby:未定义的方法`>'

如何解决《Ruby:未定义的方法`>'》经验,为你挑选了2个好方法。

我刚开始学习Ruby,今天遇到了一个问题.

numResults = /\d+/.match(ie.div(:id, 'results_label').text)
puts "Results found: "+numResults.to_s

while(numResults > 0)
.
. some more code
.

我的输出中出现此错误:

Exception: undefined method `>' for #

这真的很奇怪,因为我在IRB中做了一个while循环,它工作得很好.我不能让循环中的代码执行,因为程序坚持条件.

谁知道什么是错的?



1> Jeremy Ruten..:

numResults是一个MatchData对象,不能与>方法进行比较.您需要将其转换为字符串,然后将字符串转换为数字:

while(numResults.to_s.to_i > 0)



2> Kent Fredric..:

在字符串与表达式不匹配的情况下,numResults将是nil

所以如果那就是你要测试的东西,你会想要的

while( !numResults.nil? ){ 

}

在字符串的情况下匹配的表达,numResults也不会nil在,另外,将包含匹配的数目(仅1最多这里,因为你没有一个重复匹配)numResults.size

此外,其他海报需要记住,numResults其中不包含任何匹配项,但包含文本数据中实际匹配的值.

numResults.to_s.to_i 

可能会工作,这只是因为它的优雅nil.to_s.to_i == 0.

如果你依赖于numResults正则表达式匹配计数方面的任何有意义的东西,那么你看错了地方.

推荐阅读
TXCWB_523
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有