【问题标题】:Difference between :target => '_blank' and target: = "_blank":target => '_blank' 和 target: = "_blank" 之间的区别
【发布时间】:2012-04-24 05:23:33
【问题描述】:

我最近问了一个关于在新页面中打开链接的问题 (heres the link)。我发现有两个答案。

:target => '_blank' 
target: "_blank"

我希望有人能解释单引号和双引号之间的区别,以及为什么上述两种方法都有效。我知道第二个选项只能在更新版本的 rails 上实现(我使用的是 3.2.2)。

【问题讨论】:

  • 你可能是对的@muistooshort。感谢您指出另一篇文章。
  • 不用担心,这似乎有点多,而且重复项很难找到,搜索“=>”或“:”真的不是很有效率:)
  • @glennm symbolhound 使您能够搜索语法。
  • 太棒了。谢谢@AndrewGrimm,正是我所需要的。

标签: ruby


【解决方案1】:

基本上,这是 Ruby 的哈希,(更多信息请参考“@mu is too shot”的资源)

# always works (works both in Ruby 1.8 and 1.9)
:target => '_blank'    

# works in 1.9 only 
target: "_blank"

他们都可以分配哈希的元素。

但是下面的代码不正确。

# this is incorrect
target: = "_blank"

【讨论】:

  • 没有“经典”和“1.9”风格之类的东西,只有始终有效的风格和仅在有限情况下有效的新替代风格:stackoverflow.com/a/10004344/479863
  • 但是=> 仍然不是 1.8 的东西,它在 1.9 中是完全有效的并且通常是必要的。是的,我正在反对闪亮的新(和破碎的)替代哈希文字语法:)
  • @SiweiShen,感谢您在第二个示例中发现我的错误。我已经修复了错误,所以它不会成为焦点。
  • @muistooshort,我刚刚在您提供的链接上阅读了您的 cmets。我有兴趣了解更多,所以我会阅读它。但我喜欢你的cmets。谢谢!
【解决方案2】:
1.9.2-p290 :009 > { :name => "soundar" } == { name: "soundar" }
=> true

【讨论】:

    猜你喜欢
    • 2016-06-12
    • 2011-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多