可変長引数

2026年3月16日
1 分

可変長引数は 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つ以上の引数を可変長にすることもできない。