В этом случае кажется совершенно неоправданным делать array1 = null
.
Что именно делает для array1 значение null в конце func1? Изменит ли значение arr на null в func2?
По сути, array1
является копией ссылки на arr
в func2
. Таким образом, это назначение изменит переменную только в области действия func1
и нигде больше, поэтому arr
в func2
останется неизменным. И делать это в операторе finally в конце функции бесполезно, поскольку func1
заканчивается сразу после оператора finnaly, а ссылка на array1
будет собирать мусор, и никто никогда не узнает, что для него установлено значение null
. (ожидать, если это было в замыкании раньше, но вы говорите, что это не так).
Или изменение массива1 на null создает новую ссылку на переменную null?
Он просто устанавливает значение array1
на ноль, и, как я уже говорил, arr
в func2
в этом случае не изменится.
:)