Из документации StepRange
(введите ?StepRange
в REPL Julia, чтобы увидеть это):
StepRange{T, S} <: OrdinalRange{T, S}
Диапазоны с элементами типа T с интервалом типа S
.Шаг между каждым элементом является постоянным, и диапазон определяется в терминах start
и stop
типа T
и step
типа S
.Ни T
, ни S
не должны быть типами с плавающей запятой.Синтаксис a:b:c
с b > 1
и a
, b
и c
всеми целыми числами создает StepRange
.
Так, например,
julia> typeof(1:1:20)
StepRange{Int64,Int64}
и
julia> [1:1:20]
1-element Array{StepRange{Int64,Int64},1}:
1:1:20
, таким образом, составляет Vector
(1D Array
), содержащий один StepRange
.Если вы хотите реализовать ленивый StepRange
, я бы порекомендовал collect(1:1:20)
вместо использования сплаттинга ([1:1:20...]
).
Вы можете получить доступ к start
/ step
/ stop
полям StepRange
используя:
julia> r = 1:1:20
julia> r.start
1
julia> r.stop
20
julia> r.step
1