mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
docs: add the topics Hoistings and Closures (#12021)
This commit is contained in:
parent
e3d379a1eb
commit
6cffcf515a
@ -65,6 +65,7 @@ For more details and troubleshooting, please visit the [vab GitHub repository](h
|
||||
* [Comments](#comments)
|
||||
* [Functions](#functions)
|
||||
* [Returning multiple values](#returning-multiple-values)
|
||||
* [Hoistings](#hoistings)
|
||||
* [Symbol visibility](#symbol-visibility)
|
||||
* [Variables](#variables)
|
||||
* [V types](#v-types)
|
||||
@ -95,6 +96,7 @@ For more details and troubleshooting, please visit the [vab GitHub repository](h
|
||||
* [Mutable arguments](#mutable-arguments)
|
||||
* [Variable number of arguments](#variable-number-of-arguments)
|
||||
* [Anonymous & higher-order functions](#anonymous--higher-order-functions)
|
||||
* [Closures](#closures)
|
||||
* [References](#references)
|
||||
* [Constants](#constants)
|
||||
* [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.
|
||||
This simplifies the code and improves maintainability and readability.
|
||||
|
||||
### Hoistings
|
||||
|
||||
Functions can be used before their declaration:
|
||||
`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
|
||||
@ -2137,6 +2141,8 @@ fn main() {
|
||||
}
|
||||
```
|
||||
|
||||
### Closures
|
||||
|
||||
V supports closures too.
|
||||
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.
|
||||
|
Loading…
Reference in New Issue
Block a user