เป็นไปได้หรือไม่ที่จะได้รับค่าส่งคืน 'ที่ 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;
ฉันยังคิดว่านี่เป็นรหัสที่น่าเกลียดมาก แต่ถ้าไม่มีวิธีที่ดีกว่านี้ฉันเดาว่าฉันจะยอมรับคำตอบ