2014-09-10 4 views
1

Я прочитал несколько документов о синтаксисе ->*, но я до сих пор его не понимаю. Может ли кто-нибудь объяснить, что это значит и в каких сценариях я могу его использовать?Что означает синтаксис -> *?

У меня есть, что синтаксис в этом примере:

assign ovs_callback_object->query_parameters->* to <ls_query_params> CASTING. 
+0

@isherwood Не в этом случае. – vwegert

ответ

2

Оператор ->* является «разыменования» оператор. Он превращает TYPE REF TO something в TYPE something.

В вашем примере ovs_callback_object->query_parameters скорее всего является ссылкой, но вы не хотите назначать ссылку на полевой символ, вы хотите присвоить фактическое поле опорным точкам.

3

refvar->* используется для отмены ссылки на неструктурированную ссылочную переменную. Для структурированной ссылки вы должны использовать structref->component для доступа к компоненту ссылочного объекта (атрибуту объекта или компонента структуры). Если у вас есть что-то вроде TYPE REF TO i, нет внутренней структуры, поэтому вам нужно использовать специальный синтаксис ->*. It's all in the documentation...

Смежные вопросы