是“新”的吗?在 Erlang 官方标准的一部分中,我们应该使用它吗?

发布于 2024-08-22 04:33:30 字数 365 浏览 4 评论 0原文

我问这个问题是因为我注意到很多开源 Erlang 项目使用“new”将参数传递给 Erlang 模块,但我同时听说“new”不是官方语言的一部分,如果它可能不受支持包含错误。在我在自己的项目中使用它之前,我想澄清这个问题。

更新: 此后我在官方 Erlang 邮件列表上询问答案:

http://www.erlang.org/cgi-bin/ezmlm-cgi?4:mss:49535:201002:aicfhmngkhodmclhlnak

I ask this question as I have noticed that alot of OpenSource Erlang projects use "new" to pass parameters to Erlang modules, yet I hear at the same time that "new" is not part of the official language and may not be supported if it contains bugs. Before I use it in my own project I would like to clarify this issue.

Update:
I have since asked on the official Erlang mailing list for an answer:

http://www.erlang.org/cgi-bin/ezmlm-cgi?4:mss:49535:201002:aicfhmngkhodmclhlnak

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

划一舟意中人 2024-08-29 04:33:30

没有官方的 Erlang 标准,这使得它很难成为其中的一部分。

OTP/Erlang 团队似乎只在记录了功能后才将其视为官方功能。参数化模块(即功能的名称)未记录在案。 OTP/Erlang 团队决定做的事情尽可能接近我们现有的 Erlang 标准。

就我个人而言,我并不认为让 Erlang 看起来像它不是的东西有什么吸引力。它只会让语言有更多的规则需要了解和教授,并且只会导致那些期望一切都像他们过去的面向对象背景的人感到失望。增加复杂性并不强大。

在实现方面(许多人利用的抽象),参数化模块当前只是模块名称和参数化模块的“实例变量”的元组。所以它只是一个隐藏了一些参数的外部函数调用。

There is no official Erlang standard, that makes it difficult to be part of it.

The OTP/Erlang team seem to only consider features as official if they have documented them. Parameterized modules (that is the feature's name) is not documented. What the OTP/Erlang team decide to do is as close to an Erlang standard as we have.

Personally I don't see the attraction to make Erlang appear like something it is not. It only makes the language have more rules to know and teach, and it only leads to disappointment from those that expect everything to be like their past OO background. It is not powerful to add complexity.

Implementation-wise (an abstraction that many exploit) the parameterized module is currently just a tuple of the module name and the parameterized module's "instance variables". So it is just an external function call that hide a few of the parameters.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文