runtime(doc): Fill in a few details regarding :enums (#14349)
- Mention the support of eval() for enumeration values. - Clarify the extent of immutability for enumeration values. - Specify the requirements for class methods to meet for class variable initialisation and their use in nested functions and lambda expressions. - Remove a duplicate sentence that describes how to access parent class methods in derivative classes (see another "copy" two paragraphs below). Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
@ -1,4 +1,4 @@
|
|||||||
*builtin.txt* For Vim version 9.1. Last change: 2024 Mar 29
|
*builtin.txt* For Vim version 9.1. Last change: 2024 Apr 03
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@ -2307,7 +2307,8 @@ eval({string}) Evaluate {string} and return the result. Especially useful to
|
|||||||
turn the result of |string()| back into the original value.
|
turn the result of |string()| back into the original value.
|
||||||
This works for Numbers, Floats, Strings, Blobs and composites
|
This works for Numbers, Floats, Strings, Blobs and composites
|
||||||
of them. Also works for |Funcref|s that refer to existing
|
of them. Also works for |Funcref|s that refer to existing
|
||||||
functions.
|
functions. In |Vim9| script, it can be used to obtain |enum|
|
||||||
|
values from their fully qualified names.
|
||||||
|
|
||||||
Can also be used as a |method|: >
|
Can also be used as a |method|: >
|
||||||
argv->join()->eval()
|
argv->join()->eval()
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
*vim9class.txt* For Vim version 9.1. Last change: 2024 Mar 28
|
*vim9class.txt* For Vim version 9.1. Last change: 2024 Apr 04
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@ -328,10 +328,27 @@ variables but they have no access to the object variables, they cannot use the
|
|||||||
enddef
|
enddef
|
||||||
endclass
|
endclass
|
||||||
|
|
||||||
Inside the class the class method can be called by name directly, outside the
|
Inside the class, the class method can be called by name directly, outside the
|
||||||
class the class name must be prefixed: `OtherThing.ClearTotalSize()`. To use
|
class, the class name must be prefixed: `OtherThing.ClearTotalSize()`. Also,
|
||||||
a class method from a parent class in a child class, the class name must be
|
the name prefix must be used for public class methods in the special contexts
|
||||||
prefixed.
|
of class variable initializers and of lambda expressions and nested functions:
|
||||||
|
>
|
||||||
|
class OtherThing
|
||||||
|
static var name: string = OtherThing.GiveName()
|
||||||
|
|
||||||
|
static def GiveName(): string
|
||||||
|
def DoGiveName(): string
|
||||||
|
return OtherThing.NameAny()
|
||||||
|
enddef
|
||||||
|
|
||||||
|
return DoGiveName()
|
||||||
|
enddef
|
||||||
|
|
||||||
|
static def NameAny(): string
|
||||||
|
return "any"
|
||||||
|
enddef
|
||||||
|
endclass
|
||||||
|
<
|
||||||
|
|
||||||
Just like object methods the access can be made protected by using an
|
Just like object methods the access can be made protected by using an
|
||||||
underscore as the first character in the method name: >
|
underscore as the first character in the method name: >
|
||||||
@ -972,8 +989,8 @@ The following example shows an enum with object variables and methods: >
|
|||||||
echo Planet.Earth.has_rings
|
echo Planet.Earth.has_rings
|
||||||
<
|
<
|
||||||
*E1421* *E1423* *E1424* *E1425*
|
*E1421* *E1423* *E1424* *E1425*
|
||||||
Enums and their values are immutable. They cannot be modified after
|
Enums and their values are immutable. They cannot be utilized as numerical or
|
||||||
declaration and cannot be utilized as numerical or string types.
|
string types. Enum values can declare mutable instance variables.
|
||||||
|
|
||||||
*enum-name*
|
*enum-name*
|
||||||
Each enum value object has a "name" instance variable which contains the name
|
Each enum value object has a "name" instance variable which contains the name
|
||||||
|
|||||||
Reference in New Issue
Block a user