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) {
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
----
- 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{})
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;
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;