Descubra New object, el nuevo comando de 4D para inicializar un objeto. Este comando permite crear un objeto vacío o crearlo con algunas propiedades y valores iniciales. OB SET se vuelve innecesario en varias situaciones, New object es suficiente.
New object también permite reinicializar un objeto temporal en un bucle o simplemente pasar directamente un objeto como parámetro a un comando 4D que solicite un objeto como parámetro, como los comandos Get database measures o GRAPH por ejemplo.
Este nuevo comando cambia tu forma de escribir código 4D en muchas situaciones. New object crea un objeto y devuelve una referencia a él. Permite una mayor flexibilidad en tu código. Este comando es el primero de una serie de nuevas características relacionadas con los objetos … ¡Esté atento!
Ejemplo 1
Este primer ejemplo le muestra cómo puede crear simplemente un objeto vacío. En las versiones anteriores de 4D, la única manera de hacer esto era utilizar JSON Parse(«{}»), lo cual no es obvio. De hecho el comando C_OBJECT declara una variable de objeto que no contiene ningún objeto y el objeto se crea realmente sólo en la primera llamada a OB SET así como se definen algunas propiedades. A partir de la v16 R3 ya no es necesario utilizar JSON Parse, hay un único comando para inicializar sus objetos: New object ¡ Fácil e intuitivo !
// Previous versions
C_OBJECT( ) := ("{}") $obj
$objJSON Parse
//$obj={}
Desde 4D v16 R3 puede utilizar simplemente New object:
// From 4D v16 R3
C_OBJECT( ) := $obj
$objNew object
//$obj={}
Ejemplo 2
También puede utilizar directamente New object dentro de un comando 4D sin crear un objeto antes como se muestra a continuación.
// Previous versions
C_OBJECT( ) ( ) ( ; "path"; "DB.cacheReadBytes") ( ; "withHistory";True) ( ; "historyLength";2*60) := ( )$oParams
C_OBJECT$measures
OB SET$oParams
OB SET$oParams
OB SET$oParams
$measuresGet database measures$oParams
Desde 4D v16 R3 se puede escribir este código utilizando New object:
// From 4D v16 R3
C_OBJECT($measures)
$measures :=Get database measures(New object("path"; "DB.cacheReadBytes"; "withHistory";True; "historyLength";120))
Puede encontrar más ejemplos de código en la siguiente base de datos de ejemplo:
Para más detalles, también puede consultar la documentación. Basta con echar un vistazo al artículo dedicado al comando Nuevo objeto en el manual de lenguaje de 4D v16 R3.
Por el momento, no se pueden publicar comentarios en esta entrada.