Ruby 红宝石串匹配

Ruby 红宝石串匹配,ruby,string,match,Ruby,String,Match,你是怎么做的 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 “不匹配”的语法是什么?使用运算符“!”颠倒语句的逻辑。 把第一行改成 !(asd.does_not_match('qwe')) do *我喜欢在整

你是怎么做的

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

“不匹配”的语法是什么?

使用运算符“!”颠倒语句的逻辑。 把第一行改成

!(asd.does_not_match('qwe')) do

*我喜欢在整个语句周围加上括号,因为这样可以更清楚地看到你在否定什么,从而得到相反的效果,如果你可以使用,除非像这样:

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,了解更多信息

result = asd.match('qwe') ? "it matches" :  "it doesn't match"

puts result
相配

result = !asd.match('qwe') ? "it matches" :  "it doesn't match"

puts result
不匹配


三元运算符将使您的代码变得简单,也可以尝试一下…

为什么不直接翻转块的内容呢?放一个否定爆炸!asd.匹配'qwe'你见过吗?这有用吗?在没有if的情况下,你是如何做else的?首先你肯定需要使用if语句使其正常工作->在asd之前添加if。匹配'qwe'然后删除do。谢谢,这正是我需要的!我了解条件语句,只是不知道如何用match方法实现它:Doh,三元运算符在ruby中支持多行命令吗?我来自C/C++,三元基本上只执行一行命令。三元运算符的功能不变,和C/C++一样。