Commit 38c083c1 authored by Rob Pike's avatar Rob Pike

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

SVN=117346
parent 50cea703
......@@ -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{})
......@@ -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;
......
......@@ -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;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment