perl6数组赋值:指针还是副本?

时间:2016-11-29 23:01:27

标签: arrays pointers clone variable-assignment perl6

在perl6中,我想将一个数组分配给另一个数组,并使得结果数组成为不同的实体,但似乎既没有直接赋值也没有克隆可以做我想要的。有没有办法用一个表达式复制数组而不是编写循环程序?

>>> res
[-45, 64, -41, -51, 95, 96, -74, -74, 56, 41, 41, 64, -62, 75]

非常感谢!!!

lisprog

1 个答案:

答案 0 :(得分:5)

你不幸与@b比较,这可能帮助你解决了问题:)

==是数字比较,因此当您要求将列表作为数字进行比较时,它会选择元素数作为表示。 Perl 5或6中的运算符强制涉及的类型。如果要测试数组的元素是否相同,请尝试eqv运算符。

比较数组的长度,以下是正确的:

@a == @c == @x == 5

尝试:

my @a = <a b c d e>;
my @b = <1 2 3 4 5>;
@a eqv @b;

您可能想要查看这些运算符周围的一些文档。智能匹配~~运算符可能更符合您对==的期望。

https://docs.perl6.org/routine/$EQUALS_SIGN$EQUALS_SIGN https://docs.perl6.org/routine/$TILDE$TILDE