Wes*_*ter 1 ruby ruby-on-rails
这是代码行:
options[:selectors] = [[1, "Spain"], [2, "Italy"]]
v = "Monthly"
value = Hash[options[:selectors]][!!(v =~ /^[0-9]+$/) ? v.to_i : v]
Run Code Online (Sandbox Code Playgroud)
我不确定的主要部分是最后一行的这一部分:
[!!(v =~ /^[0-9]+$/) ? v.to_i : v]
Run Code Online (Sandbox Code Playgroud)
什么[!!意思,什么=~意思?最后,总体线是什么意思?
!!是一个成语,意思是"将此值更改为布尔值".第一个!进行类型转换,第二个!进行恢复语义,同时保持布尔值.
不过,这在红宝石中并不合适.我相信这是一个PHPism.
=~ 是一个正则表达式匹配.
最后,整个事情意味着"如果v是一个int字符串,则使v为整数类型并从散列中获取,否则使用该字符串作为键."
| 归档时间: |
|
| 查看次数: |
110 次 |
| 最近记录: |