mirror of
https://github.com/golang/go
synced 2024-11-22 00:34:40 -07:00
Preparation for varargs: Proposal for syntax.
DELTA=11 (7 added, 0 deleted, 4 changed) OCL=17772 CL=17804
This commit is contained in:
parent
7466b61ba4
commit
2bfa95741f
@ -4,7 +4,7 @@ The Go Programming Language Specification (DRAFT)
|
|||||||
Robert Griesemer, Rob Pike, Ken Thompson
|
Robert Griesemer, Rob Pike, Ken Thompson
|
||||||
|
|
||||||
----
|
----
|
||||||
(October 23, 2008)
|
(October 24, 2008)
|
||||||
|
|
||||||
|
|
||||||
This document is a semi-formal specification of the Go systems
|
This document is a semi-formal specification of the Go systems
|
||||||
@ -1269,7 +1269,7 @@ and result types.
|
|||||||
|
|
||||||
FunctionType = "(" [ ParameterList ] ")" [ Result ] .
|
FunctionType = "(" [ ParameterList ] ")" [ Result ] .
|
||||||
ParameterList = ParameterDecl { "," ParameterDecl } .
|
ParameterList = ParameterDecl { "," ParameterDecl } .
|
||||||
ParameterDecl = [ IdentifierList ] Type .
|
ParameterDecl = [ IdentifierList ] ( Type | "..." ) .
|
||||||
Result = Type | "(" ParameterList ")" .
|
Result = Type | "(" ParameterList ")" .
|
||||||
|
|
||||||
In ParameterList, the parameter names (IdentifierList) either must all be
|
In ParameterList, the parameter names (IdentifierList) either must all be
|
||||||
@ -1277,13 +1277,20 @@ present, or all be absent. If the parameters are named, each name stands
|
|||||||
for one parameter of the specified type. If the parameters are unnamed, each
|
for one parameter of the specified type. If the parameters are unnamed, each
|
||||||
type stands for one parameter of that type.
|
type stands for one parameter of that type.
|
||||||
|
|
||||||
|
For the last incoming parameter only, instead of a parameter type one
|
||||||
|
may write "...". The ellipsis indicates that the last parameter stands
|
||||||
|
for an arbitrary number of additional arguments of any type (including
|
||||||
|
no additional arguments). If the parameters are named, the identifier
|
||||||
|
list immediately preceding "..." must contain only one identifier (the
|
||||||
|
name of the last parameter).
|
||||||
|
|
||||||
()
|
()
|
||||||
(x int)
|
(x int)
|
||||||
() int
|
() int
|
||||||
(string)
|
(string, float, ...)
|
||||||
(a, b int, z float) bool
|
(a, b int, z float) bool
|
||||||
(a, b int, z float) (bool)
|
(a, b int, z float) (bool)
|
||||||
(a, b int, z float) (success bool)
|
(a, b int, z float, opt ...) (success bool)
|
||||||
(int, int, float) (float, *[]int)
|
(int, int, float) (float, *[]int)
|
||||||
|
|
||||||
A variable can hold only a pointer to a function, not a function value.
|
A variable can hold only a pointer to a function, not a function value.
|
||||||
|
Loading…
Reference in New Issue
Block a user