Mam metoda zdefiniowana tak:Czy można wywołać tę metodę Ruby bez ** {} na końcu?
def woot(a = nil, b: nil)
...
end
Jaki jest najmniej brzydki sposób przekazać Hash
instancji a
gdy b
został pominięty?
Próbowałem
woot(x: 1)
woot({x: 1})
h = {x: 1}
woot(h)
ale wszystkie one podnieść
ArgumentError: unknown keyword: x
Jedynym sposobem, aby nawiązać połączenie, że zorientowali się, jest
woot({x: 1}, **{})
Czy jest ładniejszy sposób?
http://stackoverflow.com/questions/27821422/how-can-i-collapse-double-splat-arguments-into-nothing :: ** TLDNR; ** to prawdopodobnie błąd w aktualnym implingu ruby. – mudasobwa