happy_horror
2 + 2 = 22 :-D
offline
Опыт:
7,818Активность: |
Удаление (обнуление) локальных переменных
В конце функции трём локальным переменным типа integer присваиваю значение null - но при сохранении выдаётся ошибка: "cannot convert null to integer".
Что за бред? ведь команда Код:
|
09.03.2008, 19:52 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
zer0ne
offline
Опыт:
11,219Активность: |
happy_horror
Я не знаю, может говорю бред, но может надо цифрой записать? |
09.03.2008, 19:53 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
happy_horror
2 + 2 = 22 :-D
offline
Опыт:
7,818Активность: |
Не уверен, т.к. 0 это значение (а при объявлении локальной переменной можно и не указывать ничего - значит там стоит этот самый параметр null - не задано ), даже в статьях по джазу пищется что обнуление переменных происходит именно так. Я даже в некоторых картах подобное видел. Но у меня почему-то возникает ошибка обнаружаемая JassHelper'ом |
09.03.2008, 20:08 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
sleepw
offline
Опыт:
8,449Активность: |
null это типа нет боевой единицы и т.п.
sleepw добавил: сам подумай как ты интежер обнулишь если по умолчанию стоит 0.. тоесь 0 это и будет обнуление.. да и понту?. |
09.03.2008, 20:34 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DFlyer
<3 MJ
offline
Опыт:
43,079Активность: |
happy_horror
set i = null - это для "объектовых" переменных, к примеру типа unit, item, location, и т.д. Для integer это: set i = 0 Для real это: set i = 0.00, хотя просто 0 вроде тож сойдёт... |
09.03.2008, 20:38 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
S
offline
Опыт:
43,833Активность: |
DFlyer присоединяюсь к твоим словам -
set i = null - для не-числовых переменных (unit, location, item, gamecache) set i = 0 - для числовых (real,integer) |
09.03.2008, 20:46 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
zer0ne
offline
Опыт:
11,219Активность: |
Моя же
Цитата:
Выходит, я прав? zer0ne добавил: Все, вдохновился на изучение джаса... |
|
09.03.2008, 21:13 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
FellGuard
Losyash
offline
Опыт:
39,547Активность: |
happy_horror, все скалярные типы переменных не нуждаются в обнулении.
Т.е. стринг, риал, интеджер, булиан не нужно обнулять. Отредактировано FellGuard, 10.03.2008 в 10:37. |
09.03.2008, 22:16 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DFlyer
<3 MJ
offline
Опыт:
43,079Активность: |
Цитата:
Да! Давно пора к джаззу приступать! )) |
|
10.03.2008, 10:32 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
108,439Активность: |
ТТ, либо мне кажеться, либо правду с каждым днем вопросы по жассу становять все банальней...
обнуление переменной не как не влияет на ее удаление переменная локльная удаляеться когда функция заканчивает свое выполнение обнуление переменных связянно с самой их реализации в жассе обнулять надо некоторые наследники типа хендл (юниты, итемы, локации) тип хендл - тот же инт (благодаря чему и возможен рб) при создании реального обьекта в варе движком в отдельной таблице выделяеться новый инт, который будет являться ссылкой на этот обьект для "жасса" этот инт может освободиться только в слдучае если обьект удален и все ссылки на него обнулены, в противном случае мы бы получили множества багов при удалении обьектов следовательно абузить этот механизм не стоит (т.е. счетчик ссылок) Цитата:
строки - ссылки реалы - ссылки (кажеться) булы кажеться тоже... но обнулять их действительно не нуно) |
|
10.03.2008, 11:21 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
FREEZE_ball
Cataclysm => жара
offline
Опыт:
15,247Активность: |
а для строковых: local VarMyString="" |
10.03.2008, 11:45 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
108,439Активность: |
Цитата:
TT бред. строки - это инты, которые являются ссылками на уже конкретные строки. к строкам (переменным) может быть применено null. ="" просто создаст (если до это не было созданно, да строки кешируются, т.е. если такая строка уже есть новая не создастся) или присвоит соотв значение ADOLF добавил: FREEZE_ball, конечно звиняй что бредом называю, но дык, как начнете что то сочинять... |
|
10.03.2008, 12:01 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|