У меня есть следующий класс и хотите шаги, чтобы вернуть false
, когда он прибывает в step_two
:Возврат ложно вызова метода
class Something
def steps
step_one
step_two
step_three
end
private
def step_one
some_function
end
def step_two
if some_other_function
return false
end
true
end
def step_three
some_function
end
end
Как это написано, метод steps
не остановит выполнение на step_two
и будет продолжаться до step_three
. Я могу написать его таким образом, чтобы сделать его работу:
def steps
step_one
return false unless step_two
step_three
end
Или, если все три шага может вернуться ложным:
def steps
return false unless step_one
return false unless step_two
return false unless step_three
end
Есть ли лучший способ сделать это? Наверное, я спрашиваю, может ли метод вызова в Ruby вернуть false, если вызываемый метод возвращает false?
После повторного чтения сообщения я не уверен, если я понимаю вопрос. Вы сказали, что хотите, чтобы метод шагов возвращал false, когда он попадает в step_two *. Что вы подразумеваете под «хитами»? –
-1 потому что вы видели вопрос @ Павла и не отвечали на него. Измените первое предложение, чтобы заменить «хиты» тем, что объясняет, чего вы хотите достичь. –
Жестокий. Угадайте, что парень не может обедать. По хитам я имею в виду «прибывает». После завершения step_one. Он «прибывает» на второй шаг.Я также изменил это, если это не имеет смысла. Это была опечатка. –