加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Perl 6设置操作如何比较元素?

发布时间:2020-12-15 22:04:44 所属栏目:大数据 来源:网络整理
导读:运行在莫尔(2016.10) 考虑构建一个集合并测试成员资格的代码: my $num_set = set( 1 2 3 4 );say "set: ",$num_set.perl;say "4 is in set: ",4 ∈ $num_set;say "IntStr 4 is in set: ",IntStr.new(4,"Four") ∈ $num_set;say "IntStr(4,...) is 4: ","Fou
运行在莫尔(2016.10)

考虑构建一个集合并测试成员资格的代码:

my $num_set = set( < 1 2 3 4 > );
say "set: ",$num_set.perl;
say "4 is in set: ",4 ∈ $num_set;
say "IntStr 4 is in set: ",IntStr.new(4,"Four") ∈ $num_set;
say "IntStr(4,...) is 4: ","Four") == 4;
say "5 is in set: ",5 ∈ $num_set;

一个直4不在集合,但IntStr版本是:

set: set(IntStr.new(4,"4"),IntStr.new(1,"1"),IntStr.new(2,"2"),IntStr.new(3,"3"))
4 is in set: False
IntStr 4 is in set: True
IntStr(4,...) is 4: True
5 is in set: False

我认为大多数人都不会期待这一点,但是∈docs并没有说明这个方法是如何工作的.如果我不使用报价单(即设置(1,2,3,4)),我没有这个问题.

解决方法

你中间错了转.重要的部分是nqp :: existskey被调用:k.WHICH.这种方法有价值类型,即不可变类型,其中值 – 而不是身份 – 定义如果两件事情应该是相同的事情(即使创建两次).它返回一个对象的值的字符串表示,该对象的值等于两个应该相等的东西.对于< 1 .WHICH你得到IntStr | 1和1.WHICH你只需要Int | 1.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读