gpt4 book ai didi

raku - 在接收器上下文中无用地使用 LOOP_BLOCK_1 符号

转载 作者:行者123 更新时间:2023-12-05 00:47:12 24 4
gpt4 key购买 nike

像这样的片段

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 链接到另一个错误,他们在其中展示了他们的解决方法。 (它不是添加 do 而是删除 FIRST 移相器并将关联的语句放在它之前的循环之外。)

如果您按照 bbkr 原始错误中的其他链接进行操作,您将遇到另一个错误,说明需要清除一般的“不需要的”机制。我想可用 round tuits专注于更大的鱼,例如这种整体机制。

希望你能看到这只是一个奇怪的警告信息和更大的计划中的小麻烦。如果您在循环结构中使用 FIRST 移相器,它似乎会出现。它有一个非常明显的工作,你可能知道并且 bbkr 展示了。

What is this warning about?



许多语言允许您混合过程范式和功能范式。程序代码是为了它的副作用而运行的。其结果的功能代码。一些构造可以两者兼而有之。

但是,如果您使用的构造通常是为了使用其结果而使用,并且编译器知道这一点,但它也知道它已在其值将被忽略的上下文中使用,该怎么办?

Perls 称其为“在接收器上下文中无用地使用 ...”,并且通常会警告编码人员对此进行警告。 (“sink”是其他语言文化中通常称为“void”上下文的替代/传统术语。)

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

And what about this is useless?



没有。

相关的编译器警告机制已经变得困惑。

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

但是它不可能说“LOOP_BLOCK_1 符号”之类的东西。那是内部的笨蛋。

这是一个警告消息错误。

关于raku - 在接收器上下文中无用地使用 LOOP_BLOCK_1 符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52227631/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com