运算符[]能否被重载?

Julia 中 +, -, *, / 运算符可以被重载,但 [] 能否被重载(类似C++)?
根据先前的帖子,至少 adjoint 可以,不知道对应 [] 的重载该怎么处理?

https://docs.julialang.org/en/v1/manual/interfaces/#Indexing-1

可能要自己写一个Base.getindex函数吧,记得将参数类型标明就可以了

好的,感谢楼上各位!

struct WaveFunc
    psi::Array{ComplexF64,1}
    function WaveFunc(n)
        new(Array{ComplexF64}(undef, n))
    end
end

function Base.getindex(ψ::WaveFunc, i::Int64)
    return ψ.psi[i]
end

function Base.setindex!(ψ::WaveFunc, v::ComplexF64, i::Int64)
    ψ.psi[i] = v
end

function main()
    ψ = WaveFunc(10)
    for i = 1:10
        ψ[i] = i*0.1*im
    end
    println(ψ.psi[3])
    println(ψ[3])
end

main()

京ICP备17009874号-2