Несколько параметров имени со значениями по умолчанию в Ruby 2.5 - PullRequest
1 голос
/ 01 марта 2020

Я пытаюсь создать метод, в котором мне нужно передать несколько параметров имени со значениями по умолчанию, но я получаю syntax error, unexpected keyword_next ошибку. Как я могу исправить это?

Например, метод

def action(prev = nil, next = nil)
  if prev.present?
    # do something
  elsif next.present?
    # do something
  else
    # do something else
  end
end

Как мне заставить работать приведенный выше код?

1 Ответ

2 голосов
/ 29 марта 2020

next - зарезервированное слово в Ruby, поскольку оно используется для пропуска одной итерации в перечислимых значениях. Например, в следующем коде:

my_array = [1, 2, 3, 4]
my_array.each do |number|
  next if number == 2
  puts number
end

, который будет выводить:

1
3
4

Это означает, что вы не можете использовать его в качестве имени переменной / параметра. Чтобы исправить ваш код, вам просто нужно переименовать переменную. Например:

def action(prev = nil, following = nil)
  if prev.present?
    # do something
  elsif following.present?
    # do something
  else
    # do something else
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...