2011-10-09 38 views

回答

2

缓存的方法,语法像

 method(a => b , c => d) 

是一个简写(语法糖)为

 method({ a => b , c => d}) 
2

在ruby中,如果一个方法的唯一参数是一个散列,则假定花括号。

编辑把它清除掉:cache()是一种方法,它接受一个哈希作为参数,大概是这个样子:

def cache(*args) 
    # ... 
end 
+0

那么,因为这不会使s ense。大括号将封装散列的键和值。在这个例子中,你只有价值的大括号。 – bricker

+1

这不仅适用于散列是_only_参数的情况。如果_last_参数是散列,则可以离开大括号。至少在Rails中,签名也会更像'def cache(opts = {})'这一行。 –