Я ищу совет по стилю / передовой практике. Я часто пишу сценарии, в которых нужно определить много (несколько десятков) параметров в начале. Затем эти параметры используются многими функциями сценария. Минимальный упрощенный пример может выглядеть примерно так:
params.var1 = 1;
params.var2 = 10;
params.var3 = 100;
params.var4 = 1e3;
result1 = my_func1(params);
result2 = my_func2(params);
Теперь я не хочу передавать много входных данных в каждую функцию, поэтому я не хочу делать что-то вроде result1 = my_func1(var1,var2,var3,var4,...)
. Поэтому я всегда обнаруживаю, что делаю каждую переменную полем структуры (например, params
), а затем передаю только эту структуру в каждую функцию, как указано выше. Структура не изменяется функциями, только параметры используются для дальнейших вычислений.
Тогда одна из функций может выглядеть так:
function result = my_func1(params)
var1 = params.var1;
var2 = params.var2;
var3 = params.var3;
var4 = params.var4;
result = var1.^2 + var2.^2 -var3.^3 + var4;
end
Теперь, потому что я не хотите ссылаться на каждую переменную в функции как params.var1
, et c. (чтобы сохранить выражение для result
как можно более ясным), я сначала делаю всю эту распаковку в начале, используя var1 = params.var1
.
Я полагаю, что лучше всего делать в таких ситуациях может заключаться в использовании классов (потому что у меня есть некоторые данные, и я также хочу выполнять функции с этими данными). Есть ли для меня лучший способ заниматься подобными вещами, не переходя полностью на объектно-ориентированный код?