为什么没有更多项目使用Ruby符号而不是字符串?

Lan*_*ard 11 ruby symbols

当我第一次开始阅读和学习ruby时,我读到了关于字符串上ruby符号的强大功能:符号只存储在内存中一次,而字符串每个字符串存储在内存中一次,即使它们是相同的.

例如:paramsController中的Rails'Hash有一堆键作为符号:

params[:id] or
params[:title]...
Run Code Online (Sandbox Code Playgroud)

但是Sinatra和Jekyll等其他大小合适的项目并不这样做:

杰奇:

post.data["title"] or
post.data["tags"]...
Run Code Online (Sandbox Code Playgroud)

西纳特拉:

params["id"] or
params["title"]...
Run Code Online (Sandbox Code Playgroud)

这使得阅读新代码变得有点棘手,并且难以传输代码并弄清楚为什么使用符号不起作用.还有更多这方面的例子,这有点令人困惑.我们是否应该在这种情况下使用符号?符号有什么优点,我们应该在这里使用它们吗?

cly*_*yfe 4

在 ruby​​ 中,创建AST后,每个符号都表示为唯一的整数。使用符号作为哈希键可以使计算速度更快,因为主要操作是比较。

  • 哈哈,更好了。但如果有更优化的东西,我认为我们应该使用它,特别是如果它写起来更有趣的话。 (5认同)