51 lines
1.6 KiB
Markdown
51 lines
1.6 KiB
Markdown
|
|
---
|
|
|
|
# Preface
|
|
|
|
### Primitive Data Types
|
|
|
|
#### Null
|
|
|
|
This value type can override any other type and essentially means "nothing" not even 0, its the lack of a value whatsoever
|
|
|
|
If you open a box thats supposed to have a number in it, and you found null, the box would just be empty
|
|
|
|
#### Boolean
|
|
|
|
A boolean value is true or false, it cannot be anything else
|
|
|
|
See [Sqlite](sqlite.md#Boolean) for more information on boolean values within sqlite.
|
|
|
|
#### Integer
|
|
|
|
An integer is any valid number without a decimal, such as 1, 5, 68, 421, and even negative numbers like -42, -99999, or -0 in some cases
|
|
|
|
#### Real Number (floating point number)
|
|
|
|
A real number is any real number, such as 1, 73, 45, 0.6, 255, -9.8, 200000000, and so on, it may use a decimal value unlike integers.
|
|
|
|
We should prefer Integers over Real Numbers unless a decimal place is absolutely required:
|
|
|
|
There are resolution limitations to consider, the number of bits a computer can store in a single value is finite, a 32 bit number only has 32 bits, meaning there can only be about 2 billion and some possible combinations.
|
|
|
|
Real numbers do not change this, there are only 2 billion or so different values to a real number, so the smaller you go, the more likely you are to accidentally "snap" to a nearby number that can actually be stored,
|
|
|
|
The same thing happens when you go high enough.
|
|
|
|
Here are some good videos on the topic.
|
|
|
|
Simple [Computerphile](https://www.youtube.com/watch?v=PZRI1IfStY0)
|
|
|
|
Technical [Spanning Tree](https://www.youtube.com/watch?v=bbkcEiUjehk)
|
|
|
|
### Complex Data Types
|
|
|
|
#### Users
|
|
- UID: Integer
|
|
- isDeveloper: Boolean
|
|
|
|
---
|
|
# Structure
|
|
|
|
### Stuff, eventually
|