用julia绘制浮点数组



我有以下代码

using Plots
function test()::nothing
A::Array{Float64,1} = rand(Float64,100)
plot(A)
end

我在julia像这个一样运行

julia> include("main.jl")
test (generic function with 1 method)
julia> test()
ERROR: MethodError: First argument to `convert` must be a Type, got nothing
Stacktrace:
[1] test() at /path/to/main.jl:85
[2] top-level scope at REPL[2]:1

为什么我会得到错误First argument to convert must be a Type, got nothing

这个问题与您在注释中使用nothing有关,但正确的类型是Nothing(注意大写N(。nothing是一个对象,Nothing是这个对象的一种类型。

所以你应该使用类似的东西

function test()::Nothing
A::Array{Float64,1} = rand(Float64, 100)
display(plot(A))
nothing
end

注意,我必须添加nothing作为返回值,并显式添加display来显示实际的绘图。

但是,老实说,主要问题不是Nothing,而是过度专业化。函数中的类型注释不会加快计算速度,您应该仅在真正需要时使用它们,例如在多重调度中。

习语代码看起来像这个

function test()
A = rand(100)
plot(A)
end

注意,我删除了rand中所有额外的注释和不必要的Float64,因为它是默认值。

相关内容

  • 没有找到相关文章

最新更新