関数
定義
Thirdではスクリプトの中で関数を定義できます。
third
fn add(a, b) {
a + b
}fn add(a, b) {
a + b
}ブロックの中で最後に評価された式が返り値となります。ブロックの途中で処理を中断したい場合、returnを用います。
third
fn is_one(n) {
if n == 1 {
"Yes"
} else {
"No"
}
}
assert is_one(1) == "Yes";
fn div_2(n) {
loop {
if n % 2 == 0 {
n /= 2;
} else {
return n;
}
}
}
assert div_2(12) == 3;fn is_one(n) {
if n == 1 {
"Yes"
} else {
"No"
}
}
assert is_one(1) == "Yes";
fn div_2(n) {
loop {
if n % 2 == 0 {
n /= 2;
} else {
return n;
}
}
}
assert div_2(12) == 3;再帰的な関数を定義することもできなす。
third
fn fib(n) {
if n <= 2 {
1
} else {
fib(n - 2) + fib(n - 1)
}
}
assert fib(9) == 34;fn fib(n) {
if n <= 2 {
1
} else {
fib(n - 2) + fib(n - 1)
}
}
assert fib(9) == 34;呼び出し
組み込み関数、スクリプト関数ともに同様の方法で呼び出しが可能です。
third
func_without_args();
func_with_args(1, 2);func_without_args();
func_with_args(1, 2);