代码之家  ›  专栏  ›  技术社区  ›  kilgoretrout

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

  •  1
  • kilgoretrout  · 技术社区  · 6 年前

    AutoEnvs 使用 AutomotiveDrivingModels using AutoEnvs

    MethodError: no method matching parse(::Type{AutomotiveDrivingModels.LaneConnection}, ::SubString{String})

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

    1. 定义 struct LaneConnection

    2. function Base.parse(::Type{LaneConnection}, line::String)

    3. function advance!()

    4. conn = parse(LaneConnection, advance!()) -这会抛出错误

    我试过用 ::Type{AutomotiveDrivingModels.LaneConnection} 在定义中 Base.parse 以及在调用 parse

    从错误来看 advance!() SubString -如果车辆超载,这会是问题吗 parse() String ?

    我还尝试添加 import Base: parse here 但没用。

    ngsim_env . 注意, the installation instructions 在特定提交时需要旧版本的AutomotiveDrivingModels。

    Mac OS Mojave 10.14(已安装xcode命令行工具)
    Julia:v0.7.0(ngsimèu env安装限制)

    谢谢您!

    编辑

    有一次重启解释器并尝试 再次解决此错误。但我只是做了一个新的安装和改变了一些其他软件包版本,现在这个错误回来了,重新启动没有帮助了。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Bogumił Kamiński    6 年前

    关于主人的签名 Base.parse 是:

    function Base.parse(::Type{LaneConnection}, line::AbstractString)
    

    它应该像预期的那样工作。你可以在这里查 https://github.com/sisl/AutomotiveDrivingModels.jl/blob/master/src/2d/roadway/roadways.jl#L45 .

    您可以通过添加 #master add 在包管理器中。