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.
|
||||
- `!true` returns false
|
||||
- `!(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 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
|
||||
- `6 % 2` returns 0
|
||||
|
||||
|
||||
### Assignment operators
|
||||
Assignment operators are a special kind of operator used assign values to variables.
|
||||
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.
|
||||
- [`unwrap`](#unwrap) unwraps an optional-type variable.
|
||||
- [`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.
|
||||
- [`as`](#as) casts the leftside value into the type on the rightside of this keyword.
|
||||
- [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.
|
||||
- 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 is the keyword used to set an optional as empty (to not contain a value).
|
||||
```
|
||||
let optional: i32? = empty;
|
||||
if (optional exists) {
|
||||
if (optional?) {
|
||||
// Never executed
|
||||
} else {
|
||||
// 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 int_opt: i32? = long as i32;
|
||||
let int = 0;
|
||||
if (int_opt exists) {
|
||||
if (int_opt?) {
|
||||
int = unwrap int_opt;
|
||||
} else {
|
||||
// Cast failed
|
||||
|
Loading…
Reference in New Issue
Block a user