mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
doc: mention module shadowing (#7051)
This commit is contained in:
parent
5b6eb7b2c9
commit
4f540e6ac3
14
doc/docs.md
14
doc/docs.md
@ -297,11 +297,12 @@ In development mode the compiler will warn you that you haven't used the variabl
|
|||||||
In production mode (enabled by passing the `-prod` flag to v – `v -prod foo.v`)
|
In production mode (enabled by passing the `-prod` flag to v – `v -prod foo.v`)
|
||||||
it will not compile at all (like in Go).
|
it will not compile at all (like in Go).
|
||||||
|
|
||||||
|
<!-- this should be `failcompile`, but it compiles -->
|
||||||
```v
|
```v
|
||||||
fn main() {
|
fn main() {
|
||||||
a := 10
|
a := 10
|
||||||
if true {
|
if true {
|
||||||
a := 20 // error: shadowed variable
|
a := 20 // error: redefinition of `a`
|
||||||
}
|
}
|
||||||
// warning: unused variable `a`
|
// warning: unused variable `a`
|
||||||
}
|
}
|
||||||
@ -310,6 +311,17 @@ fn main() {
|
|||||||
Unlike most languages, variable shadowing is not allowed. Declaring a variable with a name
|
Unlike most languages, variable shadowing is not allowed. Declaring a variable with a name
|
||||||
that is already used in a parent scope will cause a compilation error.
|
that is already used in a parent scope will cause a compilation error.
|
||||||
|
|
||||||
|
You can shadow imported modules though, as it is very useful in some situations:
|
||||||
|
```v ignore
|
||||||
|
import ui
|
||||||
|
import gg
|
||||||
|
|
||||||
|
fn draw(ctx &gg.Context) {
|
||||||
|
gg := ctx.parent.get_ui().gg
|
||||||
|
gg.draw_rect(...)
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
## Types
|
## Types
|
||||||
|
|
||||||
### Primitive types
|
### Primitive types
|
||||||
|
@ -24,14 +24,14 @@ The code is available <a href='https://github.com/vlang/v/tree/master/tutorials/
|
|||||||
|
|
||||||
```
|
```
|
||||||
wget https://github.com/vlang/v/releases/latest/download/linux.zip
|
wget https://github.com/vlang/v/releases/latest/download/linux.zip
|
||||||
unzip linux.zip
|
unzip v_linux.zip
|
||||||
cd v
|
cd v
|
||||||
sudo ./v symlink
|
sudo ./v symlink
|
||||||
```
|
```
|
||||||
|
|
||||||
Now V should be globally available on your system.
|
Now V should be globally available on your system.
|
||||||
|
|
||||||
> On macOS use `macos.zip`, on Windows - `windows.zip`.
|
> On macOS use `v_macos.zip`, on Windows - `v_windows.zip`.
|
||||||
If you use a BSD system, Solaris, Android, or simply want to install V
|
If you use a BSD system, Solaris, Android, or simply want to install V
|
||||||
from source, follow the simple instructions here:
|
from source, follow the simple instructions here:
|
||||||
https://github.com/vlang/v#installing-v-from-source
|
https://github.com/vlang/v#installing-v-from-source
|
||||||
|
Loading…
Reference in New Issue
Block a user