cod*_*ons 5 immutability rakudo variable-binding raku
[编辑:关闭支持/sf/ask/4846205451/,这是我在更清楚地理解我在这个问题中想问的内容后制定的。 ]
\n我的理解是禁止无符号变量重新绑定有目的或好处吗?是一个没有印记的符号永远不可能无法反弹。引用那个答案:
\n\n\n是的,[当前的行为]肯定是设计使然,而且 - 就像 [Raku] 设计中的大多数东西一样 - 这样做的原因不止一个。\xe2\x80\xa6 决定采用无符号符号形式“静态单一赋值”语法\xe2\x80\xa6。造成这种情况的原因有多种,包括\xe2\x80\xa6 通过让读者知道符号永远不会反弹到新值的形式来增强程序可读性
\n
(强调已添加。)
\n鉴于此,我非常惊讶地看到下面的代码:
\nmy Int \\b = 8;\nsay "{b*b}"; # OUTPUT: \xc2\xab64\xc2\xbb\n\nb := 4;\nsay "{b*b}"; # OUTPUT: \xc2\xab16\xc2\xbb\nRun Code Online (Sandbox Code Playgroud)\n也就是说,当b声明时没有印记但具有类型Int约束时,它可以反弹 \xe2\x80\x93 ,这与缺乏该类型约束时不同。这种行为是错误还是正确的?
如果是,它如何符合上面链接的答案中提到的设计考虑因素?
\n(另请参阅GitHub 上的Raku/doc 问题线程,了解此行为及其是否是有意为之的讨论。)
\n| 归档时间: |
|
| 查看次数: |
110 次 |
| 最近记录: |