Type Coercion

From MiniScript Wiki
Revision as of 15:56, 20 February 2024 by Treytomes (talk | contribs) (Beginning to document the type coercion rules. This page still needs a lot of work.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
  • WIP*

Known type coercion rules:

`null * 3 == #@!$` Any statement that begins with `null` is a compiler error, but this may change in the future. `(null)` is okay though.

`3 * null == null` Multiplying by null yields null.

`3 / null == Infinity` In division, null acts a lot like `0`.

`3 + "3" == "33"` If an expression contains a string, the entire expression will be coerced into a string.

`"3" * 5 == "33333` Multiplying a string by a number will replicate the string.

`"1234" / 2 == "12"` Dividing a string by a number will divide the length, then take a substring.

`1/0 = "INF" | "Infinity"` The concept of infinity and negative infinity sort of exists, but isn't well-defined.