Raku中如何不通过修改试错检测scalar是否为immutable?
Raku 无需修改检测标量是否不可变的方法
在Raku中,Scalar既可能是不可变的只读容器,也可能是可修改的普通变量,示例如下:
my $a := 6; # 绑定常量值,属于不可变对象 my $b = 6; # 赋值给可写容器,属于可变变量
不需要尝试修改值验证是否报错,直接调用isrw方法即可完成检测,具体用法:
say $a.VAR.isrw; # 输出 False,代表不可变 say $b.VAR.isrw; # 输出 True,代表可变
原理说明
- 调用
.VAR方法可以获取到Scalar底层对应的实际容器对象 isrw是Scalar容器的原生属性方法,返回布尔值直接标识该容器是否支持读写操作,判断逻辑无额外性能开销。
内容的提问来源于stack exchange,提问作者Joseph Brenner
相关产品推荐
相关产品推荐

