可変長引数
可変長引数は x... のように引数の後ろに ... をつけることでできる。
julia> function f(x...)
sum = 0
for i = 1:length(x)
sum += x[i]
end
sum
end
f (generic function with 1 method)
julia> f(3)
3
julia> f(3,2,1)
6
julia> f(3,4,5,6,7)
25
ふつうの引数と合わせて使うことができるが、可変長引数は引数リストの最後になければならない。
julia> function g(x, y...)
sum = 0
for i = 1:length(y)
sum += y[i]
end
x * sum
end
g (generic function with 1 method)
julia> g(2, 3,2,1)
12
途中に入れようとするとエラーになる。
julia> function h(x, y..., z)
sum = 0
for i = 1:length(y)
sum += y[i]
end
x * sum - z
end
ERROR: syntax: invalid "..." on non-final argument around REPL[36]:1
Stacktrace:
[1] top-level scope
@ REPL[36]:1
2つ以上の引数を可変長にすることもできない。
