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

perl6 – 在sink上下文中无用的LOOP_BLOCK_1符号

发布时间:2020-12-16 06:21:42 所属栏目:大数据 来源:网络整理
导读:用一个代码片段 perl6 -e 'loop { FIRST say "foo"; last }' 我明白了 WARNINGS for -e:Useless use of LOOP_BLOCK_1 symbol in sink context (line 1)foo 我知道如何解决警告.我想知道警告的来源是什么.我找到了this open ticket,但它似乎没有得到任何关注.
用一个代码片段

perl6 -e 'loop { FIRST say "foo"; last }'

我明白了

WARNINGS for -e:
Useless use of LOOP_BLOCK_1 symbol in sink context (line 1)
foo

我知道如何解决警告.我想知道警告的来源是什么.我找到了this open ticket,但它似乎没有得到任何关注.

这个警告是关于什么的?

那怎么回事呢?

$perl6 --version
This is Rakudo version 2018.06 built on MoarVM version 2018.06
implementing Perl 6.c.

解决方法

这是一个错误,一个虚假的警告.

I know how to work around the warning.

这是主要的事情.

I’m wondering about what the source of the warning is.

这是编译器的一个虚假警告.

I found this open ticket,but it doesn’t seem to have received any attention.

我认为它受到了一些关注.

提交错误的bbkr与另一个显示其解决方法的错误相关联. (它不是添加,而是删除FIRST移相器并将关联的语句放在循环之外.)

如果你按照bbkr原始bug中的其他链接,你会得到另一个错误,解释一般的“不需要的”机制需要清理.我想可用round tuits专注于更大的鱼类,如这种整体机制.

希望你能看到它只是一个奇怪的警告信息,并在更大的方案中产生轻微的滋扰.如果在循环结构中使用FIRST相位器,似乎会出现.这是非常明显的工作,你可能知道和bbkr显示.

What is this warning about?

许多语言允许您混合使用过程和功能范例.程序代码运行其副作用.结果的功能代码.一些构造可以做到这两点.

但是,如果你使用通常与其结果的意图一起使用的构造,并且编译器知道这一点,但它也知道它已被用于其值将被忽略的上下文中,该怎么办?

Perls将此称为“在汇集环境中无用的使用……”并且通常会警告编码人员. (“sink”是其他语言文化中通常称为“无效”语境的替代/传统术语.)

此错误消息是这些警告之一,尽管是一个虚假的警告.

And what about this is useless?

没有.

相关的编译器警告机制已经混淆了.

消息中“无用的使用…在接收器上下文中”部分是通用的,并且希望是不言自明的.

但是它不应该像“LOOP_BLOCK_1符号”这样说.这是内部的笨蛋.

这是一个警告信息错误.

(编辑:李大同)

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

    推荐文章
      热点阅读