
A linguagem de programação OPUS permite que sejam declaradas estruturas.
[struct] { <campo> [, ... <campo>]} <nome>
A declaração de um campo tem a sintaxe:
<nome><tipo>
Onde <tipo> pode ser:
As estruturas são utilizadas principalmente para representar expressões JSON.
Estude detalhadamente o abaixo:
prog
struct {a(Y)} s0 && declara estrutura tipo s0
private v0{s0} && declara variável v0 como estrutura tipo s0
v0->a="v0a" && valor do campo a é v0a
struct {e1(Y), e2(N), e3(L), e4{s0}, e5[], e6[]{s0}} s1
private v1{s1} && declara variável v1 como estrutura tipo s1
dynamic d1 && declara d1 como variavel dinâmica
d1="e1"
v1->e1=d1 && e1 é dinâmico
v1->e2=22 && e2 é numérico
v1->e3=.T. && e3 é lógico
v1->e4=&v0 && ou v1->e4=jsons(v0) - e4 é estrutura tipo s0
decl va[2]="v1" && declara va como um vetor cadeia
va[2]="v2"
v1->e5=&va && ou v1->e5=jsona(va) - e5 é um vetor cadeia
decl vs[]{s0} && declara vs como um vetor de estruturas tipo s0
vs[1]->a="vsa"
v1->e6=&vs && ou v1->e6=jsonv(vs) - e6 é um vetor de estruturas tipo s0
dynamic d2 && para conter o valor da estrutura
d2=&v1 && ou d2=jsons(v1) - v1 é uma estrutura
? d2
Exibe:
{"e1":"e1","e2":22,"e3":true,"e4":{"a":"v0a"},"e5":["v1","v2"],"e6":[{ "a":"vsa"}]}
JSONS(), JSONA(), JSONV()
