mak*_*oid 55 ruby syntax hash ruby-1.9
在ruby 1.9中有没有办法用新语法定义这个哈希?
irb> { a: 2 }
=> {:a=>2}
irb> { a-b: 2 }
SyntaxError: (irb):5: syntax error, unexpected tLABEL
{ a-b: 2 }
^
Run Code Online (Sandbox Code Playgroud)
与旧的,它的工作:
irb> { :"a-b" => 2 }
=> {:"a-b"=>2}
Run Code Online (Sandbox Code Playgroud)
Way*_*rad 64
有一些合法的符号不能与新语法一起使用.我找不到引用,但似乎/^[a-zA-Z_][a-zA-Z_0-9]*[!?]?$/允许使用新语法进行符号名称匹配.最后一个字符可能是特殊字符"!" 要么 "?".
对于任何不符合这些限制的符号,您必须使用Ruby 1.8语法, :'my-symbol-name'
小智 25
要使用带有新语法的破折号:
<%= link_to "Link", link_path, {data: {something: 'value1', somethingelse: 'value2'}} %>
Run Code Online (Sandbox Code Playgroud)
这将产生:
<a href="/link" data-something='value1' data-somethingelse='value2'>Link</a>
Run Code Online (Sandbox Code Playgroud)
这可能不完全是您的特定用例,但我在尝试自己找到答案时发现了这篇文章,所以我想我会分享我的发现.
您还可以使用下一个语法
{a: 1, b: 2, 'c-c': 3, d: 4}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17490 次 |
| 最近记录: |