我正在将我的代码从Julia v0.6更新到v0.7。在运行时出现以下错误:
Warning: Deprecated syntax `parametric method syntax Base.show{S (io::IO, m::Base.MIME("text/plain"), scvec::Vector{StatesContainer{S}}) around /Users/logankilpatrick/.julia/packages/SHERPA/A8APz/src/utils/states_containers.jl:74.
改为使用Base.show(io::IO, m::Base.MIME("text/plain"), scvec::Vector{StatesContainer{S}}) where S
。
所以我执行以下操作:
原始代码:Base.show{S}(io::IO, m::Base.MIME("text/plain"), scvec::Vector{StatesContainer{S}})
更新后的代码:function Base.show(io::IO, m::Base.MIME("text/plain"), scvec::Vector{StatesContainer{S}}) where S
我仍然收到以下错误:ERROR: LoadError: LoadError: ArgumentError: invalid type for argument m in method definition for show at /Users/logankilpatrick/.julia/packages/SHERPA/A8APz/src/utils/states_containers.jl:74
第74行显示的所有内容是:println(io, typeof(scvec))
有关如何解决此问题的任何建议?
谢谢!
注意:我尝试注释掉第74行的内容,然后重新运行它。然后,它说第76行有问题!
我还尝试摆脱了函数末尾的“ where S”部分,但这不能解决问题。
答案 0 :(得分:2)
正确的签名是:
Base.show(io::IO, m::MIME{Symbol("text/plain")}, scvec::Vector{StatesContainer{S}}) where S