有没有可能从函数中获得第n个返回值,而不必为之前的所有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;
我仍然认为这是非常丑陋的代码。
https://stackoverflow.com/questions/747296
复制相似问题