我目前正在学习Ruby,我似乎无法总结if /start/../end
做什么......帮助?
while gets
print if /start/../end/
end
答案 0 :(得分:5)
既然你提到你是Ruby的新手,那么首先要注意你在处理示例中的正则表达式(正则表达式) - 在两个正斜杠之间划分的任何东西:
/start/ # a regular expression literal
正则表达式是匹配较大字符串中某些字母组合的强大方法。
"To start means to begin." =~ /start/ #=> true, because 'start' is in the string.
双点表示法是触发器操作符,可能是从Perl继承的有争议的构造,通常不建议使用,因为它可能导致混淆。
表示以下内容: 在左手操作数为真之前,它将统一评估为false。在这一点上,它将集体评估为真。然而,只有在右手操作数评估为真之前它才会保持为真 - 此时它将再次集体评估为假。
因此使用上面的例子:
while gets
print if /start/../end/
end
答案 1 :(得分:3)
它被称为触发器操作符。您可以在“Ruby flip-flop operator”阅读更多内容。