mirror of
https://github.com/erg-lang/erg.git
synced 2025-10-01 13:11:11 +00:00
1.6 KiB
1.6 KiB
Array
數組是最基本的__collection(聚合)__。 集合是一個可以在其中包含多個對象的對象。
a = [1, 2, 3]
a: [Int; 3] # 類型說明:分號后的數字為元素個數
# 如果元素個數未知,可以省略
a: [Int]
mut_a = [!1, !2, !3]
mut_a[0].inc!()
assert mut_a == [2, 2, 3]
通常,數組不能包含不同類型的對象。
[1, "a"] # 類型錯誤:第一個元素是 Int,但第二個元素是 Str
但是,您可以通過像這樣顯式指定類型來繞過限制。
[1, "a"]: [Int or Str].
切片
一個數組也可以同時取出多個值。 這稱為切片。
l = [1, 2, 3, 4]
# 與 Python 中的 l[1:3] 相同
assert l[1.. <3] == [2, 3]
assert l[1..2] == [2, 3]
# 與 l[1] 相同
assert l[1..1] == [2]
# 與 Python 中的 l[::2] 相同
assert l[..].step(2) == [2, 4]
通過切片獲得的對象是數組的(不可變的)副本
print! Typeof l[1..2] # [Int; 4]