Có thể nhận giá trị trả về 'thứ n' từ một hàm mà không cần phải tạo biến giả cho tất cả các n-1
giá trị trả về trước nó không?
Giả sử, tôi có hàm sau trong MATLAB:
function [a,b,c,d] = func()
a = 1;
b = 2;
c = 3;
d = 4;
Bây giờ, giả sử, tôi chỉ quan tâm đến giá trị trả về thứ ba . Điều này có thể được thực hiện bằng cách tạo một biến giả:
[dummy, dummy, variableThatIWillUse, dummy] = func;
clear dummy;
Nhưng tôi nghĩ đây là loại xấu xí . Tôi nghĩ rằng bạn có thể làm điều gì đó giống như một trong những điều sau đây, nhưng bạn không thể:
[_, _, variableThatIWillUse, _] = func;
[, , variableThatIWillUse, ] = func;
variableThatIWillUse = func(3);
variableThatIWillUse = func()(3);
Có cách nào thanh lịch để làm điều này mà hiệu quả không?
Cho đến nay, giải pháp tốt nhất là chỉ cần sử dụng variableThatIWillUse
làm biến giả. Điều này giúp tôi không phải tạo một biến giả thực gây ô nhiễm không gian làm việc (hoặc tôi cần phải xóa). Tóm lại: giải pháp là sử dụng variableThatIWillUse
cho mọi giá trị trả về cho đến giá trị thú vị. Giá trị trả về sau khi có thể đơn giản bị bỏ qua:
[variableThatIWillUse, variableThatIWillUse, variableThatIWillUse] = func;
Tôi vẫn nghĩ đây là mã rất xấu, nhưng nếu không có cách nào tốt hơn, thì tôi đoán tôi sẽ chấp nhận câu trả lời.