Type Coercion

From MiniScript Wiki
Revision as of 16:52, 20 February 2024 by JoeStrout (talk | contribs)
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 == 0 Multiplying by null yields 0.

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" All numerical math is done according to standard IEEE floating-point rules, including well-defined behavior for Inf and NaN. However, conversion of Inf and NaN to a string is undefined (implementation-dependent).