我的问题是如何在 Julia 的某个类中重载某些方法?
换句话说,假设我有一个类的以下定义:
type Sometype
prop::String
setValue::Function
# constructor
function Sometype()
this = new ()
this.prop = ""
####### v1 #######
this.setValue = function(v::Real)
println("Scalar Version was Invoked!")
# operations on scalar...
# ...
end
####### v2 #######
this.setValue = function(v::Vector{Real})
println("Vector Version was Invoked!")
# operations on vector...
# ...
end
####### v3 #######
this.setValue = function(v::Matrix{Real})
println("Matrix Version was Invoked!")
# operations on Matrix...
# ...
end
return this
end
end
所以当我在我的主要代码中说:
st = Sometype()
st.setValue(val)
根据val
是标量、向量还是矩阵,它会调用相应版本的setvalue
方法。现在,使用上面的定义,它会覆盖setvalue
最后一个(在这种情况下为矩阵版本)的定义。