在 julia 编程中工作时,为了创建一个数组而不是使用a=[1:1:20...]i used a=[1:1:20],它创建了一个数组,说"1-element Array{StepRange{Int64,Int64},1}". 这"1-element Array{StepRange{Int64,Int64},1}"是什么意思?什么StepRange意思?
从StepRange(输入?StepRangeJulia REPL 以查看)的文档中:
Run Code Online (Sandbox Code Playgroud)StepRange{T, S} <: OrdinalRange{T, S}包含类型为 T 且间距为 类型的元素的范围
S。每个元素之间的步长是常数,范围是根据 astartandstopof typeT和 astepof type 定义的S。既不 应该T也不S应该是浮点类型。语法a:b:c与b > 1和a,b以及c所有整数创建StepRange。
所以,例如
julia> typeof(1:1:20)
StepRange{Int64,Int64}
Run Code Online (Sandbox Code Playgroud)
和
julia> [1:1:20]
1-element Array{StepRange{Int64,Int64},1}:
1:1:20
Run Code Online (Sandbox Code Playgroud)
因此构造一个Vector(1D Array) 包含一个StepRange。如果您想实现懒惰,StepRange我建议您collect(1:1:20)不要使用 splatting ( [1:1:20...])。
您可以访问start/ step/stop一的领域StepRange使用:
julia> r = 1:1:20
julia> r.start
1
julia> r.stop
20
julia> r.step
1
Run Code Online (Sandbox Code Playgroud)