You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何对Raku中的运算符进行内省操作?

Raku中运算符的内省方法

你遇到的问题是运算符的引用语法错误——Raku里运算符确实是Sub类型,但直接用&+会被语法解析器误解:&是Callable类型的标记,后面的+会被当成对未初始化的Callable进行数值运算,因此抛出错误。

正确的运算符引用方式有两种:

方式一:用引号包裹运算符名

把运算符放在单引号或双引号中,再配合&符号引用:

&"+".WHAT       # 输出 (Sub)
&'+' .^mro      # 输出 ((Sub) (Routine) (Block) (Code) (Any) (Mu))

方式二:明确指定运算符的类型

Raku的运算符分为不同类别(中缀、前缀、后缀等),可以用infix::<>、prefix::<>这样的语法精确引用:

# 内省中缀加法运算符
&infix:<+>.WHAT
&infix:<+>.^mro

# 如果是前缀正号运算符,要写成:
&prefix:<+>.WHAT

这样就能像内省say例程一样,正常查看运算符的类型和方法解析链了。

内容的提问来源于stack exchange,提问作者anquegi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 08:42:28