如何在Julia中解决“警告:不赞成使用的语法`parametermethods语法Base.show {S}”

时间:2018-10-10 16:19:50

标签: julia

我正在将我的代码从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”部分,但这不能解决问题。

1 个答案:

答案 0 :(得分:2)

正确的签名是:

Base.show(io::IO, m::MIME{Symbol("text/plain")}, scvec::Vector{StatesContainer{S}}) where S