Raku - 调用匿名正则表达式的字符串

dmc*_*c7z 4 raku

为什么第一个表达式可以解释而第二个表达式不能解释?
\n我理解它们是相同的,即调用匿名正则表达式的字符串。

\n
("foo").first: /foo/ andthen say "$_ bar";\n> foo bar\n
Run Code Online (Sandbox Code Playgroud)\n
"foo": /foo/ andthen say "$_ bar";\n> Confused\n> at /home/dmc7z/raku/foo.raku:2\n> ------> "foo":\xe2\x8f\x8f /foo/ andthen say "$_ bar";\n>     expecting any of:\n>         colon pair\n
Run Code Online (Sandbox Code Playgroud)\n

Bra*_*ert 6

这是一个方法调用:

 ("foo").first: /foo/
Run Code Online (Sandbox Code Playgroud)

这就像你写的一样:

("foo").first( /foo/ )
Run Code Online (Sandbox Code Playgroud)

要不就:

"foo".first( /foo/ )
Run Code Online (Sandbox Code Playgroud)

(请注意,我:在上述三个英语描述的末尾使用了它。这就是用来表示:后面的任何内容都是同一表达式的一部分的想法的来源。)

在这种情况下,使用first. 相反,我会使用~~.

"foo" ~~ /foo/ andthen say "$_ bar";
Run Code Online (Sandbox Code Playgroud)

first用于查找列表中与某些描述匹配的第一项。如果您在单个项目上使用它,它将返回该项目,或者返回Nil。它始终返回一个值,并且Nil在这种情况下是最明智的单个未定义值。


它说需要冒号对的原因是,这是:在该位置唯一有效的用法。老实说,我一半期望它会抱怨这是一个无效标签。

  • 谢谢。我需要您澄清这只是一个方法调用。 (2认同)