Julia 朱莉娅:没有方法匹配重载的parse()

Julia 朱莉娅:没有方法匹配重载的parse(),julia,Julia,我对朱莉娅很陌生(就像今天一样)。我试图使用一个使用包的包AutoEnvs,但是当我运行using AutoEnvs时,我得到了这个错误 MethodError:没有与parse匹配的方法(::Type{AutomotiveDrivingModels.LaneConnection},::SubString{String}) 在AutomotiveDrivingModels包中的问题代码中,他们执行以下操作 定义struct LaneConnection 定义function Base.parse

我对朱莉娅很陌生(就像今天一样)。我试图使用一个使用包的包
AutoEnvs
,但是当我运行
using AutoEnvs
时,我得到了这个错误

MethodError:没有与parse匹配的方法(::Type{AutomotiveDrivingModels.LaneConnection},::SubString{String})

在AutomotiveDrivingModels包中的问题代码中,他们执行以下操作

  • 定义
    struct LaneConnection

  • 定义
    function Base.parse(::Type{LaneConnection},line::String)

  • 定义
    函数前进!()

  • 在循环中,
    conn=parse(LaneConnection,advance!())
    -这会引发错误

  • 我尝试在
    Base.parse
    的定义中使用
    ::键入{automotivedrivingmodes.LaneConnection}
    ,并在调用
    parse
    时添加包名,但没有帮助

    根据错误,它看起来像是
    advance!()
    正在返回
    子字符串
    -如果重载的
    parse()
    需要
    字符串
    ,这可能是问题所在吗

    我还尝试按照建议添加
    import Base:parse
    ,但没有任何帮助

    顺便说一下,这是所有的尝试和安装。注意,在特定提交时需要旧版本的AutomotiveDrivingModels

    系统:

    Mac OS Mojave 10.14(已安装的xcode命令行工具)
    Julia:v0.7.0(ngsim_环境安装的限制)

    谢谢大家!

    编辑


    在某一点上,重新启动解释器并再次尝试使用AutoEnvs
    ,解决了此错误。但是我刚刚进行了一次新的安装并更改了一些其他软件包版本,现在这个错误又回来了,重新启动不再有任何帮助。

    在master上
    Base的签名。parse
    是:

    function Base.parse(::Type{LaneConnection}, line::AbstractString)
    
    它应该像预期的那样工作。你可以在这里查一下


    在软件包管理器中执行
    add
    操作时,您可以通过向软件包名称添加
    #master
    后缀来安装此版本的软件包。

    感谢共享函数签名,它帮助我解决了此问题。由于其他限制,我不得不使用早期版本的AutomotiveDrivingModels,旧版本需要
    line::String
    。但是错误显示对
    parse()
    的调用正在传递
    SubString
    。朱莉娅是新手,所以不知道如何在不中断其他电话的情况下解决这个问题。我刚刚更新了
    parse()
    以期望
    line:AbstractString
    ,这似乎是可行的。