Juliaで関数を定義するための基本的な構文は次のとおり。
function f(x, y)
x + y
end
関数は次のように簡潔な構文で記述することもできる。
f(x, y) = x + y
Juliaの関数では、評価された最後の式が関数の戻り値として返される。他の多くのプログラミング言語のように、戻り値を return
で明示することもできる。
function f(x, y)
return x + y
end
Juliaでは数式をそのまま記述できるようにする方針なので、関数によって返される値を return
で明示する必要はない。しかし、関数の戻り値をソースコード上で検索しにくくなるため、あえて明示する方が望ましい。
引数の型を明示することもできる。
function f(x::Float64, y::Float64)
x + y
end
関数の引数や戻り値のデータ型を指定することができる。
function f(x::UInt32)::Float64
return Float64(pi * x)
end
Juliaの関数は、引数を名前ではなくキーワードで識別することができる。
function f(a; b=2)
a ^ b
end
println(f(2))
println(f(2, b=3))
Julia言語の関数は可変長引数を取ることができる。
可変長引数とは、関数における引数の個数が固定ではなく、関数呼び出しごとに引数の個数を変えることができるものである。
function add(x...)
sum = 0
for i=1:length(x)
sum += x[i]
end
sum
end
# 1
println(add(1))
# 1 + 2
println(add(1, 2))
# 1 + 2 + 3
println(add(1, 2, 3))
Julia言語では、引数の型が異なれば、同じ名前であっても別の関数と見なされる。
function f(x::Int64, y::Int64)
x + y
end
function f(x::Float64, y::Float64)
x + y
end