docs: add the topics Hoistings and Closures (#12021)
parent
e3d379a1eb
commit
6cffcf515a
|
@ -65,6 +65,7 @@ For more details and troubleshooting, please visit the [vab GitHub repository](h
|
||||||
* [Comments](#comments)
|
* [Comments](#comments)
|
||||||
* [Functions](#functions)
|
* [Functions](#functions)
|
||||||
* [Returning multiple values](#returning-multiple-values)
|
* [Returning multiple values](#returning-multiple-values)
|
||||||
|
* [Hoistings](#hoistings)
|
||||||
* [Symbol visibility](#symbol-visibility)
|
* [Symbol visibility](#symbol-visibility)
|
||||||
* [Variables](#variables)
|
* [Variables](#variables)
|
||||||
* [V types](#v-types)
|
* [V types](#v-types)
|
||||||
|
@ -95,6 +96,7 @@ For more details and troubleshooting, please visit the [vab GitHub repository](h
|
||||||
* [Mutable arguments](#mutable-arguments)
|
* [Mutable arguments](#mutable-arguments)
|
||||||
* [Variable number of arguments](#variable-number-of-arguments)
|
* [Variable number of arguments](#variable-number-of-arguments)
|
||||||
* [Anonymous & higher-order functions](#anonymous--higher-order-functions)
|
* [Anonymous & higher-order functions](#anonymous--higher-order-functions)
|
||||||
|
* [Closures](#closures)
|
||||||
* [References](#references)
|
* [References](#references)
|
||||||
* [Constants](#constants)
|
* [Constants](#constants)
|
||||||
* [Builtin functions](#builtin-functions)
|
* [Builtin functions](#builtin-functions)
|
||||||
|
@ -264,6 +266,8 @@ Again, the type comes after the argument's name.
|
||||||
Just like in Go and C, functions cannot be overloaded.
|
Just like in Go and C, functions cannot be overloaded.
|
||||||
This simplifies the code and improves maintainability and readability.
|
This simplifies the code and improves maintainability and readability.
|
||||||
|
|
||||||
|
### Hoistings
|
||||||
|
|
||||||
Functions can be used before their declaration:
|
Functions can be used before their declaration:
|
||||||
`add` and `sub` are declared after `main`, but can still be called from `main`.
|
`add` and `sub` are declared after `main`, but can still be called from `main`.
|
||||||
This is true for all declarations in V and eliminates the need for header files
|
This is true for all declarations in V and eliminates the need for header files
|
||||||
|
@ -2137,6 +2141,8 @@ fn main() {
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Closures
|
||||||
|
|
||||||
V supports closures too.
|
V supports closures too.
|
||||||
This means that anonymous functions can inherit variables from the scope they were created in.
|
This means that anonymous functions can inherit variables from the scope they were created in.
|
||||||
They must do so explicitly by listing all variables that are inherited.
|
They must do so explicitly by listing all variables that are inherited.
|
||||||
|
|
Loading…
Reference in New Issue