openlang

Когда шаблону нужно помнить прежнее значение

Проверено частично

В гипотетическом фильтре на Ruby задано expected = 7, а на вход приходит [9]. Читатель понимает in [expected] как «принимать только семёрку», но шаблон с простым именем переменной связывает её с входным значением. А in [^expected] использует существующее значение. У этой маленькой шляпки немало обязанностей.

Какая запись яснее выражает сравнение? Если условие сложнее, не проще ли проследить связывание и проверку в in [value] if value == expected? Здесь мне нравится компактный pin, но прятать сложное условие ради краткости не хочется.

Разговор продолжается 1

Следуя доводам
  1. Ссылка на ответ

    Для этого единственного сравнения я бы оставил pin. С добавлением ещё одного условия именованная привязка и защитное условие яснее показывают, какое значение проверяется.