3.2.1 데이터 참조 선언
데이터 참조(Data Reference)야 말로 포인터의 의미와 같다.
데이터 참조 변수가 데이터에 접근하려면 역참조가 선행되어야한다.
한 줄 요약 : 포인터 = 데이터 참조 변수 = 주소값을 가짐.
3.2.2 데이터 참조 Assign
Get reference of dobj into dref.
(=> dref = REF #( dobj ).)
dobj의 주소를 가지고 있을 뿐, dobj의 실제 값에는 접근하지 못한다.
한 줄 요약 : 데이터 참조변수를 assign 한다는 것은 dref에 특정 dobj의 주소값을 준다는 것
3.2.3 Dynamic Data Obj. 생성
* create data vs get reference of
create data 는 참조변수에 의해 참조되는 한 프로그램 내에 계속 살아있다.
get reference of 는 프로시져 내 로컬 변수나 글로벌 변수를 참조하는 화살표.
(따라서, 참조하는 dobj이 서브루틴 내에서 죽어버리면 dref는 Freed Stack 되어질 수 있다)
한 줄 요약 : get reference 는 주소와 연관, deference는 데이터 값과 연관.
3.2.4 데이터 참조 변수 끼리 Assign
Assign 하는 2가지 방식, (다시 한 번 말하지만, 포인터를 카피하는 거지, 데이터 오브젝트 그 자체를 카피하는 게 아니다.)
우선, lr_dref2 = lr_dref1.
다음은, Move lr_dref1 to lr_dref2.
한 줄 요약 : move to 와 =은 같은 역할을 한다.
3.2.5 역참조(Dereference)
dereferenced 참조 변수는 lvalue 가 될 수도 있고, rvalue가 될 수도 있다.
(좀 더 공부필요. 현 수준에서는 그냥 그런갑다 하고 흘리자)
*lvalue : 주소 가지고 있음. Assign 되어질 수 있음.
*rvalue : lvalue + Assign 될 수 없는 문자열이 될 수 있음.
->* : *는 dref의 모든 컴포넌트들(?)을 dereference 한다는 의미.
따라서, dref가 str.의 경우, lr_dref->connid 의 형태처럼 dereference된 특정 컴포넌트의 값을 가져올 수 있다.
한 줄 요약 : '->' 는 dobj의 데이터 값에 접근하겠다는 의미
모르는 단어 정리
consolidate : 통합하다, 강화하다
deprecate : 반대하다
'SAP > Abap Cookbook' 카테고리의 다른 글
3.3 ABAP Run Time Type Services (RTTS) (0) | 2023.01.30 |
---|---|
3.1 Working with Field Symbols (0) | 2023.01.29 |