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

时间:2018-10-20 01:25:01

标签: julia

我对朱莉娅(例如今天)很陌生。我正在尝试使用使用AutomotiveDrivingModels软件包的软件包AutoEnvs,但是当我运行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可能是问题吗?

我还尝试根据推荐的here添加import Base: parse,但没有帮助。

顺便说一下,这就是尝试安装ngsim_env的全部。请注意,the installation instructions在特定提交时需要较旧版本的AutomotiveDrivingModels。

系统:

Mac OS Mojave 10.14(已安装的xcode命令行工具)
朱莉娅:v0.7.0(对ngsim_env安装的限制)

谢谢!

编辑

有一次重新启动解释器并再次尝试using AutoEnvs解决了该错误。但是我只需要进行全新安装并更改了一些其他软件包版本,现在此错误又回来了,重新启动不再有用。

1 个答案:

答案 0 :(得分:1)

在母版上def user_params puts "user_params runs" unless params["user"].blank? puts "main state user_params" params.fetch(:user, {:email => params[:EMAIL], :password => params[:PASSWORD]}).permit(:email, :password) end puts "unless state in user_params" params.fetch(:user, {"email"=>params[:EMAIL], "password"=>params[:PASSWORD]}).permit(:email, :password) end 的签名是:

Base.parse

,它应该可以正常工作。您可以在https://github.com/sisl/AutomotiveDrivingModels.jl/blob/master/src/2d/roadway/roadways.jl#L45这里进行检查。

在软件包管理器中执行function Base.parse(::Type{LaneConnection}, line::AbstractString) 时,可以通过在软件包名称后添加#master后缀来安装此版本的软件包。