Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Косвенная адресация в методах объектов / 10 сообщений из 10, страница 1 из 1
05.07.2007, 10:34
    #34640082
FenderJB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Косвенная адресация в методах объектов
Обнаружил, что в методах объектов не работает косвенная адресация с локальными переменными
Оно наверно обусловленно тем что локальные переменные метода должны восстановить прежние значения после его завершения. Хотелось бы этот момент найти в документации.
И что никак нельзя в методе воспользоваться косвенной адресацией ?
...
Рейтинг: 0 / 0
05.07.2007, 10:39
    #34640100
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Косвенная адресация в методах объектов
Если я понял правильно, проблема в том, что в выражениях типа
Код: plaintext
x "s x=10"
и подобных создается новый контекст, который при выходе и выражения уничтожается и восстнавливается предыдущий.
Причина в PROCEDUREBLOCK. Отключайте его и пользуйтесь NEW
...
Рейтинг: 0 / 0
05.07.2007, 14:00
    #34640984
FenderJB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Косвенная адресация в методах объектов
Нет, просто не работает конструкция
s @v=str
...
Рейтинг: 0 / 0
05.07.2007, 14:03
    #34640996
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Косвенная адресация в методах объектов
подозреваю, что причина та же.
То есть при вычислении @v создается новый контекст, который затем удаляется
...
Рейтинг: 0 / 0
05.07.2007, 14:23
    #34641079
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Косвенная адресация в методах объектов
А чему у вас равна переменая v?
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
05.07.2007, 14:34
    #34641121
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Косвенная адресация в методах объектов
Пробовал сейчас на простом примере
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
ClassMethod tmp() As %String
{
	s a= 1 
	s v="a"
	s @v= 2 
	w a
	q $$$OK
}
С ProcedureBlock=True не работает...
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
05.07.2007, 15:50
    #34641489
FenderJB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Косвенная адресация в методах объектов
А это не опасно отключать procedureBlock
Я не совсем понял для чего он нужен
...
Рейтинг: 0 / 0
05.07.2007, 15:54
    #34641516
FenderJB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Косвенная адресация в методах объектов
Я вообще то решил проблему другим путем
из метода вызываю обычную функцию в которой выполняю это фрагмент кода
...
Рейтинг: 0 / 0
06.07.2007, 06:00
    #34642662
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Косвенная адресация в методах объектов
авторА это не опасно отключать procedureBlock
он делает как-бы автоматический new для всех переменных
...
Рейтинг: 0 / 0
06.07.2007, 08:11
    #34642720
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Косвенная адресация в методах объектов
И не более того
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Косвенная адресация в методах объектов / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]