is not strictly

Typeoperator
DictionaryLCS
LibraryLiveCode Script
Syntax
<value> is not strictly { nothing | a boolean | an integer | a real | a string | a binary string | an array }
Summary

Evaluates to true if the actual type of value is not the specified type.

Introduced8.0
OSmac, windows, linux, ios, android
Platformsdesktop, server, mobile
Parameters
NameTypeDescription
value

The expression which will be tested for its type.

Example
"Hello World!" is not strictly a string -- evaluates to false
1 + 200 is not strictly an integer -- evaluates to false
(100 is 100) is not strictly a boolean -- evaluates to false
the compress of "Hello World!" is not strictly a binary string -- evaluates to false
RelatedOperator: is strictly, is a, is not a
Description

Use the is not strictly operator to determine what the true type of a value is not. The true type of a value is the representation which the engine is currently holding for it, without performing any implicit type coercion. The true type of a value can be one of the following:

  • nothing: no value, typically seen as empty
  • boolean: either true or false, typically seen as the result of a comparison operator
  • integer: a number with no fractional part
  • real: a number with a fractional part
  • string: a piece of text (sequence of characters)
  • binary string: a sequence of bytes
  • array: an associative array

The is not strictly operator differs from is not a in that it does not perform any type coercion. For example, x not is an integer would return false only when x is neither an integer nor a string which parses as an integer; whereas x is not strictly an integer only returns false if x is not currently an integer.