ruby – 为什么在转换为字符串然后转换为符号时,空数组和哈希值的处理方式不同?

ruby – 为什么在转换为字符串然后转换为符号时,空数组和哈希值的处理方式不同?,第1张

概述在 Ruby中,为什么这两个 *** 作对于空数组和哈希值是不同的? 空数组: [].to_s.to_sym => :[] 空哈希: {}.to_s.to_sym => :"{}" 它们并没有真正的不同,只是它们的显示方式不同. {字符不能是符号的开头,因此它用引号括起来.如果你想创建一个带有 – 的符号,你就可以做同样的事情,否则它会被解释为减法运算符.实际上,您可以进入IRB并测试引号不会真正影响符号 在 Ruby中,为什么这两个 *** 作对于空数组和哈希值是不同的?

空数组:

[].to_s.to_sym => :[]

空哈希:

{}.to_s.to_sym => :"{}"
解决方法 它们并没有真正的不同,只是它们的显示方式不同. {字符不能是符号的开头,因此它用引号括起来.如果你想创建一个带有 – 的符号,你就可以做同样的事情,否则它会被解释为减法运算符.实际上,您可以进入IRB并测试引号不会真正影响符号.

:[] == :"[]" #=> true

所以,基本上,一个人能够使用更短的形式,另一个人必须更加冗长,以便解析器能够理解它.但两者的含义或形式没有本质区别.

总结

以上是内存溢出为你收集整理的ruby – 为什么在转换为字符串然后转换为符号时,空数组和哈希值的处理方式不同?全部内容,希望文章能够帮你解决ruby – 为什么在转换为字符串然后转换为符号时,空数组和哈希值的处理方式不同?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1250230.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存