Может ли метод знать, сколько выходных значений от него ждут?

Предположим, что есть метод, который возвращает два значения.

def connect()
  return [1, nil]
end


Для получения значений в разные переменные мы вызываем метод следующим образом:

a, b = connect() 
# => a == 1
# => b == nil


Если указать только одну переменную, то в неё попадёт массив:

a = connect() 
# => a == [1, nil]


Существует ли возможность, когда при указании двух переменных, они бы заполнялись, как обычно, а при указании одной переменной, в неё бы попадал только первый элемент массива.

Пример, как я хочу (в таком виде работать не будет):

a = connect() 
# => a == 1
  • Вопрос задан
  • 61 просмотр
Решения вопроса 1
longclaps
@longclaps
В чём проблема-то?
def f()
  [1] # или [1, 2], или [1, 2, 3]
end

a, _ = f()
p a # выведет 1 по-любому
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы