Это функция, представленная в Ruby 2.0, называемая «аргументами ключевых слов», которая, если вы использовали Python или Objective-C, вероятно, намного более знакома. Стандартный список аргументов выглядит так:
def f(x) # Example: f(1)
def f(x,y) # Example: f(1,2)
Теперь, когда используются значения по умолчанию:
def f(x=1, y=2) # Example: f(0) or f(0, 3)
Обратите внимание, что вы не можете вызвать f(,3)
, если хотите, чтобы x
использовал его значение по умолчанию.
Версия Ruby 2.0 ключевое слово-аргумент исправляет эту проблему:
def f(x:) # Example: f(x: 1)
def f(x:1, y:2) # Example: f(y: 3)
x:
без указания значения означает, что это именованный аргумент без значения по умолчанию, поэтому требуется . Вызов метода без него приводит к ошибке.