def my_method(a, *b, **c) return a, b, c end my_method(1) # => [1, [], {}] my_method(1, 2, 3, 4) # => [1, [2, 3, 4], {}] my_method(1, 2, 3, 4, a: 1, b: 2) # => [1, [2, 3, 4], {:a=>1, :b=>2}]