某些语言有只能被赋值一次的变量, 这种设计有什么特别的好处吗?

发布于 2022-09-01 05:40:14 字数 56 浏览 14 评论 0

像haskell, nim的let之类的, 除了能体现一些奇怪的思想, 有什么特别的优越性吗?

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

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

发布评论

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

评论(2

葬シ愛 2022-09-08 05:40:14

你说的应该是immutable variables吧,nim不熟悉,但scala也是有这样的定义的,比如Java里用final声明的类型也应该属于这个范畴,这样说是不是就看起来不那么奇特了? 最大的一个好处就是可以直接放在常量区,比如Java中String的intern()之后做map的key,效率是要更高些的。 也有助于检查出一些编译错误。
此外也有如Erlang这样的变量绑定的处理,只允许绑定一次:如:

Eshell V6.1  (abort with ^G)
1> A = 10.
10
2> A.
10
3> A = 12.
** exception error: no match of right hand side value 12

主要见于一些FP语言,在FP里,函数一旦变成一等公民之后,会有不一样的设计....

焚却相思 2022-09-08 05:40:14

对于 nim 来说,const 的值是必须编译期就可以得到的,而 let 的值可以在运行时得到,比如用户输入的信息,或根据操作系统动态获取的路径等等,但在设计上需要强调一旦获得了就不能修改。

参考:The Let Statement

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