C_VARIANT para almacenar diferentes tipos de valores

Traducido automáticamente de Deepl

A veces se quiere escribir código pudiendo trabajar con diferentes tipos de variables, esto es especialmente cierto para la codificación genérica. El uso de punteros puede hacer que el código sea más difícil de leer y depurar. A veces no es posible en absoluto, por ejemplo cuando quieres asignar una variable genérica a un objeto de formulario como fuente de datos.

Un nuevo comando está ahora a tu disposición para permitirte declarar una variable que pueda almacenar diferentes tipos de valores. Saluda al nuevo C_VARIANT ¡comando!

Compruebe el tipo de su variante

El tipo de datos variante puede utilizarse para representar otros tipos de datos (excepto arrays). Esto significa que el tipo de la variable es variante pero el tipo de valor puede ser Text, Longint u otro tipo válido. Puede utilizar el comando Type para obtener el tipo de la variable y el comando Value type para obtener el tipo del valor:

C_VARIANT($variant)
$t :=Type($variant) // type: variant
$vt :=Value type($variant) // value type: undefined

$variant :=6.5
$t :=Type($variant) // type: variant
$vt :=Value type($variant) // value type: real

$variant :="Hola mundo"
$t :=Type($variant) // type: variant
$vt:=Value type($variant) // value type: text

variante como parámetro de un método

También hay ocasiones en las que puedes necesitar crear métodos que acepten parámetros de varios tipos.Ahora ya no son necesarios los punteros, puedes crear métodos que acepten el tipo de datos variante como parámetro:

C_COLLECTION($1)
C_VARIANT ($2)

if ($2#Null)

$1 .push($2)
end if

Y, por supuesto, también se pueden crear métodos que devuelvan el tipo de variante:

C_TEXT($1;$JSFunction)
C_VARIANT ($0;$Result)

$JSFunction :=$1

WA EXECUTE JAVASCRIPT FUNCTION (MyWArea;$JSFunction;$Result)

$0 :=$Result

El tipo de datos variante puede ser útil de muchas maneras, en particular cuando se necesita utilizar valores nulos o indefinidos. Encuentre más detalles en el centro de documentación.

Fabrice Mainguené
- Product Owner -Fabrice Mainguené se unió al equipo de 4D Program en noviembre de 2016. Como Product Owner, está a cargo de escribir las historias de usuario y luego traducirlas a especificaciones funcionales. Su papel es también asegurarse de que la implementación de la característica entregada cumple con las necesidades del cliente. Después de obtener una licenciatura en Ciencias de la Computación en el CNAM, Fabrice se unió a una pequeña empresa de publicación de software como desarrollador Windev. A continuación, trabajó para diferentes empresas del sector industrial y comercial como desarrollador de Windev y de la web, así como asesor técnico de nuevas funcionalidades.