Есть ли смысл помимо локальных переменных обнулять переменные, которые принимает функция?

Принятый ответ

Аргументы функций хоть и технически такие же локалки, но их обнуляет интерпритатора, тупо дописываю перед ретурном set v =null. Почему такое не происходит с обычными локалками - большая загадка.
`
ОЖИДАНИЕ РЕКЛАМЫ...
1
37
4 года назад
1
Это называется "аргумент" и в жасс их обнулять не нужно, исходя из старых статей
1
18
4 года назад
1
Нет, глобальные переменные обнулять нет смысла. Они как правило не дают утечек.
0
37
4 года назад
0
dave_wwid, про глобальные речи не шло
1
32
4 года назад
1
Аргументы функций хоть и технически такие же локалки, но их обнуляет интерпритатора, тупо дописываю перед ретурном set v =null. Почему такое не происходит с обычными локалками - большая загадка.
Принятый ответ
0
16
4 года назад
0
потому что, грубо говоря, когда компилятор видит
set u=someUnit
он этому someUnit ставит счетчик +1, а юниту из u - счетчик -1
я так на мх попался, когда юнита вписывал из нативного кода игры, а удалял из переменной через set u=null
в итоге счетчик референсов падал до отрицательных значений и юнит из игры стирался
а в аргументах такой механики нет
пойду гляну, делает ли он -- счетчику, если нуллить аргумент
0
23
4 года назад
0
DracoL1ch, вроде клонирует локально под кейс ожидание завершение функции и обнуление а оригинал внешниый который передает все еше жив
0
16
4 года назад
0
не шарю, как глянуть вот прям под этот кусок движка, но рефкаунт не меняется от аргументов
Чтобы оставить комментарий, пожалуйста, войдите на сайт.