我们可以将符号文字视为“内部字符串”吗?
有人知道其他流行语言中是否有与 Ruby 中的符号文字类似的概念吗?我可以将其视为“内部字符串”吗?
Anyone knows if there is similar concept in other popular language compared to symbol literal in Ruby? Can I considered it just as an "Interned String"?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
是的,符号(有时在其他语言中称为原子)可以被视为内部字符串。
这里有大量关于 Ruby 符号的信息:问题 - 理解 Ruby 中的符号
而且,事后的想法,这个问题列出了几种语言中类似概念的许多示例:
Lisp 和 Erlang Atoms、Ruby 和 Scheme 符号。它们有多大用处?
Yes, symbols (sometimes referred to as atoms in other languages) can be considered interned strings.
There's a ton of information on Ruby symbols here: Question - Understanding Symbols In Ruby
And, an afterthought, this question lists many examples of similar concepts in a couple languages:
Lisp and Erlang Atoms, Ruby and Scheme Symbols. How useful are they?
当然,Ruby 中的符号来自 Smalltalk 中的符号,而 Smalltalk 又从 Lisp 获取它们。 Scala也有符号,Erlang的原子也类似。 Erlang 可能是从 Prolog 中得到它们的。
你可以把它看作各种各样的东西,但符号就是符号。它们不是不可变的字符串或内部字符串或其他什么......它们只是符号。
Sure, symbols in Ruby come from symbols in Smalltalk, which in turn gets them from Lisp. Scala also has symbols, and Erlang's atoms are similar. Erlang probably got them from Prolog.
You can consider it all sorts of things, but symbols are symbols. They aren't immutable strings or interned strings or whatever ... they are just symbols.