Много раз я сталкивался с ситуацией, когда я много раз вызываю метод с одним и тем же параметром, и мне нужно добавить дополнительный параметр, определенный в моем методе main. Я никогда не уверен, что делать с дополнительным параметром. Может показаться, что лучше сделать параметр статичным, чтобы сделать код чище, но тогда статические переменные не очень хороши. Тем не менее, добавление параметров может в некоторых случаях приводить к очень длинным спискам параметров, которые в некотором смысле являются ненужными, и я предполагаю, что также будет недостаток в скорости, когда ваша функция короткая, часто вызывается и имеет много параметров.
Вот последний код (kotlin), который заставил меня задуматься над этой проблемой, но я часто сталкивался с этой проблемой на разных языках.
tailrec fun getAncestor(ind: Int, parent: IntArray): Int {
if (parent[ind] == ind) return ind else return getAncestor(parent[ind], parent);
}
Что лучше сделать родительской статической переменной, а не иметь ее в качестве параметра метода? (Предположим, что каждый раз, когда вызывается этот метод, второй параметр будет одним и тем же. Обычно я пишу только короткие 100-строчные файлы кода для конкурентного программирования, поэтому нет никаких шансов, что метод будет повторно использован с другим вторым параметром)