Ondan önceki tüm n-1
dönüş değerleri için kukla değişkenler oluşturmak zorunda kalmadan bir fonksiyondan 'n'inci' dönüş değerini almak mümkün müdür ?
Diyelim ki MATLAB'da aşağıdaki işleve sahibim:
function [a,b,c,d] = func()
a = 1;
b = 2;
c = 3;
d = 4;
Şimdi varsayalım, ben sadece üçüncü dönüş değeri ile ilgileniyorum . Bu, bir kukla değişken oluşturarak gerçekleştirilebilir:
[dummy, dummy, variableThatIWillUse, dummy] = func;
clear dummy;
Ama bunun biraz çirkin olduğunu düşünüyorum . Aşağıdakilerden biri gibi bir şey yapabileceğinizi düşünürdüm, ancak yapamazsınız:
[_, _, variableThatIWillUse, _] = func;
[, , variableThatIWillUse, ] = func;
variableThatIWillUse = func(3);
variableThatIWillUse = func()(3);
Bunu yapmanın işe yarayan zarif yolları var mı?
Şimdiye kadar, en iyi çözüm basit variableThatIWillUse
bir değişken olarak kullanmaktır . Bu beni, çalışma alanını kirleten (veya temizlemem gereken) gerçek bir kukla değişken yaratma zorunluluğundan kurtarıyor. Kısaca: Çözüm, variableThatIWillUse
ilginç olana kadar her dönüş değeri için kullanmaktır . Sonrasında dönen değerler göz ardı edilebilir:
[variableThatIWillUse, variableThatIWillUse, variableThatIWillUse] = func;
Hala bunun çok çirkin bir kod olduğunu düşünüyorum, ancak daha iyi bir yol yoksa sanırım cevabı kabul edeceğim.