perl6 – 在sink上下文中无用的LOOP_BLOCK_1符号
用一个代码片段
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. 解决方法
这是一个错误,一个虚假的警告.
这是主要的事情.
这是编译器的一个虚假警告.
我认为它受到了一些关注. 提交错误的bbkr与另一个显示其解决方法的错误相关联. (它不是添加,而是删除FIRST移相器并将关联的语句放在循环之外.) 如果你按照bbkr原始bug中的其他链接,你会得到另一个错误,解释一般的“不需要的”机制需要清理.我想可用round tuits专注于更大的鱼类,如这种整体机制. 希望你能看到它只是一个奇怪的警告信息,并在更大的方案中产生轻微的滋扰.如果在循环结构中使用FIRST相位器,似乎会出现.这是非常明显的工作,你可能知道和bbkr显示.
许多语言允许您混合使用过程和功能范例.程序代码运行其副作用.结果的功能代码.一些构造可以做到这两点. 但是,如果你使用通常与其结果的意图一起使用的构造,并且编译器知道这一点,但它也知道它已被用于其值将被忽略的上下文中,该怎么办? Perls将此称为“在汇集环境中无用的使用……”并且通常会警告编码人员. (“sink”是其他语言文化中通常称为“无效”语境的替代/传统术语.) 此错误消息是这些警告之一,尽管是一个虚假的警告.
没有. 相关的编译器警告机制已经混淆了. 消息中“无用的使用…在接收器上下文中”部分是通用的,并且希望是不言自明的. 但是它不应该像“LOOP_BLOCK_1符号”这样说.这是内部的笨蛋. 这是一个警告信息错误. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |