From 5767576deb8fb63d07ea0f7866385d76d3af996f Mon Sep 17 00:00:00 2001 From: Alexander Medvednikov Date: Sat, 16 May 2020 15:19:48 +0200 Subject: [PATCH] docs: structs: clean up --- doc/docs.md | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/doc/docs.md b/doc/docs.md index 328263528d..d913af9e80 100644 --- a/doc/docs.md +++ b/doc/docs.md @@ -618,6 +618,8 @@ p := Point{ println(p.x) // Struct fields are accessed using a dot ``` +

 

+ Structs are allocated on the stack. To allocate a struct on the heap and get a reference to it, use the `&` prefix: @@ -633,6 +635,7 @@ References are similar to Go pointers and C++ references.

 

+V doesn't allow subclassing, but it supports embedded structs: ```v // TODO: this will be implemented later @@ -648,15 +651,15 @@ button.set_pos(x, y) button.widget.set_pos(x,y) ``` -V doesn't allow subclassing, but it supports embedded structs. -

 

+ ```v struct Foo { - pos int = -1 - x int // x is 0 by default + n int // n is 0 by default + pos int = -1 // custom default value } ``` + All struct fields are zeroed by default during the creation of the struct. But it's also possible to define custom default values. ## Access modifiers