你如何反向
asd = 'qwe'
asd.match('qwe') do
p 'it matches'
else
p 'it doesnt match'
end
反过来,我的意思是
asd.does_not_match('qwe') do
p 'it doesnt match'
else
p 'it matches'
end
'不匹配'的语法是什么?
答案 0 :(得分:7)
要获得if
的相反效果,您可以像这样使用unless
:
unless asd.match('qwe')
puts 'it doesnt match'
else
puts 'it matches'
end
或者您可以使用if
,但在表达式的开头使用“bang”(感叹号),您希望“反转”该表达式的布尔值。
if !asd.match('qwe')
puts 'it doesnt match'
else
puts 'it matches'
end
在ruby中阅读conditional statements以了解更多内容。
答案 1 :(得分:3)
result = asd.match('qwe') ? "it matches" : "it doesn't match"
puts result
匹配
result = !asd.match('qwe') ? "it matches" : "it doesn't match"
puts result
它不匹配
三元运算符会使您的代码变得简单,也可以尝试...
答案 2 :(得分:1)
使用运营商'!'颠倒声明的逻辑。 只需将第一行更改为
即可!(asd.does_not_match('qwe')) do
*我喜欢在整个陈述中加上括号,因为看到你在否定的东西更清楚