1
0
mirror of https://github.com/golang/go synced 2024-11-25 09:07:58 -07:00

- receiver ident may be optional

R=r
DELTA=5  (2 added, 0 deleted, 3 changed)
OCL=21508
CL=21510
This commit is contained in:
Robert Griesemer 2008-12-18 13:29:11 -08:00
parent ab0d2582b4
commit 6ccca61510

View File

@ -3,7 +3,7 @@ The Go Programming Language Specification (DRAFT)
Robert Griesemer, Rob Pike, Ken Thompson
(December 17, 2008)
(December 18, 2008)
----
@ -3045,10 +3045,12 @@ as a type name, or as a pointer to a type name. The type specified by the
type name is called ``receiver base type''. The receiver base type must be a
type declared in the current file, and it must not be a pointer type.
The method is said to be ``bound'' to the receiver base type; specifically
it is declared within the scope of that type (§Type declarations).
it is declared within the scope of that type (§Type declarations). If the
receiver value is not needed inside the method, its identifier may be omitted
in the declaration.
MethodDecl = "func" Receiver identifier FunctionType [ Block ] .
Receiver = "(" identifier [ "*" ] TypeName ")" .
Receiver = "(" [ identifier ] [ "*" ] TypeName ")" .
All methods bound to a receiver base type must have the same receiver type:
Either all receiver types are pointers to the base type or they are the base