title: “FUNC” author: “laplante@plcb.ca” date: 2023-05-02 version: “1.0.0” section: “1g”
In GoWeb, functions can be declared in several ways:
func id() { ... }
func id(positional parameter; named parameter) { ... }
func id(positional parameter ...vararg positional; named parameter ...vararg named) { ... }
func id(positional parameter ...vararg positional; named parameter = default value ...vararg named) { ... }
return
statement.null
.func f(; j = 5) { ... }
This makes functions flexible, supporting positional arguments, named arguments, default values, and variable-length parameters.
res={{
func f() {
"pierre";
}
f();
}}
res=pierre
res={{
func f(a) {
"pierre"; " "; a;
}
f("laplante");
}}
res=pierre laplante
res={{
func f(a; b) {
"pierre"; " "; a; " "; b;
}
f(b:"1962", "laplante");
}}
res=pierre laplante 1962
res={{
func g(a; b) {
"g="; a; b;
}
func f(a; b) {
"pierre"; " "; a; " "; b;
g(a, b:b);
}
f(b:"1962", "laplante");
}}
res=pierre laplante 1962g=laplante1962
res={{
func g(a; b) {
"g="; a; b;
}
func f(a ...aa; b ...bb) {
"pierre"; " "; a; " "; b;
g(aa, b:bb);
}
f(b:"1962", "laplante", "05", "06", nb:3, first:28);
}}
res=pierre laplante 1962g=["05","06"]{"first":28,"nb":3}
res={{
func f() {
"a=";
return;
}
f();
}}.
res=a=.
res={{
func f(; j=5) {
"j="; j;
return;
}
f();
}}.
res=j=5.
res={{
func f() {
return;
}
func g() {
}
a := f();
a;
a = g();
a;
}}.
res=.
res={{
func f(; j) {
"j="; j;
return;
}
func g(; j=7) {
"j="; j;
return;
}
a := f(j:5);
a;
a := g();
a;
}}.
res=j=5j=7.