Como puede ser claro por el título, ¿qué enfoque preferimos?Pasar un parámetro en lugar de devolverlo de la función
La intención es pasar algunos parámetros del método y obtener algo como salida. Podemos pasar otro parámetro y el método lo actualizará y el método no necesita devolver nada ahora, el método simplemente actualizará la variable de salida y se reflejará en la persona que llama.
Solo intento enmarcar la pregunta a través de este ejemplo.
List<String> result = new ArrayList<String>();
for (int i = 0; i < SOME_NUMBER_N; i++) {
fun(SOME_COLLECTION.get(i), result);
}
// in some other class
public void fun(String s, List<String> result) {
// populates result
}
frente
List<String> result = new ArrayList<String>();
for (int i = 0; i < SOME_NUMBER_N; i++) {
List<String> subResult = fun(SOME_COLLECTION.get(i));
// merges subResult into result
mergeLists(result, subResult);
}
// in some other class
public List<String> fun(String s) {
List<String> res = new ArrayList<String>();
// some processing to populate res
return res;
}
entiendo que uno pasa a la referencia y otro no lo hace.
¿Cuál deberíamos preferir (en diferentes situaciones) y por qué?
Actualización: Considérelo solo para objetos mutables.
No estoy seguro de lo que estás preguntando. ¿Estás preguntando en qué situaciones debes pasar una variable a un método vs adquirirlo dentro del método con un getArg() o como se llame? – Charles
No, lo está malinterpretando o no pude transmitir. Pregunto: ¿Debemos pasar una variable a una función como referencia o devolverla desde la función? ¿En qué situaciones debemos usar cualquiera de estos? ¡Espero, estoy claro! – instanceOfObject