Недавно я обнаружил, что tap
может использоваться для "сухого" назначения значений новым переменным; например, для создания и заполнения массива, например:
array = [].tap { |ary| ary << 5 if something }
Этот код нажимает 5
на array
, если something
правдиво; в противном случае array
останется пустым.
Но я не понимаю, почему после выполнения этого кода:
array = [].tap { |ary| ary += [5] if something }
array
остается пустым. Кто-нибудь может мне помочь?