某些语言有只能被赋值一次的变量, 这种设计有什么特别的好处吗?
像haskell, nim的let之类的, 除了能体现一些奇怪的思想, 有什么特别的优越性吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
像haskell, nim的let之类的, 除了能体现一些奇怪的思想, 有什么特别的优越性吗?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
你说的应该是immutable variables吧,nim不熟悉,但scala也是有这样的定义的,比如Java里用final声明的类型也应该属于这个范畴,这样说是不是就看起来不那么奇特了? 最大的一个好处就是可以直接放在常量区,比如Java中String的intern()之后做map的key,效率是要更高些的。 也有助于检查出一些编译错误。
此外也有如Erlang这样的变量绑定的处理,只允许绑定一次:如:
主要见于一些FP语言,在FP里,函数一旦变成一等公民之后,会有不一样的设计....
对于 nim 来说,
const
的值是必须编译期就可以得到的,而let
的值可以在运行时得到,比如用户输入的信息,或根据操作系统动态获取的路径等等,但在设计上需要强调一旦获得了就不能修改。参考:The Let Statement