4D v20.1

New object

Página Inicial

 
4D v20.1
New object

New object 


 

New object {( propriedade ; valor {; propriedade2 ; valor2 ; ... ; propriedadeN ; valorN} )} -> Resultado 
Parâmetro Tipo   Descrição
propriedade  Texto in Nome da propriedade a criar
valor  Texto, Data, Booleano, Ponteiro, Número, Objeto in Valor da propriedade
Resultado  Objeto in Novo objeto linguagem

O comando New object cria um novo objeto vazio ou pré-recheado e devolve sua referência.

Se não passar nenhum parâmetro, New object cria um objeto vazio e devolve sua referência. Deve atribuir esta referência a uma variável 4D declarada com C_OBJECT ou um campo objeto 4D.

Nota: C_OBJECT declara uma variável de tipo Objeto mas não cria nenhum objeto.

Opcionalmente, pode prefixar o novo objeto passando um ou vários pares propriedade/valor como parâmetros:

  • No parâmetro propriedade, passe a etiqueta da propriedad a criar. Note que o parâmetro propriedade é sensível a maiúsculas e minúsculas.
  • No parâmetro valor, passe o valor que deseja definir para a propriedade. Vários tipos de dados são suportados. Lembre que:
    • Se passar um ponteiro, se mantém como está; Se avalia utilizando o comando JSON Stringify,
    • As datas são armazenadas no formato "AAAA-MM-DDTHH:mm:ss.SSSZ". Ao converter as datas 4D em texto antes de armazená-las no objeto, como padrão o programa leva em consideração a zona horária local.  Pode modificar este comportamento utilizando o selector Dates inside objects do comando SET DATABASE PARAMETER.
    • Se passar uma hora, é armazenada como um número de milissegundos (Real).

Este comando pode criar objeto vazios ou cheios:

 C_OBJECT($obj1)
 C_OBJECT($obj2)
 C_OBJECT($obj3)
 $obj1:=New object
  // $obj1 = {}
 $obj2:=New object("name";"Smith")
  // $obj2 = {name:Smith}
 $obj3:=New object("name";"Smith";"age";40)
  // $obj3 = {name:Smith,age:40}

Cria um novo objeto com um objeto como valor de parâmetro:

 C_OBJECT($Children;$Contact)
 
  //Criar um array objeto
 ARRAY TEXT($arrChildren;3)
 $arrChildren{1}:="Richard"
 $arrChildren{2}:="Susan"
 $arrChildren{3}:="James"
 OB SET ARRAY($Children;"Children";$arrChildren)
 
  //Inicializar o objeto
 $Contact:=New object("FirstName";"Alan";"LastName";"Parker";"age";30;"Children";$Children)
  // $Contact = {FirstName:Alan,LastName:Parker,age:30,Children:{Children:[Richard,Susan,James]}}

Este comando é útil para passar objetos como parâmetros:

 C_OBJECT($measures)
 $measures:=Get database measures(New object("path";"DB.cacheReadBytes";"withHistory";True;"historyLength";120))

Com este comando, pode fácilmente manejar objetos em loops:

 ARRAY OBJECT($refs;0)
 C_LONGINT(vCounter)
 
 For(vCounter;1;100)
    APPEND TO ARRAY($refs;New object("line";"Line number "+String(vCounter)))
 End for



Ver também 


New shared object

 
PROPRIEDADES 

Produto: 4D
Tema: Objetos (Linguagem)
Número 1471

This command can be run in preemptive processes

 
HISTÓRIA 

Criado por: 4D v16 R3

 
ARTICLE USAGE

Manual de linguagem 4D ( 4D v20)
Manual de linguagem 4D ( 4D v20.1)