Чи можна отримати функцію повернення 'nth' від функції, не створюючи n-1
перед цим фіктивних змінних для всіх повернених значень?
Скажімо, у MATLAB у мене є така функція:
function [a,b,c,d] = func()
a = 1;
b = 2;
c = 3;
d = 4;
Тепер припустимо, мене цікавить лише третя повернена вартість. Це можна досягти, створивши одну фіктивну змінну:
[dummy, dummy, variableThatIWillUse, dummy] = func;
clear dummy;
Але я думаю, що це щось некрасиво . Я думаю, що ви можете зробити щось на зразок однієї з наступних речей, але ви не можете:
[_, _, variableThatIWillUse, _] = func;
[, , variableThatIWillUse, ] = func;
variableThatIWillUse = func(3);
variableThatIWillUse = func()(3);
Чи є якісь елегантні способи зробити це, які б спрацювали?
Поки найкращим рішенням є просто використання параметра " variableThatIWillUse
фіктивна". Це рятує мене від необхідності створювати справжню змінну манекена, що забруднює робочий простір (або що мені потрібно буде очистити). Коротше кажучи: рішення полягає в тому, щоб використовувати значення variableThatIWillUse
для кожного повернення вгору до тих пір, поки це цікаве. Повернення значень після може бути просто проігноровано:
[variableThatIWillUse, variableThatIWillUse, variableThatIWillUse] = func;
Я все ще думаю, що це дуже некрасивий код, але якщо немає кращого способу, то, мабуть, я прийму відповідь.