Tôi muốn có phương thức chấp nhận băm và đối số từ khóa tùy chọn. Tôi cố gắng xác định một phương pháp như thế này:Làm cách nào để ngăn chặn đối số vị trí được mở rộng thành các đối số từ khóa?
def foo_of_thing_plus_amount(thing, amount: 10)
thing[:foo] + amount
end
Khi tôi gọi phương pháp này với các đối số từ khóa, nó hoạt động như tôi mong đợi:
my_thing = {foo: 1, bar: 2}
foo_of_thing_plus_amount(my_thing, amount: 20) # => 21
Khi tôi bỏ qua đối số từ khóa, tuy nhiên, băm được ăn:
foo_of_thing_plus_amount(my_thing) # => ArgumentError: unknown keywords: foo, bar
Làm cách nào để ngăn điều này xảy ra? Có một thứ như là một anti-splat?
Cảm ơn. Ít nhất tôi biết một cách giải quyết bây giờ: sử dụng tham số từ khóa mỗi lần. Khá khó chịu. –