Translate this blog

sexta-feira, 12 de abril de 2013

Acessar uma variável usando seu nome / Access a variable using its name ( Field Symbol - Part II )


 Português  Dando continuidade ao assunto "ponteiros"... Em ABAP contamos com um recurso que, na minha opinião, é extremamente interessante: uma palavra pode ser usada para referenciar uma variável. Declarando uma variável do tipo char e atribuindo a ela o nome de outra variável ou simplesmente escrevendo o nome de uma variável já declarada no programa é possível usar esta palavra referenciando-a ao ponteiro.

Bom... Nada como um exemplo prático pra exemplificar:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
*Primeiro exemplo ---------------------------------------
  DATA: var_1 TYPE i VALUE 10.
  FIELD-SYMBOLS: <fs_pont>.
*Apontando o nome da variável
  ASSIGN ('VAR_1') TO <fs_pont>.
  IF <fs_pont> IS ASSIGNED.
    WRITE <fs_pont>.
  ENDIF.
*Mostrará o valor10
 
*Segundo exemplo ---------------------------------------
  DATA: var_2 TYPE string VALUE 'VAR_1'.
*Comando para remover o apontamento da var_1
  UNASSIGN <fs_pont>.
*Apontando o conteúdo da variável var_2(VAR_1)
  ASSIGN (var_2) TO <fs_pont>.
  IF <fs_pont> IS ASSIGNED.
    WRITE <fs_pont>.
  ENDIF.
*Mostrará o valor10, conteúdo da variável var_1

Com esse exemplo, observamos que o nome de uma variável pode ser usado para referenciar um ponteiro, fazendo com que o ponteiro assuma o valor daquela variável (primeiro exemplo), assim como quando utilizamos o conteúdo de uma variável para referenciar outra (segundo exemplo). Neste segundo caso temos que utilizar os parênteses, fazendo com que a interpretação seja baseada no conteúdo da variável e não apontar para a variável (var_2) em si.
Assim como no caso do post anterior, toda alteração feita no ponteiro terá efeito diretamente na variável a qual ela está sendo apontada, que no exemplo é a var_1.

Nenhum comentário:

Postar um comentário