MSPL Types and Type Conversion

This content is no longer actively maintained. It is provided as is, for anyone who may still be using these technologies, with no warranties or claims of accuracy with regard to the most recent product version or service release.

MSPL Types and Type Conversion

All variables in MSPL are implicitly declared; you cannot explicitly declare a variable as any of the types listed below. These assignments must be of the form:

variableName = value;

Floating-point and integer values must be specified using the en-US cultural format.

MSPL Data Types

The following data types are supported by MSPL:

  • string: a Unicode string value.

  • integer: a 32-bit signed integer value.

  • float: an IEEE single-precision floating point value.

  • bool: a value that evaluates to true or false.

  • [ ]: a flat file.

  • collection: a grouping of one or more of the previous types.

Type Conversion Rules

If a variable has been implicitly declared as one type through assignment, and a value of a different type is later assigned to it, the type will be coerced by the type conversion rules below.

If the source type is string:

  • Result type is integer: The string will be converted to the corresponding integer value. An error occurs if the source string cannot be entirely consumed.

  • Result type is float: The string will be converted to a floating-point value. An error occurs if the source string cannot be entirely consumed.

  • Result type is bool: true if the string has a nonzero length; false if it is zero characters in length.

  • Result type is collection: A collection that contains a single string is created.

If the source type is integer:

  • Result type is string: A string representation of the integer value is created.

  • Result type is float: The integer will be converted to a floating-point value.

  • Result type is bool: true if the integer is nonzero; false if it is zero.

  • Result type is collection: A collection that contains a single integer value is created.

If the source type is float:

  • Result type is string: A string representation of the float value is created.

  • Result type is integer: An integer representation of the float value is created. All digits after the decimal point are truncated.

  • Result type is bool: true if the float is nonzero; false if it is zero.

  • Result type is collection: A collection that contains a single float value is created.

If the source type is bool:

  • Result type is string: If the value is true, a string that contains "true" is created; else if false, a string that contains "false" is created.

  • Result type is integer: If the value is true, an integer with a value of 1 is created; else if false, an integer with a value of 0 is created.

  • Result type is float: If the value is true, a float with a value of 1.0 is created; else if false, a float with a value of 0.0 is created.

  • Result type is collection: A collection that contains a single bool value is created.

If the source type is collection:

  • Result type is string: If at least one element is present in the collection, the coercion rules for converting the base type to a string are applied to the first element; else, if the collection is empty, an empty string value is used.

  • Result type is integer: If at least one element is present in the collection, the coercion rules for converting the base type to an integer are applied to the first element; else, if the collection is empty, the value 0 is used.

  • Result type is float: If at least one element is present in the collection, the coercion rules for converting the base type to a float are applied to the first element; else, if the collection is empty, the value 0.0 is used.

  • Result type is bool: true if the collection contains one or more items; false if it is empty.

    Note

    Two collections cannot be compared. The script will abort with an error if a collection comparison is attempted.