Difference between revisions of "Type Coercion"
Jump to navigation
Jump to search
(5 intermediate revisions by 3 users not shown) | |||
Line 3: | Line 3: | ||
Known type coercion rules: | Known type coercion rules: | ||
− | + | * <c>null * 3 == #@!$</c> — Any statement that begins with `null` is a compiler error, but this may change in the future. | |
− | Any statement that begins with `null` is a compiler error, but this may change in the future. | + | <c>(null)</c> is okay though. |
− | |||
− | + | * <c>3 * null == 0</c> — Multiplying by null yields <c>0</c>. | |
− | Multiplying by null yields | ||
− | + | * <c>3 / null == Infinity</c> — In division, null acts a lot like <c>0</c>. | |
− | In division, null acts a lot like | ||
− | + | * <c>3 + "3" == "33"</c> — If an expression contains a string, the entire expression will be coerced into a string. | |
− | If an expression contains a string, the entire expression will be coerced into a string. | ||
− | + | * <c>"3" * 5 == "33333"</c> — Multiplying a string by a number will replicate the string. | |
− | Multiplying a string by a number will replicate the string. | ||
− | + | * <c>"1234" / 2 == "12"</c> — Dividing a string by a number will divide the length, then take a substring. | |
− | Dividing a string by a number will divide the length, then take a substring. | ||
− | + | * <c>1/0 == "INF" | "Infinity"</c> — 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). | |
− |
Latest revision as of 04:54, 21 February 2024
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 yields0
.
3 / null == Infinity
— In division, null acts a lot like0
.
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).