Предположим, имеется некая функция, возвращающая несколько значений. Например:
function foo()
return 2,3,4
end
Вызов этой функции можно вставить в качестве параметра в другую функцию. Например:
print(foo()) --> 2 3 4
Как видим, в этом случае все значения, возвращаемые внутренней функцией, передаются во внешнюю. Причем, каждое значение отдельным параметром. Это бывает удобно, когда количество элементов, входящих в возвращаемый список может быть переменным.
К этому списку можно добавить еще элементы, но только в начало.
print(1,foo()) --> 1 2 3 4
Если же мы попытаемся добавить элемент в конец списка ...
print(1,foo(),5) --> 1 2 5
... то обнаружим, что внутренняя функция передает во внешнюю только один элемент - первый.
Почему так происходит и как сделать так, что бы передавались все элементы?
Предположим, имеется некая функция, возвращающая несколько значений. Например:
Вызов этой функции можно вставить в качестве параметра в другую функцию. Например:
Как видим, в этом случае все значения, возвращаемые внутренней функцией, передаются во внешнюю. Причем, каждое значение отдельным параметром. Это бывает удобно, когда количество элементов, входящих в возвращаемый список может быть переменным.
К этому списку можно добавить еще элементы, но только в начало.
Если же мы попытаемся добавить элемент в конец списка ...
... то обнаружим, что внутренняя функция передает во внешнюю только один элемент - первый.
Почему так происходит и как сделать так, что бы передавались все элементы?
Поделиться сообщением
Ссылка на сообщение
Поделиться на других сайтах