gpt4 book ai didi

raku - 为什么 perl6 multi 默认为 sub?

转载 作者:行者123 更新时间:2023-12-04 05:45:28 29 4
gpt4 key购买 nike

引用这个问题/答案,perl6 multi 默认为 sub。

No such method <name> for invocant of type <class>

我本来希望它默认为方法。请问有人可以解释这样做的理由吗?

最佳答案

一个多声明符( multiprotoonly )后面没有其他类型的声明符,而是一个例程名称,它始终是 sub 的缩写。声明者。

Perl 6 热衷于词法作用域,尤其热衷于使代码易于重构。

以最短的方式声明 multi采用范围最窄的选项 - 词法范围 - 鼓励尽可能缩小范围。

制作 multi如果没有声明符,则具有一致的含义有助于重构,允许人们自信地将代码移动到所需的最窄范围。仅仅因为它被移到了 class 就突然改变了它的含义。将是重构的挫败感。

最后,值得注意的是sub在 Perl 6 中可以看作是填补了与 private static 相同的利基市场。在各种其他语言中,多重调度通常很有用,因此多重调度 sub因此可以在 class 中使用。 body 。

有时特殊情况是合理的。与自然语言一样,Perl 6 会在真正值得的时候制作它们,但默认情况下是避免使用它们。 multi 的参数表示 class 中的其他内容(大概是 role )对于特殊情况来说还不够强大。

关于raku - 为什么 perl6 multi 默认为 sub?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51343245/

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