]> Cypherpunks repositories - gostls13.git/commitdiff
Preparation for varargs: Proposal for syntax.
authorRobert Griesemer <gri@golang.org>
Fri, 24 Oct 2008 20:13:12 +0000 (13:13 -0700)
committerRobert Griesemer <gri@golang.org>
Fri, 24 Oct 2008 20:13:12 +0000 (13:13 -0700)
DELTA=11  (7 added, 0 deleted, 4 changed)
OCL=17772
CL=17804

doc/go_spec.txt

index 1e57b67a122074c44fdcea55de358f9a34afe882..0e2f67fc580a7d4caad4a73e702ec210269330d7 100644 (file)
@@ -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.