mirror of
https://github.com/golang/go
synced 2024-11-22 00:24:41 -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
|
||||
|
||||
----
|
||||
(October 23, 2008)
|
||||
(October 24, 2008)
|
||||
|
||||
|
||||
This document is a semi-formal specification of the Go systems
|
||||
@ -1269,7 +1269,7 @@ and result types.
|
||||
|
||||
FunctionType = "(" [ ParameterList ] ")" [ Result ] .
|
||||
ParameterList = ParameterDecl { "," ParameterDecl } .
|
||||
ParameterDecl = [ IdentifierList ] Type .
|
||||
ParameterDecl = [ IdentifierList ] ( Type | "..." ) .
|
||||
Result = Type | "(" ParameterList ")" .
|
||||
|
||||
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
|
||||
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)
|
||||
() int
|
||||
(string)
|
||||
(string, float, ...)
|
||||
(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)
|
||||
|
||||
A variable can hold only a pointer to a function, not a function value.
|
||||
|
Loading…
Reference in New Issue
Block a user