x=["key" => "value"]
知道数组和散列之间的区别,我认为这是非法的,但Ruby中的结果是
[{"key" => "value"}]
为什么是这样?有了这种语法,为什么你不能这样做
x=("key" => "value")
为什么数组是隐式创建哈希的特例?
def f(x) puts "OK: #{x.inspect}" end f("foo" => "bar") => OK: {"foo"=>"bar"}
所以在某些情况下,可以隐式构建哈希(通过检测=>运算符?).我想答案就是这是Matz最不令人惊讶的行为.