ruby – 什么是触发器操作符?

前端之家收集整理的这篇文章主要介绍了ruby – 什么是触发器操作符?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
最近在Perl和Ruby中听到过有关正则表达式的触发器的阅读,但是我无法找到它们的工作原理,以及常见的用例.

任何人都可以用语言无关的方式解释这个问题吗?

现在我明白了它是什么,它是如何工作的,我会把这个问题简单地说一下:什么是触发器操作符?

解决方法

当左操作数为真时,Perl中的触发器操作符将计算为真,并保持评估为true,直到正确的操作数为真.左右操作数可以是任何形式的表达式,但大多数情况下,它与正则表达式一起使用.

使用正则表达式,它可用于查找两个标记之间的所有行.这是一个简单的例子,显示它是如何工作的:

use Modern::Perl;

while (<DATA>)
{
    if (/start/ .. /end/)
    {
        say "flip flop true: $_";
    }
    else
    {
        say "flip flop false: $_";
    }
}

__DATA__
foo
bar
start
inside
blah
this is the end
baz

触发器操作符对于从开始到结束的所有行都将是真实的.

运算符的两点版本允许在同一行上匹配第一个和第二个正则表达式.所以,如果你的数据看起来像这样,上面的程序将只是对于线开始blah结束:

foo
bar
start blah end
inside
blah
this is the end
baz

如果您不希望第一个和第二个正则表达式匹配相同的行,则可以使用三点版本:if(/ start / … / end /).

请注意,应注意不要将触发器运算符与范围运算符混淆.在列表上下文中,..有一个完全不同的功能:它返回一个顺序值的列表.例如

my @integers = 1 .. 1000; #makes an array of integers from 1 to 1000.

我不熟悉Ruby,但Lee Jarvis’s link表示它的工作原理类似.

猜你在找的Ruby相关文章