A volte si desidera scrivere codice in grado di lavorare con diversi tipi di variabili, soprattutto per la codifica generica. L’uso dei puntatori può rendere il codice più difficile da leggere e da debuggare. A volte non è affatto possibile, ad esempio quando si vuole assegnare una variabile generica a un oggetto form come origine dei dati.
È ora disponibile un nuovo comando che consente di dichiarare una variabile che può memorizzare diversi tipi di valori. Salutate il nuovo comando C_VARIANT !
Verificare il tipo di variante
Il tipo di dati variante può essere utilizzato per rappresentare altri tipi di dati (eccetto gli array). Ciò significa che il tipo di variabile è variant, ma il tipo di valore può essere Text, Longint o un altro tipo valido. È possibile utilizzare il comando Type per ottenere il tipo di variabile e il comando Value type per il tipo di valore:
C_VARIANT$vt($variant)
$t :=Type($variant) // type: variant
$vt :=Value type($variant) // value type: undefined
$variant :=6.5
$t :=Type($variant) // type: variant
:=Value type($variant) // value type: real
$variant :="Hello world"
$t :=Type($variant) // type: variant
$vt:=Value type($variant)
// value type: text
variante come parametro di un metodo
A volte è necessario creare metodi che accettano parametri di diversi tipi.Ora non c’è più bisogno di puntatori, si possono creare metodi che accettano il tipo di dati variant come parametro:
C_COLLECTION($1)
C_VARIANT ($2)
if ($2#Null)
$1 .push($2)
end if
E, naturalmente, si possono anche creare metodi che restituiscono il tipo di variante:
C_TEXT($1;$JSFunction)
C_VARIANT ($0;$Result)
$JSFunction :=$1
WA EXECUTE JAVASCRIPT FUNCTION (
MyWArea;$JSFunction;$Result)
$0 :=$Result
Il tipo di dati variant può essere utile in molti modi, in particolare quando è necessario utilizzare valori Null o Undefined. Trovate maggiori dettagli nel doc center.