У меня есть кусок кода образца:Как работает аргумент ключевого слова?
def m(args = nil, **kwargv)
puts kwargv
a = args or {}
puts a
kwargv['a'] = a
puts kwargv
end
Когда я призываю:
m(args = {'c':'d'})
m(args: {'c': 'd'})
m(args = {xxx}, {})
только в последней будет args
быть истолковано как args
; в первом и втором, dict будет использоваться как kwargv
.
Есть ли более элегантный способ указать args
как dict?
__Don't__ использовать 'or' (и его друзей' и '/' not') для условных обозначений. Здесь вы можете подумать, что он позволяет указать значение по умолчанию для пустого хэша, но это не так. –
Что такое dict? ................ – sawa