줄리아 스플랫 오퍼레이터를 통한 옵션 인자 전달 팁
개요
줄리아에서 스플랫 ...
의 용도 중 가장 빈번하게 사용되는 옵셔널 아규먼트 전달 법에 대해서 설명한다. 기본적으로 네임드튜플의 형태로 어떤 옵션에 어떤 인자를 넣을지 미리 정한 후 그 튜플에 스플랫 오퍼레이터를 취하는 방식으로 사용한다.
코드
여러 함수에게 전달
args1 = (; dims = 1)
위의 네임드튜플 args1
은 dims
라고 하는 옵셔널 아규먼트가 있는 모든 함수에 공통적으로 사용할 수 있다. 다음의 예에서 sum()
과 minimum()
은 전혀 다른 함수지만 공통적으로 dims
를 가지고 있어 함수의 종류와 관계없이 적용되었다.
julia> sum(rand(100,100); args1...)
1×100 Matrix{Float64}:
47.0704 45.7637 44.4513 48.2325 50.5745 51.9176 … 49.9548 47.6825 50.7284 50.0861 50.0168 50.5116
julia> minimum(rand(100,100); args1...)
1×100 Matrix{Float64}:
0.00702003 0.0163299 0.00665818 0.0174564 0.00589048 … 0.002967 0.00460205 0.0116248 0.0114521 0.0698425
여러 인자를 전달
args2 = (; dims = 2, rev = true)
위의 네임드튜플 args2
은 dims
에 더불어 rev
라는 옵셔널 아규먼트를 포함한다. 다음의 예에서 sort()
함수는 들어온 데이터와 관계 없이 두 가지 옵션을 잘 반영해서 계산 결과를 리턴했다.
julia> sort(rand(0:9, 3,3); args2...)
3×3 Matrix{Int64}:
9 4 4
6 5 2
8 0 0
julia> sort(rand(3,3); args2...)
3×3 Matrix{Float64}:
0.438682 0.211154 0.108741
0.72113 0.445214 0.00910109
0.971441 0.666732 0.0227372
전체코드
args1 = (; dims = 1)
sum(rand(100,100); args1...)
minimum(rand(100,100); args1...)
args2 = (; dims = 2, rev = true)
sort(rand(0:9, 3,3); args2...)
sort(rand(3,3); args2...)
환경
- OS: Windows
- julia: v1.8.3