VCL is a statically typed language.
Some familiar primitive types like
STRING are provided for scalar values, and may be assigned values from literals.
Other types represent scalar values but in a more complex format or are expressed with a unit, like
These types all have implicit conversions to strings, such that their values may be used in contexts where a
STRING value is necessary.
In addition to scalar types, VCL supports a number of types with special semantics that are particular to built in data structures, like
IP types may be
not set (as opposed to being set to the empty string), in which case the variable is considered to have no value. Various functions and operators treat
not set differently; some render them as the empty string, and some as
"(null)". This handling is a property of the function (or operator), rather than a property of the type.