Я вижу много людей, использующих ключевые аргументы в своем коде Ruby. Я также вижу много людей, использующих хэши параметров. Когда я должен использовать ключевые аргументы и когда я должен использовать хеши опций? Это действительно смущает меня. Из того, что я видел, аргументы ключевых слов во многих случаях намного лучше, чем хэши параметров. Например:
class Foo
def initialize(kwarg1: nil, kwarg2: nil)
@var1 = kwarg1 if kwarg1
@var2 = kwarg2 if kwarg2
end
end
выглядит намного лучше и понятнее, чем
class Foo
def initialize(options = {})
@var1 = options[:var1] if options[:var1]
@var2 = options[:var2] if options[:var2]
end
end