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

Raku中$¢变量的作用是什么?是否具备特殊含义?

Raku中$¢变量的特殊含义

根据Raku官方文档说明,仅存在3个核心特殊词法变量:$_、$/、$!。但查看MY::伪stash时发现还存在$¢变量,且未声明该变量时直接赋值也不会触发编译器报错,执行相关代码后能正常输出值。使用版本为rakudo v2023.12,实现v6.d规范,请问$¢是否具备特殊含义?

测试代码

say MY::.hash;
# ==> PseudoStash.new((!UNIT_MARKER => (!UNIT_MARKER), $! => Nil, $/ => Nil, $=finish => (Mu), $=pod => [], $?PACKAGE => (GLOBAL), $_ => (Any), $¢ => Nil, &foo => &foo, ::?PACKAGE => (GLOBAL), EXPORT => (EXPORT), GLOBALish => (GLOBAL)))

sub foo {say MY::.hash}
foo();
# ==> PseudoStash.new(($! => Nil, $/ => Nil, $_ => (Any), $¢ => Nil))

$¢=5;
# 未声明$¢但编译器未报错

say $¢ 
# ==> 5

解答

$¢是Raku的预定义特殊词法变量,它是$/的别名,核心作用是存储最近一次正则表达式匹配的结果。

虽然最初可能误以为它未被官方文档收录,但实际上文档中已有相关说明。作为预定义特殊变量,它会被自动注入到所有词法作用域中(因此在MY::伪stash中能看到它的存在),无需手动声明即可直接使用,这也是直接赋值$¢=5不会触发编译错误的原因。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 06:33:13