smartmatch运算符未按预期工作

为什么 smartmatch 运营商~~说这0不在(0, 5..100)

print ((0 ~~ (0, 5..100)) ? "Y" : "N");

N

在这里测试一下。

回答

使右侧成为数组引用

print ((0 ~~ [0, 5..100]) ? "Y" : "N");

或命名数组

@a = (0, 5..100);
print ((0 ~~ @a) ? "Y" : "N");

或者……不管这叫什么(匿名命名数组?)

print ((0 ~~ @{[0,5..100]}) ? "Y" : "N");

(0,5..100) 是一个列表但它不是一个数组,这是区分很重要的地方之一。


以上是smartmatch运算符未按预期工作的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>