使用Ruby符号
我第一次尝试学习
Ruby是两年前,现在我又开始了.我停止的原因是因为我不明白Symbol类.而现在我又在同一点,完全失去了什么时候和为什么你使用符号.我已经阅读了Stackoverflow中的其他帖子以及Google Googled的几个解释.但我还不明白.
首先,我认为符号只是创建某种“命名常量”的一种方法,而不用像Java那样进行相同的过程. :all 而不是使用任意值做一个常量public static final String ALL = 8; 然而,当您在例如使用它时并不太有意义. attr_accessor:first_name等 解决方法
简而言之,符号是轻量级的字符串,但它们也是不可变的,非垃圾回收的.
您不应该将它们用作数据处理任务中的不可变字符串(请记住,创建符号后,不能被破坏).你通常使用符号来命名事物. # typical use cases # access hash value user = User.find(params[:id]) # name something attr_accessor :first_name # set hash value in opts parameter db.collection.update(query,update,multi: true,upsert: true) 我们先来看一下params [:id]的例子.在一个适度的大型轨道应用程序中,可能会有数以百计的分散在代码库中.如果我们使用一个字符串params [“id”]来访问这个值,这意味着每次都会有新的字符串分配(之后需要收集该字符串).在符号的情况下,它实际上是相同的符号无处不在.更少的内存分配器,垃圾收集器甚至你的工作(:比“”快) 如果你有一个简单的单字字符串,经常出现在你的代码中,你不会做一些有趣的事情(插值,gsub,upcase等),那么可能是一个很好的候选人.
我不能想到一个我想将数据从用户/网页转换为符号的情况(除了解析命令行选项,也许).主要是因为后果(曾经创造过的符号永远存在). 此外,许多编辑器为符号提供不同的着色,以便在代码中突出显示它们.看看这个例子 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |