Ranges

Julia 中級

Anthony Markham

Quantitative Developer

Ranges - UnitRange

  • range 是一種物件,有自己的資料型別。
  • 建立 range 時要指定起點與終點,兩者皆為含括(含邊界)。
my_range = 1:10  # start:stop
  • 列印 range 不會顯示其中的所有值序列!
my_range = 1:10
println(my_range)
1:10
  • UnitRange 是最基本的 range 類型。
Julia 中級

Ranges - StepRange

  • 建立 StepRange 時要指定步長,每個元素由步長決定。
my_range = 0:10:50  # start:step:stop
  • step 值決定 range 的下一個值。
Julia 中級

Ranges - StepRange 定義

  • 這個 StepRange 具有:
    • start 為 1
    • step 為 10
    • end 為 50
my_range = 1:10:50
println(my_range)
1:10:50
Julia 中級

Ranges - for 迭代

  • 透過迭代 range 來解包其中的值。
  • 使用 for 迴圈即可,就像處理向量一樣。
my_range = 0:10:50
for value in my_range
    println(value)
end
0
10
20
30
40
50
Julia 中級

Ranges - 存取

  • range 可用索引取值,就像向量一樣。
  • 可用 startstepstop 取得對應的屬性值。
my_range = 0:10:50
println(my_range[2])
10
Julia 中級

Ranges - 存取

  • range 可用索引取值,就像向量一樣。
  • 可用 startstepstop 取得對應的屬性值。
println(my_range.start)
println(my_range.step)
println(my_range.stop)
0
10
50
Julia 中級

Ranges - while 迭代

  • while 迴圈迭代時,需要個別存取每個元素。
  • range 用 [] 表示法取出元素,和向量相同。
  • 注意我們設 i = 1,因為 Julia 的索引從 1 開始,不是 0!
i = 1

while i <= length(my_range)
    println(my_range[i])
    i = i + 1
end
Julia 中級

Ranges - splat 解包

  • Splat 運算子 ... 用來解包可迭代物件。
my_range = 0:10:50
println([my_range...])
[0, 10, 20, 30, 40, 50]
  • 這只是 splat 運算子的其中一種簡單用法。
Julia 中級

一起來練習吧!

Julia 中級

Preparing Video For Download...