大家怎么理解ruby中的符号变量
1个回答
展开全部
pry(main)> :key.object_id
=> 100808
pry(main)> :key.object_id
=> 100808
pry(main)> 'key'.object_id
=> 34255720
pry(main)> 'key'.object_id
=> 43597460
从上面可以看出,两次的 :key 其实是同一个对象,而 'key' 则是两个不同的对象。
所以 Symbol 相较 String 而言,其实就是节省了内存。
这也是 ruby 建议我们在 hash 的 key 中使用 Symbol 而不是 String 的原因。
=> 100808
pry(main)> :key.object_id
=> 100808
pry(main)> 'key'.object_id
=> 34255720
pry(main)> 'key'.object_id
=> 43597460
从上面可以看出,两次的 :key 其实是同一个对象,而 'key' 则是两个不同的对象。
所以 Symbol 相较 String 而言,其实就是节省了内存。
这也是 ruby 建议我们在 hash 的 key 中使用 Symbol 而不是 String 的原因。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询