我应该测试'name'是否由字母组成:
name = "Jack"
test = 'name =~ /^[A-Z]/'
据我了解,这是:
puts eval(test)
应该返回:TRUE,但给出的输出是'0',(是的,我知道某些语言中的0 = = false ..)
但是,如果我在if语句中尝试eval ..
if eval(test)
puts 'yeah'
end
..我得到了预期的结果..是的,或者更确切地说:'是啊'..
为什么我不能马上得到'正确'的输出?从我的朋友@Google中找不到任何有意义的东西..
答案 0 :(得分:2)
=~
返回匹配位置。
在ruby中,除nil
和false
之外的所有内容都被视为真实。即使0
也是如此!
将任何内容转换为bool的一种方法是使用!!
。
答案 1 :(得分:1)
如果您想获得true / false值,可以编写
!!(name =~ /^[A-Z]/)
但没有必要,因为if
适用于=~