【问题标题】:How to resolve "Warning: Deprecated syntax `parametric method syntax Base.show{S}" in Julia如何在 Julia 中解决“警告:不推荐使用的语法`参数方法语法 Base.show{S}”
【发布时间】:2018-10-10 16:19:49
【问题描述】:

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

【问题讨论】:

    标签: julia


    【解决方案1】:

    正确的签名是:

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

    【讨论】:

    • 谢谢!它早些时候显示了这一点,然后出于某种原因将今天早上的建议更改为我上面显示的内容。也许这是一个错误,或者我可能只是无能。
    • 很难说 - 我前段时间搬到了 Julia 1.0(但 Julia 0.7 与它兼容,所以我知道答案是什么 :))。
    • 查看我的另一个问题的链接:stackoverflow.com/questions/52746868/…
    猜你喜欢
    • 2015-10-26
    • 2014-04-27
    • 2022-07-05
    • 2017-03-26
    • 1970-01-01
    • 2021-04-03
    • 1970-01-01
    • 2020-02-25
    • 1970-01-01
    相关资源
    最近更新 更多