Require names for return values for functions with complex return types.

SVN=117346
This commit is contained in:
Rob Pike 2008-05-01 00:01:45 -07:00
parent 50cea7038b
commit 38c083c1ca
3 changed files with 15 additions and 19 deletions

View file

@ -1461,12 +1461,18 @@ explicitly list the return value or values in the return statement:
return 2;
}
func complex_f1() (float, float) {
A function may return multiple values.
The syntax of the return clause in that case is the same as
that of a parameter list; in particular, names must be provided for
the elements of the return value.
func complex_f1() (re float, im float) {
return -7.0, -4.0;
}
The second is to provide names for the return values and assign them
explicitly in the function; the return statement will then provide no
The second method to return values
is to use those names within the function as variables
to be assigned explicitly; the return statement will then provide no
values:
func complex_f2() (re float, im float) {
@ -1475,14 +1481,6 @@ values:
return;
}
It is legal to name the return values in the declaration even if the
first form of return statement is used:
func complex_f2() (re float, im float) {
return 7.0, 4.0;
}
If statements
----
@ -1817,5 +1815,3 @@ TODO
- TODO: type switch?
- TODO: words about slices
- TODO: I (gri) would like to say that sizeof(int) == sizeof(pointer), always.
- TODO: when are two types equal? consider
func iterate(f *func(int, interface{}), arg interface{})

View file

@ -4,9 +4,9 @@
package sys
func modf(a double) (double, double);
func frexp(a double) (int, double);
func ldexp(double, int) double;
func modf(a double) (x double, y double);
func frexp(a double) (e int, m double);
func ldexp(f double, e int) double;
func Inf(n int) double;
func NaN() double;

View file

@ -4,9 +4,9 @@
package sys
func modf(a double) (double, double);
func frexp(a double) (int, double);
func ldexp(double, int) double;
func modf(a double) (x double, y double);
func frexp(a double) (e int, m double);
func ldexp(f double, e int) double;
func Inf(n int) double;
func NaN() double;