我目前正在学习 Ruby,但我似乎无法理解if /start/../end
... 帮助?
while gets
print if /start/../end/
end
由于您提到您是 Ruby 新手,因此首先值得注意的是,您正在处理示例中的正则表达式 (regex) - 任何在两个正斜杠之间分隔的内容:
/start/ # a regular expression literal
正则表达式是匹配较大字符串中特定字母组合的强大方法。
"To start means to begin." =~ /start/ #=> true, because 'start' is in the string.
双点表示法是触发器运算符,这是一个有争议的结构,可能继承自 Perl,通常不推荐使用,因为它会导致混淆。
这意味着以下内容:它将集体评估为假,直到左侧操作数为真。在这一点上,它将集体评估为真。然而,它只会在右手操作数评估为真之前保持为真 - 此时它将再次集体评估为假。
因此,使用上面的示例:
while gets
print if /start/../end/
end
它被称为触发器运算符。您可以在“ Ruby 触发器运算符”中阅读更多内容。