Scoprite New object, il nuovo comando di 4D per inizializzare un oggetto. Questo comando consente di creare un oggetto vuoto o di crearlo con alcune proprietà e valori iniziali. OB SET sta diventando superfluo in diverse situazioni, New object è sufficiente.
New object permette anche di reinizializzare un oggetto temporaneo in un ciclo o semplicemente di passare direttamente un oggetto come parametro a un comando 4D che richiede un oggetto come parametro, come i comandi Get database measures o GRAPH ad esempio.
Questo nuovo comando cambia il modo di scrivere codice 4D in molte situazioni. New object crea un oggetto e ne restituisce un riferimento. Consente una maggiore flessibilità nel codice. Questo comando è il primo di una serie di nuove funzionalità relative agli oggetti… Restate sintonizzati!
Esempio 1
Questo primo esempio mostra come sia possibile creare un oggetto vuoto. Nelle precedenti versioni di 4D, l’unico modo per farlo era utilizzare JSON Parse(“{}”), il che non è ovvio. Infatti, il comando C_OBJECT dichiara una variabile oggetto che non contiene alcun oggetto e l’oggetto viene effettivamente creato solo alla prima chiamata a OB SET e vengono definite alcune proprietà. Dalla v16 R3 non è più necessario utilizzare JSON Parse, c’è un solo comando per inizializzare gli oggetti: New object! Facile e intuitivo!
// Previous versions
C_OBJECT( ) := ("{}") $obj
$objJSON Parse
//$obj={}
Da 4D v16 R3 è possibile utilizzare semplicemente New object:
// From 4D v16 R3
C_OBJECT( ) := $obj
$objNew object
//$obj={}
Esempio 2
È anche possibile utilizzare direttamente New object all’interno di un comando 4D senza creare prima un oggetto, come mostrato di seguito.
// 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
Da 4D v16 R3 è possibile scrivere questo codice utilizzando New object:
// From 4D v16 R3
C_OBJECT($measures)
$measures :=Get database measures(New object("path"; "DB.cacheReadBytes"; "withHistory";True; "historyLength";120))
Altri esempi di codice sono disponibili nel seguente database di esempio:
Per ulteriori dettagli, è possibile consultare la documentazione. Basta dare un’occhiata all’articolo dedicato al comando Nuovo oggetto nel manuale del linguaggio 4D v16 R3.