Replace exists-keyword with ?-operator
This commit is contained in:
parent
e7889da465
commit
4c7a23867e
25
README.md
25
README.md
@ -105,6 +105,9 @@ These are the operators ofthen called as "conditions" and most commonly used in
|
|||||||
- `!` Not unary operator. Negates the value associated with it.
|
- `!` Not unary operator. Negates the value associated with it.
|
||||||
- `!true` returns false
|
- `!true` returns false
|
||||||
- `!(true ^ true)` returns true
|
- `!(true ^ true)` returns true
|
||||||
|
- `?` Optional-exists unary operator. Checks weather the operator-wrapped value before the operator is empty or not.
|
||||||
|
- `empty?` returns false. See [`empty`](#empty)-keyword
|
||||||
|
- `optional?` returns true, if optional contains a value.
|
||||||
|
|
||||||
### Arithmetic operators
|
### Arithmetic operators
|
||||||
Arithmetic operators are operators used to do math calculations such as addition or multiplication. any integer or float -based types can be used together.
|
Arithmetic operators are operators used to do math calculations such as addition or multiplication. any integer or float -based types can be used together.
|
||||||
@ -125,7 +128,6 @@ Arithmetic operators are operators used to do math calculations such as addition
|
|||||||
- `2 % 3` returns 2
|
- `2 % 3` returns 2
|
||||||
- `6 % 2` returns 0
|
- `6 % 2` returns 0
|
||||||
|
|
||||||
|
|
||||||
### Assignment operators
|
### Assignment operators
|
||||||
Assignment operators are a special kind of operator used assign values to variables.
|
Assignment operators are a special kind of operator used assign values to variables.
|
||||||
The most basic type of assignment operator being of course `=`.
|
The most basic type of assignment operator being of course `=`.
|
||||||
@ -195,7 +197,6 @@ The following keywords are specified to execute an action.
|
|||||||
- [`continue`](#continue) skips the rest of the loop's body for a new iteration.
|
- [`continue`](#continue) skips the rest of the loop's body for a new iteration.
|
||||||
- [`unwrap`](#unwrap) unwraps an optional-type variable.
|
- [`unwrap`](#unwrap) unwraps an optional-type variable.
|
||||||
- [`some`](#some) wraps a variable into an optional.
|
- [`some`](#some) wraps a variable into an optional.
|
||||||
- [`exists`](#exists) tests weather an optional is not empty.
|
|
||||||
- [`empty`](#empty) value to set in an optional variable.
|
- [`empty`](#empty) value to set in an optional variable.
|
||||||
- [`as`](#as) casts the leftside value into the type on the rightside of this keyword.
|
- [`as`](#as) casts the leftside value into the type on the rightside of this keyword.
|
||||||
- [All operators](#operators) are also somewhat considered as keywords.
|
- [All operators](#operators) are also somewhat considered as keywords.
|
||||||
@ -359,27 +360,11 @@ let optional: i32? = some number;
|
|||||||
- Some must be followed by a variable. The variable is then wrapped into an optional and the optional is returned.
|
- Some must be followed by a variable. The variable is then wrapped into an optional and the optional is returned.
|
||||||
- There must be a space between the `some` and the variable.
|
- There must be a space between the `some` and the variable.
|
||||||
|
|
||||||
#### `exists`
|
|
||||||
Exists is a keyword that is used to check weather an optional variable contains a value or not.
|
|
||||||
```
|
|
||||||
let optional: i32? = something();
|
|
||||||
if (optional exists) {
|
|
||||||
// optional contains a value
|
|
||||||
} else {
|
|
||||||
// optional is empty.
|
|
||||||
}
|
|
||||||
|
|
||||||
let op_exists: boolean = optional exists;
|
|
||||||
```
|
|
||||||
- Unlike `unwrap` and `some`, `exists` must follow the optional value. Exists-keyword then returns the result as a boolean.
|
|
||||||
- There must be a space between the optional and `exists`
|
|
||||||
- If `exists` is after a non-optional variable, an exeption occurs.
|
|
||||||
|
|
||||||
#### `empty`
|
#### `empty`
|
||||||
Empty is the keyword used to set an optional as empty (to not contain a value).
|
Empty is the keyword used to set an optional as empty (to not contain a value).
|
||||||
```
|
```
|
||||||
let optional: i32? = empty;
|
let optional: i32? = empty;
|
||||||
if (optional exists) {
|
if (optional?) {
|
||||||
// Never executed
|
// Never executed
|
||||||
} else {
|
} else {
|
||||||
// Executed, since optional is empty
|
// Executed, since optional is empty
|
||||||
@ -395,7 +380,7 @@ As is the keyword used when you need to cast a variable to another. It will retu
|
|||||||
let long: i64 = 5;
|
let long: i64 = 5;
|
||||||
let int_opt: i32? = long as i32;
|
let int_opt: i32? = long as i32;
|
||||||
let int = 0;
|
let int = 0;
|
||||||
if (int_opt exists) {
|
if (int_opt?) {
|
||||||
int = unwrap int_opt;
|
int = unwrap int_opt;
|
||||||
} else {
|
} else {
|
||||||
// Cast failed
|
// Cast failed
|
||||||
|
Loading…
Reference in New Issue
Block a user