最佳答案
有没有可能从一个函数中获得‘ 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;
I still think this is very ugly code.