Должен ли я переопределять свой объект очистки Matlab при изменении входных аргументов?

У меня есть функция очистки, которая использует пару аргументов, которые изменяют поведение процедуры очистки:

function MainFunction()
x=1;
y=1;
cleanupObj = onCleanup(@()cleanupFun(x,y));
end
function cleanupFun(x,y)
    if(x)
        %do something
    end
    if(y)
        %do another thing
    end
end

Теперь, в моем более широком случае использования, x и y будут меняться много раз в течение жизни MainFunction. Должен ли я переопределять свой cleanupObj каждый раз при изменении x или y? Для моего случая это было бы довольно некрасиво. Другая идея, о которой я подумал, заключается в использовании того факта, что x и y изменяются подфункциями. Можно ли передать дескриптор объекта очистки этим подфункциям, чтобы я мог переопределить дескриптор объекта очистки внутри подфункции, а не переопределять его после каждого вызова подфункции?


person Daniel Klisiewicz    schedule 20.04.2021    source источник
comment
следующий поток, кажется, отвечает на мой вопрос: stackoverflow.com/questions/23265495/   -  person Daniel Klisiewicz    schedule 20.04.2021