mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
doc: document new static type methods
This commit is contained in:
parent
21d9730cde
commit
d52bac8ee9
14
doc/docs.md
14
doc/docs.md
@ -97,6 +97,7 @@ by using any of the following commands in a terminal:
|
||||
* [Trailing struct literal arguments](#trailing-struct-literal-arguments)
|
||||
* [Access modifiers](#access-modifiers)
|
||||
* [Anonymous structs](#anonymous-structs)
|
||||
* [Static type methods](#static-type-methods)
|
||||
* [[noinit] structs](#noinit-structs)
|
||||
* [Methods](#methods)
|
||||
* [Embedded structs](#embedded-structs)
|
||||
@ -2431,6 +2432,19 @@ assert book.author.name == 'Samantha Black'
|
||||
assert book.author.age == 24
|
||||
```
|
||||
|
||||
### Static type methods
|
||||
|
||||
V now supports static type methods like `User.new()`. These are defined on a struct via
|
||||
`fn [Type name].[function name] and allow to organize all functions related to a struct:
|
||||
|
||||
```v oksyntax
|
||||
struct User { }
|
||||
|
||||
fn User.new() User { return User{} }
|
||||
|
||||
user := User.new()
|
||||
```
|
||||
|
||||
### `[noinit]` structs
|
||||
|
||||
V supports `[noinit]` structs, which are structs that cannot be initialised outside the module
|
||||
|
@ -382,7 +382,7 @@ pub fn (x Expr) str() string {
|
||||
return '${x.name}(${sargs})${propagate_suffix}'
|
||||
}
|
||||
if x.name.contains('__static__') {
|
||||
return '${x.mod}.${x.name}(${sargs})${propagate_suffix}1'
|
||||
return '${x.mod}.${x.name}(${sargs})${propagate_suffix}'
|
||||
}
|
||||
return '${x.mod}.${x.name}(${sargs})${propagate_suffix}'
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user