gpt4 book ai didi

ruby - 为什么没有更多的项目使用 Ruby Symbols 而不是 Strings?

转载 作者:数据小太阳 更新时间:2023-10-29 06:44:26 26 4
gpt4 key购买 nike

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

比如:Rails的params Hash在Controller中有一堆key作为符号:

params[:id] or
params[:title]...

但是 Sinatra 和 Jekyll 等其他规模适中的项目不会这样做:

杰基尔:

post.data["title"] or
post.data["tags"]...

西纳特拉:

params["id"] or
params["title"]...

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

最佳答案

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

关于ruby - 为什么没有更多的项目使用 Ruby Symbols 而不是 Strings?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2415780/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com