Ruby中隐式哈希创建不一致?

好的,所以我将自己DSL中的一些东西与 Ruby进行了比较.他们都支持的一个结构就是这个
x=["key" => "value"]

知道数组和散列之间的区别,我认为这是非法的,但Ruby中的结果是

[{"key" => "value"}]

为什么是这样?有了这种语法,为什么你不能这样做

x=("key" => "value")

为什么数组是隐式创建哈希的特例?

解决方法

另一个特例是在函数调用中,考虑:
def f(x)
  puts "OK: #{x.inspect}"
end
f("foo" => "bar")
=> OK: {"foo"=>"bar"}

所以在某些情况下,可以隐式构建哈希(通过检测=>运算符?).我想答案就是这是Matz最不令人惊讶的行为.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...