Julia 中的 StepRange 描述

Aak*_*san 3 julia

在 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意思?

fre*_*kre 5

StepRange(输入?StepRangeJulia REPL 以查看)的文档中:

StepRange{T, S} <: OrdinalRange{T, S}
Run Code Online (Sandbox Code Playgroud)

包含类型为 T 且间距为 类型的元素的范围S。每个元素之间的步长是常数,范围是根据 a startand stopof typeT和 a stepof type 定义的S。既不 应该T也不S应该是浮点类型。语法a:b:cb > 1ab以及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)