在朱莉亚重载子阵列运算符

Ter*_*nus 1 operators julia

我知道在julia中创建二元运算符重载很容易,例如

+(x,y)= x*y

我也知道a [i]是getindex和setindex的缩写!

我想知道如何重载子数组运算符,例如

一个[I,J,:,3:]

我相信这只是一个被调用的函数,但我无法找到它的名字

Rez*_*lan 5

@which 宏有助于找到正确的重载方法:

julia> sample=rand(3,4,5);

julia> @which(sample[1,1,1])
getindex(A::Array{T,N}, i1::Real, i2::Real, I::Real...) at array.jl:283

julia> @which(sample[1,1,:])
getindex(A::AbstractArray{T,N}, I...) at abstractarray.jl:487
Run Code Online (Sandbox Code Playgroud)