Core Features
Data types
All built-in data types in Cambo.
Cambo features a static and strong typing system, in which all types are resolved and verified at compile time. At the same time, variables are bound to specific types, meaning that any operation that violates type constraints is rejected and explicit casting between different types is required.
Primitive data types
Here is a table of all primitive data types.
| Type | Keyword | Size | Range |
|---|---|---|---|
| 08-bit singed integer | int8 | 8 bits | [-128, 127] |
| 16-bit singed integer | int16 | 16 bits | [32 768, 32 767] |
| 32-bit singed integer | int32 | 32 bits | [-2 147 483 648, 2 147 483 647] |
| 64-bit singed integer | int64 | 64 bits | [-9 223 372 036 854 775 808, 9 223 372 036 854 775 807] |
| 128-bit singed integer | int128 | 128 bits | [-170 141 183 460 469 231 731 687 303 715 884 105 728, 170 141 183 460 469 231 731 687 303 715 884 105 727] |
| 08-bit unsinged integer | uint8 | 8 bits | [0, 255] |
| 16-bit unsinged integer | uint16 | 16 bits | [0, 65 535] |
| 32-bit unsinged integer | uint32 | 32 bits | [0, 4 294 967 295] |
| 64-bit unsinged integer | uint64 | 64 bits | [0, 18 446 744 073 709 551 615] |
| 128-bit unsinged integer | uint128 | 128 bits | [0, 340 282 366 920 938 463 463 374 607 431 768 211 455] |
| 16-bit floating point | float16 | 16 bits | [-6.6e+04, -6.0e-08]∪[6.0e-08, 6.6e+04] |
| 32-bit floating point | float32 | 32 bits | [-3.4e+38, -1.4e-45]∪[1.4e-45, 3.4e+38] |
| 64-bit floating point | float64 | 64 bits | [-1.8e+308, -4.9e-324]∪[4.9e-324, 1.8e+308] |
| 80-bit floating point | float80 | 80 bits | [-1.2e+4932, -3.6e-4951]∪[3.6e-4951, 1.2e+4932] |
| 128-bit floating point | float128 | 128 bits | [-1.2e+4932, -6.5e-4966]∪[6.5e-4966, 1.2e+4932] |
| UTF-8 character | char | 8 bits | [U+0000, U+007F] |
| UTF-16 character | char16 | 16 bits | [U+0000, U+FFFF] |
| UTF-32 character | char32 | 32 bits | [U+0000, U+10FFFF] |
| boolean | bool | 8 bits | {false, true} |
| void | void | void | void |
There are two additional keywords
int: 32-bit integer type, same asint32float: 32-bit floating-point type, same asfloat32
Special built-in data types
| Type | Struct |
|---|---|
| String | String |
| Regular Expression | Regex |
| Complex Number | Complex |
| Dynamic List/Array | List |
| Dictionary | Dict |
| Sets | Set |